1 /* edit packet_states.h to add new packet types. */ 2 GROUND_STATE, /* we don't know what packet type to expect */ 3 4 COMMENT_BODY, /* pound comment for a test load */ 5 COMMENT_RECOGNIZED, /* comment recognized */ 6 NMEA_DOLLAR, /* we've seen first character of NMEA leader */ 7 8 #ifdef NMEA0183_ENABLE 9 NMEA_BANG, /* we've seen first character of an AIS message '!' */ 10 NMEA_PUB_LEAD, /* seen second character of NMEA G leader */ 11 NMEA_VENDOR_LEAD, /* seen second character of NMEA P leader */ 12 NMEA_LEADER_END, /* seen end char of NMEA leader, in body */ 13 NMEA_PASHR_A, /* grind through recognizing $PASHR */ 14 NMEA_PASHR_S, /* grind through recognizing $PASHR */ 15 NMEA_PASHR_H, /* grind through recognizing $PASHR */ 16 NMEA_BINARY_BODY, /* Ashtech-style binary packet body, skip until \r\n */ 17 NMEA_BINARY_CR, /* \r on end of Ashtech-style binary packet */ 18 NMEA_BINARY_NL, /* \n on end of Ashtech-style binary packet */ 19 NMEA_CR, /* seen terminating \r of NMEA packet */ 20 NMEA_RECOGNIZED, /* saw trailing \n of NMEA packet */ 21 22 SIRF_ACK_LEAD_1, /* seen A of possible SiRF Ack */ 23 SIRF_ACK_LEAD_2, /* seen c of possible SiRF Ack */ 24 AIS_LEAD_1, /* seen initial A of possible AIS message */ 25 AIS_LEAD_2, /* seen second I/B/N/X of possible AIS message */ 26 AIS_LEAD_ALT1, /* seen initial B of possible AIS message */ 27 AIS_LEAD_ALT2, /* seen second S of possible AIS message */ 28 AIS_LEAD_ALT3, /* seen initial S of possible AIS message */ 29 AIS_LEAD_ALT4, /* seen second A of possible AIS message */ 30 31 SEATALK_LEAD_1, /* SeaTalk/Garmin packet leader 'I' */ 32 WEATHER_LEAD_1, /* Weather instrument packet leader 'W' */ 33 HEADCOMP_LEAD_1, /* Heading/compass packet leader 'H' */ 34 TURN_LEAD_1, /* Turn indicator packet leader 'T' */ 35 ECDIS_LEAD_1, /* ECDIS packet leader 'E' */ 36 SOUNDER_LEAD_1, /* Depth sounder packet leader 'S' */ 37 TRANSDUCER_LEAD_1, /* Generic transducer packet leader 'Y' */ 38 BEIDOU_LEAD_1, /* Beidou leader */ 39 QZSS_LEAD_1, /* Quasi-Zenith Satellite System leader */ 40 #endif /* NMEA0183_ENABLE */ 41 42 DLE_LEADER, /* we've seen the TSIP/EverMore leader (DLE) */ 43 44 #ifdef TRIPMATE_ENABLE 45 ASTRAL_1, /* ASTRAL leader A */ 46 ASTRAL_2, /* ASTRAL leader S */ 47 ASTRAL_3, /* ASTRAL leader T */ 48 ASTRAL_4, /* ASTRAL leader R */ 49 ASTRAL_5, /* ASTRAL leader A */ 50 #endif /* TRIPMATE_ENABLE */ 51 52 #ifdef EARTHMATE_ENABLE 53 EARTHA_1, /* EARTHA leader E */ 54 EARTHA_2, /* EARTHA leader A */ 55 EARTHA_3, /* EARTHA leader R */ 56 EARTHA_4, /* EARTHA leader T */ 57 EARTHA_5, /* EARTHA leader H */ 58 #endif /* EARTHMATE_ENABLE */ 59 60 #if defined(SIRF_ENABLE) || defined(SKYTRAQ_ENABLE) 61 SIRF_LEADER_1, /* seen first character of SiRF/Skytraq leader <0x0A> */ 62 #endif /* SIRF_ENABLE || SKYTRAQ_ENABLE */ 63 #ifdef SIRF_ENABLE 64 SIRF_LEADER_2, /* seen second character of SiRF leader */ 65 SIRF_LENGTH_1, /* seen first byte of SiRF length */ 66 SIRF_PAYLOAD, /* we're in a SiRF payload part */ 67 SIRF_DELIVERED, /* saw last byte of SiRF payload/checksum */ 68 SIRF_TRAILER_1, /* saw first byte of SiRF trailer */ 69 SIRF_RECOGNIZED, /* saw second byte of SiRF trailer */ 70 #endif /* SIRF_ENABLE */ 71 72 #ifdef SKYTRAQ_ENABLE 73 /* <0xA0,0xA1><Len><Message ID><Message Body><csum><0x0D,0x0A> */ 74 /* Len is two bytes, is the length of Message ID and Message Body */ 75 /* Skytraq leader 1 same as SIRF_LEADER_1 */ 76 SKY_LEADER_2, /* saw leader 2 <0xA1> */ 77 SKY_LENGTH_1, /* saw first byte of packet length */ 78 SKY_LENGTH_2, /* saw second byte of packet length */ 79 SKY_PAYLOAD, /* we're in a Skytraq payload */ 80 SKY_DELIVERED, /* saw last byte of Skytraq payload */ 81 SKY_CSUM, /* saw Skytraq checksum */ 82 SKY_TRAILER_1, /* saw first byte of Skytraq trailer <0x0D> */ 83 SKY_RECOGNIZED, /* found end of the Skytraq packet */ 84 #endif /* SKYTRAQ_ENABLE */ 85 86 #ifdef ZODIAC_ENABLE 87 ZODIAC_EXPECTED, /* expecting Zodiac packet */ 88 ZODIAC_LEADER_1, /* saw leading 0xff */ 89 ZODIAC_LEADER_2, /* saw leading 0x81 */ 90 ZODIAC_ID_1, /* saw first byte of ID */ 91 ZODIAC_ID_2, /* saw second byte of ID */ 92 ZODIAC_LENGTH_1, /* saw first byte of Zodiac packet length */ 93 ZODIAC_LENGTH_2, /* saw second byte of Zodiac packet length */ 94 ZODIAC_FLAGS_1, /* saw first byte of FLAGS */ 95 ZODIAC_FLAGS_2, /* saw second byte of FLAGS */ 96 ZODIAC_HSUM_1, /* saw first byte of Header sum */ 97 ZODIAC_PAYLOAD, /* we're in a Zodiac payload */ 98 ZODIAC_RECOGNIZED, /* found end of the Zodiac packet */ 99 #endif /* ZODIAC_ENABLE */ 100 101 #if defined(TNT_ENABLE) || defined(GARMINTXT_ENABLE) || defined(ONCORE_ENABLE) 102 AT1_LEADER, /* saw True North status leader '@' */ 103 /* Garmin Simple Text starts with @ leader */ 104 /* Oncore starts with @ leader */ 105 GTXT_RECOGNIZED, /* */ 106 #endif 107 108 #ifdef EVERMORE_ENABLE 109 EVERMORE_LEADER_1, /* a DLE after having seen EverMore data */ 110 EVERMORE_LEADER_2, /* seen opening STX of EverMore packet */ 111 EVERMORE_PAYLOAD, /* in payload part of EverMore packet */ 112 EVERMORE_PAYLOAD_DLE,/* DLE in payload part of EverMore packet */ 113 EVERMORE_RECOGNIZED, /* found end of EverMore packet */ 114 #endif /* EVERMORE_ENABLE */ 115 116 #ifdef ITRAX_ENABLE 117 ITALK_LEADER_1, /* saw leading < of iTalk packet */ 118 ITALK_LEADER_2, /* saw leading ! of iTalk packet */ 119 ITALK_LENGTH, /* saw packet length */ 120 ITALK_PAYLOAD, /* in payload part of iTalk Packet */ 121 ITALK_DELIVERED, /* seen end of payload */ 122 ITALK_TRAILER, /* saw iTalk trailer byte */ 123 ITALK_RECOGNIZED, /* found end of the iTalk packet */ 124 #endif /* ITRAX_ENABLE */ 125 126 #ifdef NAVCOM_ENABLE 127 NAVCOM_EXPECTED, /* expecting Navcom NCT packet */ 128 NAVCOM_LEADER_1, /* saw leading 0x02 */ 129 NAVCOM_LEADER_2, /* saw leading 0x99 */ 130 NAVCOM_LEADER_3, /* saw leading 0x66 */ 131 NAVCOM_ID, /* saw message ID */ 132 NAVCOM_LENGTH_1, /* saw first byte of Navcom packet length */ 133 NAVCOM_LENGTH_2, /* saw second byte of Navcom packet length */ 134 NAVCOM_PAYLOAD, /* we're in a Navcom payload */ 135 NAVCOM_CSUM, /* saw checksum */ 136 NAVCOM_RECOGNIZED, /* found end of the Navcom packet */ 137 #endif /* NAVCOM_ENABLE */ 138 139 #ifdef UBLOX_ENABLE 140 UBX_LEADER_1, /* first constant leader byte found */ 141 UBX_LEADER_2, /* second constant leader byte found */ 142 UBX_CLASS_ID, /* classid read */ 143 UBX_MESSAGE_ID, /* message id read */ 144 UBX_LENGTH_1, /* first length byte read (le) */ 145 UBX_LENGTH_2, /* second length byte read (le) */ 146 UBX_PAYLOAD, /* payload eating */ 147 UBX_CHECKSUM_A, /* checksum A byte (tcp checksum) */ 148 UBX_RECOGNIZED, /* this is also UBX_CHECKSUM_B */ 149 #endif 150 151 #ifdef SUPERSTAR2_ENABLE 152 SUPERSTAR2_LEADER, /* leading SOH */ 153 SUPERSTAR2_ID1, /* message type */ 154 SUPERSTAR2_ID2, /* message type xor 0xff */ 155 SUPERSTAR2_PAYLOAD, /* length of the actual packet data */ 156 SUPERSTAR2_CKSUM1, 157 SUPERSTAR2_CKSUM2, 158 SUPERSTAR2_RECOGNIZED, 159 #endif 160 161 #ifdef ONCORE_ENABLE 162 ONCORE_AT2, /* second @ */ 163 ONCORE_ID1, /* first character of command type */ 164 ONCORE_PAYLOAD, /* payload eating */ 165 ONCORE_CHECKSUM, /* checksum byte */ 166 ONCORE_CR, /* closing CR */ 167 ONCORE_RECOGNIZED, /* closing LF */ 168 #endif 169 170 #ifdef GEOSTAR_ENABLE 171 GEOSTAR_LEADER_1, /* first constant leader byte found */ 172 GEOSTAR_LEADER_2, /* second constant leader byte found */ 173 GEOSTAR_LEADER_3, /* third constant leader byte found */ 174 GEOSTAR_LEADER_4, /* forth constant leader byte found */ 175 GEOSTAR_MESSAGE_ID_1, /* first message id read */ 176 GEOSTAR_MESSAGE_ID_2, /* second message id read */ 177 GEOSTAR_LENGTH_1, /* first length byte read */ 178 GEOSTAR_LENGTH_2, /* second length byte read */ 179 GEOSTAR_PAYLOAD, /* payload eating */ 180 GEOSTAR_CHECKSUM_A, /* checksum A byte (xor checksum) */ 181 GEOSTAR_CHECKSUM_B, /* checksum B byte (xor checksum) */ 182 GEOSTAR_CHECKSUM_C, /* checksum C byte (xor checksum) */ 183 GEOSTAR_RECOGNIZED, /* this is also GEOSTAR_CHECKSUM_D */ 184 #endif 185 186 #ifdef GREIS_ENABLE 187 GREIS_EXPECTED, /* expecting GREIS packet */ 188 GREIS_REPLY_1, /* saw first byte of a reply */ 189 GREIS_REPLY_2, /* saw second byte of a reply */ 190 GREIS_ID_1, /* saw first byte of ID */ 191 GREIS_ID_2, /* saw second byte of ID */ 192 GREIS_LENGTH_1, /* saw first length byte */ 193 GREIS_LENGTH_2, /* saw second length byte */ 194 GREIS_PAYLOAD, /* we're in a GREIS payload */ 195 GREIS_RECOGNIZED, /* found end of the GREIS packet */ 196 #endif 197 198 /* 199 * Packet formats without checksums start here. We list them last so 200 * that if a format with a conflicting structure *and* a checksum can 201 * be recognized, that will be preferred. 202 */ 203 204 #if defined(TSIP_ENABLE) || defined(GARMIN_ENABLE) 205 TSIP_LEADER, /* a DLE after having seen TSIP data */ 206 TSIP_PAYLOAD, /* we're in TSIP payload */ 207 TSIP_DLE, /* we've seen a DLE in TSIP payload */ 208 TSIP_RECOGNIZED, /* found end of the TSIP packet */ 209 GARMIN_RECOGNIZED, /* found end of Garmin packet */ 210 #endif /* TSIP_ENABLE GARMIN_ENABLE */ 211 212 #ifdef RTCM104V2_ENABLE 213 RTCM2_SYNC_STATE, /* we have sync lock */ 214 RTCM2_SKIP_STATE, /* we have sync lock, but this character is bad */ 215 RTCM2_RECOGNIZED, /* we have an RTCM packet */ 216 #endif /* RTCM104V2_ENABLE */ 217 218 #ifdef RTCM104V3_ENABLE 219 RTCM3_LEADER_1, /* constant leader byte found */ 220 RTCM3_LEADER_2, /* second leader byte found (high 6 bits zero) */ 221 RTCM3_PAYLOAD, /* gathering payload */ 222 RTCM3_RECOGNIZED, /* RTCM3 packet recognized */ 223 #endif 224 225 #ifdef PASSTHROUGH_ENABLE 226 JSON_LEADER, /* JSON leading { found */ 227 JSON_STRINGLITERAL, /* start of JSON string literal seen */ 228 JSON_STRING_SOLIDUS, /* backslash in string */ 229 JSON_END_ATTRIBUTE, /* end of JSON attribute */ 230 JSON_EXPECT_VALUE, /* just after colon */ 231 JSON_END_VALUE, /* end of JSON value */ 232 JSON_NUMBER, /* inside a JSON numeric literal */ 233 JSON_SPECIAL, /* inside a JSON special literal (true,false,null) */ 234 JSON_RECOGNIZED, /* JSON packet recognized */ 235 #endif 236 237 #ifdef STASH_ENABLE 238 STASH_RECOGNIZED, /* stashable prefix recognized */ 239 #endif 240 241 /* end of packet_states.h */ 242