If you ever wonder how to read and decode the protocol check this:
The protocol looks like this in terminal:
There's a low rate string at 1hz that start with !!! and the second string is 4hz and starts with +++, both finish with ***.
You need to be able to search for the head of every string like "LAT:", without care of the order, then you read the value after and stop until you reach the comma. In C/C++ are functions that do that for you, if you need an example please read the ardustation source code
Definitions low rate:
SPD: Speed over ground from GPS
CRT: Climb Rate in M/S
ALT: Altitude in meters
ALH: The altitude is trying to hold
CRS: Course over ground in degrees.
BER: Bearing is the heading you want to go
WPN: Waypoint number, where WP0 is home.
DST: Distance from Waypoint
BTV: Battery Voltage.
RSP: Roll setpoint used to debug, (not displayed here).
Definitions high rate:
ASP: Airspeed, right now is the raw data.
TTH: Throttle in 100% the autopilot is applying.
RLL: Roll in degrees + is right - is left
PCH: Pitch in degrees
SST: Switch Status, used for debugging, but is disabled in the current version.
I know the protocol sucks but is very flexible and i can add and remove new strings when ever i want without damaging the parsing of every groundstation. In ArduPilot Mega i will use ONLY binary protocol with Message ID's, Payload Bytes and CheckSums, better/faster/efficient/flexible..