Configuration Protocol - alesskerbinek/FlightSimPanel GitHub Wiki
This is NMEA 0183 message formatted protocol using not standardized extended messages.
- All transmitted data are printable ASCII characters between 0x20 (space) to 0x7e (~)
- Data characters are all the above characters except the reserved characters (See next line)
- Reserved characters are used by NMEA0183 for the following uses:
ASCII Hex Dec Use 0x0d 13 Carriage return 0x0a 10 Line feed, end delimiter ! 0x21 33 Start of encapsulation sentence delimiter $ 0x24 36 Start delimiter * 0x2a 42 Checksum delimiter , 0x2c 44 Field delimiter \ 0x5c 92 TAG block delimiter ^ 0x5e 94 Code delimiter for HEX representation of ISO/IEC 8859-1 (ASCII) characters ~ 0x7e 126 Reserved
- Messages have a maximum length of 82 characters, including the $ or ! starting character and the ending
- The start character for each message can be either a $ (For conventional field delimited messages) or ! (for messages that have special encapsulation in them)
- The next five characters identify the talker (two characters) and the type of message (three characters).
- All data fields that follow are comma-delimited.
- Where data is unavailable, the corresponding field remains blank.
- The first character that immediately follows the last data field character is an asterisk, but it is only included if a checksum is supplied.
- The asterisk is immediately followed by a checksum represented as a two-digit hexadecimal number. The checksum is the bitwise exclusive OR of ASCII codes of all characters between the $ and *, not inclusive. The checksum is optional for individual sentences.
- ends the message.
Most GPS manufacturers include special messages in addition to the standard NMEA set in their products for maintenance and diagnostics purposes. Extended messages begin with "$P". These extended messages are not standardized.
Source: Wikipedia
For testing checksum algorithms or test sentence genration the following website can be used: nmeachecksum.eqth.net.
This sentence is used for requesting unit's factory set attributes. It takes no input parameters.
Format:
$PINIT,GET*30<CR><LF>
This sentence is used during manufacturing process for setting factory attributes. It takes input parameters
Format:
$PINIT,SET,<serial>,<unit_type>*<CSUM><CR><LF>
Examples:
$PINIT,SET,2904,1*1A<CR><LF>
- COM
$PINIT,SET,,2*16<CR><LF>
- VOR
$PINIT,SET,2022,*26<CR><LF>
- serial 2022
This sentence is used for resting the unit to factory defaults. It takes no input parameters.
Format:
$PFACT,SET*2E<CR><LF>
This sentence is used for requesting unit's system telemetry. It takes no input parameters.
Format:
$PSYS0,GET*43<CR><LF>
This sentence is used for reading Network/WiFi connection settings.
Format:
$PWIFI,GET*3B<CR><LF>
This sentence is used for setting Network/WiFi connection parameters.
Format:
$PWIFI,SET,<SSID>,<password>,<local_port>,<remote_ip>,<remote_port>*<CSUM><CR><LF>
Example:
$PWIFI,SET,HomeNet,pass1234,2000,192.168.8.129,49000*70<CR><LF>
These sentences are being output from unit for testing and development purposes. These sentences does not contain checksum.
$PMDBG,NavCom unit started,v0.9.0<CR><LF>
$PMERR,NMEA,size error - max 82<CR><LF>
Following sentences can be used for testing units border case performance.
$PINIT,GET*00<CR><LF>
$PINIT,GET,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*00<CR><LF>
$PINIT,GET,12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890*00<CR><LF>