115200 Baud, no parity, 8 data bits, 1 stop bit
Message format:
$VBOXV$,nnnnffff,stttaaaaoooovvhheeezzxxyymmmcc
The $VBOXV$ and commas are in ASCII, the rest are in binary
| Format | Bytes | Description | nnnn, bit. mask | |
|---|---|---|---|---|
nnnn |
4 |
Reserved to indicate channel presence (always 0x080003FF on VBOX Video HD2) |
||
ffff |
4 |
Status Flags Bit Description 4 Logging active 6 Media full 7 Media available |
||
s |
Integer |
1 |
Satellites |
0x00000001 |
ttt |
Integer |
3 |
Time |
0x00000002 |
aaaa |
Signed |
4 |
Latitude (MMMM.MMMMM * 100,000) Signed Integer of Decimal minutes *100,000. Positive = North, Negative = South |
0x00000004 |
oooo |
Signed |
4 |
Longitude (MMMMM.MMMMM * 100,000) Signed Integer of Decimal minutes *100,000. Positive = West, Negative = East |
0x00000008 |
vv |
Integer |
2 |
Velocity |
0x00000010 |
hh |
Integer |
2 |
Heading |
0x00000020 |
eee |
Integer |
3 |
Height Altitude in metres WGS84 * 100 True signed 24 bit number |
0x00000040 |
zz |
Signed |
2 |
Vertical Velocity |
0x00000080 |
xx |
Signed |
2 |
Long acc (GPS) |
0x00000100 |
yy |
Signed |
2 |
Lat acc (GPS) |
0x00000200 |
mmm |
Integer |
3 |
RAM Address |
0x08000000 |
cc |
2 |
Checksum |
*Note 1
CRC Calculation example:
s[n] is a string containing the message
Polynomial:= 4129
CRC:=0;
for Loop:=1 to Length(s) do
begin
Temp:=s[Loop];
CRC:= CRC xor (integer(Temp) * 256);
CRC:= CRC mod 65536;
for i:=7 downto 0 do
begin
if ( (CRC and 32768)=32768) then
begin
CRC:= CRC *2 ;
CRC:= CRC xor Polynomial;
end
else
begin
CRC:= CRC *2 ;
end;
CRC:=CRC mod 65536;
end;
end;
result:=CRC;