ASCII to binary log conversion example

ASCII example:
#BESTPOSA,COM1,0,47.0,FINESTEERING,1803,27504.000,00000000,6145,9603;
SOL_COMPUTED,L1_FLOAT,32.81519645735,35.00791046612,19.9359,20.3000,
WGS84,0.0363,0.0538,0.0956,"0",3.000,0.000,18,9,9,0,0,00,00,01*ecbd3409

Same example in hexadecimal:
aa 44 12 1c 2a 00 00 20 48 00 00 00 5e b4 0b 07 80 ad a3 01 00 00 00 00 45 61 83 25 00 00 00 00 20 00 00 00 10 11 86 5b 58 68 40 40 09 a4 cc 35 03 81 41 40 8f 53 74 24 97 ef 33 40 66 66 a2 41 3d 00 00 00 4f af 14 3d 64 5d 5c 3d ef c9 c3 3d 30 00 00 00 00 00 40 40 00 00 00 00 12 09 09 00 00 00 00 01 c3 ef 64 d2

Hexadecimal example parsed:

aa 44 12 ==> NovAtel header alignment bits
1c ==> NovAtel header length = 28 bytes
2a 00 ==> Message ID (Least Significant Byte first, LSB) = 42
00 ==> Message type = 0010 0000 = bits 5 and 6 indicate binary format and bit 7 indicates original message
20 ==> Port address = 32 = COM1
48 00 ==> Message length (LSB) = 72 bytes
00 00 ==> Number of related logs to follow = 0
5e ==> CPU Idle time = 94/2 = 47%
b4 ==> GPS Time Status = 180 = FINESTEERING
0b 07 ==> GPS week number (LSB) = 1803
80 ad a3 01 ==> milliseconds in to the GPS week (LSB) = 27504000
00 00 00 00 ==> Receiver status word = 00000000 = All ok
45 61 ==> Reserved for internal use (LSB) = 6145
83 25 ==> Sequential firmware release number (LSB) = 9603
-------- END OF THE HEADER --------
00 00 00 00 ==> Solution status = 0 = Solution computed
20 00 00 00 ==> Position type = 32 = L1 only floating ambiguity
10 11 86 5b 58 68 40 40 ==> Latitude (LSB) = 32.815196457349998127028811723 degrees
09 a4 cc 35 03 81 41 40 ==> Longitude (LSB) = 35.0079104661200020132127974648 degrees
8f 53 74 24 97 ef 33 40 ==> Ortometric height (LSB) = 19.9359000000000001762145984685 meters
66 66 a2 41 ==> Geoid Undulation (LSB) = 20.299999237060546875 meters
3d 00 00 00 ==> Datum ID (LSB) = 61 = WGS84
4f af 14 3d ==> Latitude standard deviation (LSB) = 0.0362999998033046722412109375 meters
64 5d 5c 3d ==> Longitude standard deviation (LSB) = 0.05380000174045562744140625 meters
ef c9 c3 3d ==> Height standard deviation (LSB) = 0.095600001513957977294921875 meters
30 00 00 00 ==> Base station ID =
00 00 40 40 ==> Differential age (LSB) = 3.0 seconds
00 00 00 00 ==> Solution age = 0 seconds
12 ==> Number of satellites tracked = 18
09 ==> Number of satellites used = 9
09 ==> Number of L1 carrier phases used = 9
00 ==> Number of L2 carrier phases used = 0
00 ==> Reserved = 0
00 ==> Extended solution status = 00000000 = Advance RTK not verified and pseudorange ionospheric correction unknown
00 ==> Reserved = 0
01 ==> Signals used mask = 00000001 = GPS L1 only used in the solution
c3 ef 64 d2 ==> 32 bit CRC