I am in the process of converting from MAVLink 0.9 to MAVLink 1.0. I use a bit stream processing method for decomming (parsing) the MAVLink frames. I define each message that I am interested in as a spread sheet (see attached). I derived the spread sheet by processing the common.xml that is contained in the APM flight code delivery. I ran into a problem with packet ID 24 (GPS_RAW_INT). The XML definition does not match the header file definition. The attached file 24.lis is an excerpt from the header files, and id_24_xml.lis is an excerpt from the common.xml file. Using the header file to define the decom table works, but using the XML does not.
Is there a central place where the MAVLink messages are defined?
Thanks in advance for your help,
Warren
Replies
https://pixhawk.ethz.ch/mavlink/
scroll down to MAVLink Messages ...
Warren, I'm guessing that the discrepancy you're talking about is the order of fields, is that correct?
That is, in the header excerpt, the fields are in this order:
time_usec,fix_type,lat,lon,alt,eph,epv,vel,cog,satellites_visible
while in the XML excerpt, the fields are in this order:
time_usec,lat,lon,alt,eph,epv,vel,cog,fix_type,satellites_visible
The XML is the definition of the MAVLink messages, it is not generated from anything else. The code to parse MAVLink in various languages is generated from the XML. In this case it seems that there is a bug in the header.
Start here, which is automatically generated by comments in the code:
http://code.google.com/p/ardupilot-mega/wiki/TestParamPage