neptunium-firmware/Drivers/ubx_parser/neo_m8_messages.h
Peter aa3b50eed2 Initial commit. Logging using tinyusb on stm32f302c8t6. WORKING:
WORKING: lps22hb, lsm6dsox, neo-m9n
TODO: sx1262, SD card, freertos
2024-07-06 04:25:33 +08:00

128 lines
5.2 KiB
C

/*
* neo_m8_messages.h
*
* Created on: Jul 17, 2018
* Author: alexis
*/
#ifndef NEO_M8_MESSAGES_H_
#define NEO_M8_MESSAGES_H_
/* See page 134 of document UBX-13003221 - R15 for more precisions */
/*
* • Every Frame starts with a 2-byte Preamble consisting of two synchronization characters: 0xB5 0x62.
* • A 1-byte Message Class field follows. A Class is a group of messages that are related to each other.
* • A 1-byte Message ID field defines the message that is to follow.
* • A 2-byte Length field follows. The length is defined as being that of the payload only. It does not include
* the Preamble, Message Class, Message ID, Length, or CRC fields. The number format of the length field is a
* Little-Endian unsigned 16-bit integer.
* • The Payload field contains a variable number of bytes.
* • The two 1-byte CK_A and CK_B fields hold a 16-bit checksum whose calculation is defined below. This
* concludes the Frame.
*/
#define UBX_SYNC_CHAR1 0xB5
#define UBX_SYNC_CHAR2 0x62
/* UBX Class IDs */
/* See UBX-13003221 - R15 Early Production Information, Page 137 of 386 for details */
#define UBX_MSG_CLASS_ACK 0x05 /* Ack/Nak Messages: Acknowledge or Reject messages to CFG input messages */
#define UBX_MSG_CLASS_AID 0x0B /* AssistNow Aiding Messages: Ephemeris, Almanac, other A-GPS data input */
#define UBX_MSG_CLASS_CFG 0x06 /* Configuration Input Messages: Set Dynamic Model, Set DOP Mask, Set Baud Rate, etc. */
#define UBX_MSG_CLASS_ESF 0x10 /* External Sensor Fusion Messages: External Sensor Measurements and Status Information */
#define UBX_MSG_CLASS_HNR 0x28 /* High Rate Navigation Results Messages: High rate time, position, speed, heading */
#define UBX_MSG_CLASS_INF 0x04 /* Information Messages: Printf-Style Messages, with IDs such as Error, Warning, Notice */
#define UBX_MSG_CLASS_LOG 0x21 /* Logging Messages: Log creation, deletion, info and retrieval */
#define UBX_MSG_CLASS_MGA 0x13 /* Multiple GNSS Assistance Messages: Assistance data for various GNSS */
#define UBX_MSG_CLASS_MON 0x0A /* Monitoring Messages: Communication Status, CPU Load, Stack Usage, Task Status */
#define UBX_MSG_CLASS_NAV 0x01 /* Navigation Results Messages: Position, Speed, Time, Acceleration, Heading, DOP, SVs used */
#define UBX_MSG_CLASS_RXM 0x02 /* Receiver Manager Messages: Satellite Status, RTC Status */
#define UBX_MSG_CLASS_SEC 0x27 /* Security Feature Messages */
#define UBX_MSG_CLASS_TIM 0x0D /* Timing Messages: Time Pulse Output, Time Mark Results */
#define UBX_MSG_CLASS_UPD 0x09 /* Firmware Update Messages: Memory/Flash erase/write, Reboot, Flash identification, etc. */
/* UBX Class ACK */
#define UBX_MSG_ID_ACK_ACK 0x01
#define UBX_MSG_ID_ACK_NAK 0x00
/* UBX Class AID */
#define UBX_MSG_ID_AID_ALM 0x30
#define UBX_MSG_ID_AID_AOP 0x33
#define UBX_MSG_ID_AID_EPH 0x31
#define UBX_MSG_ID_AID_HUI 0x02
#define UBX_MSG_ID_AID_INI 0x01
/* UBX Class CFG */
#define UBX_MSG_ID_CFG_ANT 0x13
#define UBX_MSG_ID_CFG_BATCH 0x93
#define UBX_MSG_ID_CFG_CFG 0x09
#define UBX_MSG_ID_CFG_DAT 0x06
#define UBX_MSG_ID_CFG_DGNSS 0x70
#define UBX_MSG_ID_CFG_DOSC 0x61
#define UBX_MSG_ID_CFG_DYNSEED 0x85
#define UBX_MSG_ID_CFG_ESRC 0x60
#define UBX_MSG_ID_CFG_FIXSEED 0x84
#define UBX_MSG_ID_CFG_GEOFENCE 0x69
#define UBX_MSG_ID_CFG_GNSS 0x3E
#define UBX_MSG_ID_CFG_HNR 0x5C
#define UBX_MSG_ID_CFG_INF 0x02
#define UBX_MSG_ID_CFG_ITFM 0x39
#define UBX_MSG_ID_CFG_LOGFILTER 0x47
#define UBX_MSG_ID_CFG_MSG 0x01
#define UBX_MSG_ID_CFG_NAV5 0x24
#define UBX_MSG_ID_CFG_NAVX5 0x23
#define UBX_MSG_ID_CFG_NMEA 0x17
#define UBX_MSG_ID_CFG_ODO 0x1E
#define UBX_MSG_ID_CFG_PM2 0x3B
#define UBX_MSG_ID_CFG_PMS 0x86
#define UBX_MSG_ID_CFG_PRT 0x00
#define UBX_MSG_ID_CFG_PWR 0x57
#define UBX_MSG_ID_CFG_RATE 0x08
#define UBX_MSG_ID_CFG_RINV 0x34
#define UBX_MSG_ID_CFG_RST 0x04
#define UBX_MSG_ID_CFG_RXM 0x11
#define UBX_MSG_ID_CFG_SBAS 0x16
#define UBX_MSG_ID_CFG_SMGR 0x62
#define UBX_MSG_ID_CFG_TMODE2 0x3D
#define UBX_MSG_ID_CFG_TMODE3 0x71
#define UBX_MSG_ID_CFG_TP5 0x31
#define UBX_MSG_ID_CFG_TXSLOT 0x53
#define UBX_MSG_ID_CFG_USB 0x1B
// todo: add esf, hnr, inf, log, mga, rxm, sec, tim, and upd sections
/* UBX Class NAV */
#define UBX_MSG_ID_NAV_AOPSTATUS 0x60
#define UBX_MSG_ID_NAV_ATT 0x05
#define UBX_MSG_ID_NAV_CLOCK 0x22
#define UBX_MSG_ID_NAV_DGPS 0x31
#define UBX_MSG_ID_NAV_DOP 0x04
#define UBX_MSG_ID_NAV_EOE 0x61
#define UBX_MSG_ID_NAV_GEOFENCE 0x39
#define UBX_MSG_ID_NAV_HPPOSECEF 0x13
#define UBX_MSG_ID_NAV_HPPOSLLH 0x14
#define UBX_MSG_ID_NAV_ODO 0x09
#define UBX_MSG_ID_NAV_ORB 0x34
#define UBX_MSG_ID_NAV_POSECEF 0x01
#define UBX_MSG_ID_NAV_POSLLH 0x02
#define UBX_MSG_ID_NAV_PVT 0x07
#define UBX_MSG_ID_NAV_RELPOSNED 0x3C
#define UBX_MSG_ID_NAV_RESETODO 0x10 /* This is a command */
#define UBX_MSG_ID_NAV_SAT 0x35
#define UBX_MSG_ID_NAV_SBAS 0x32
#define UBX_MSG_ID_NAV_SOL 0x06
#define UBX_MSG_ID_NAV_STATUS 0x03
#define UBX_MSG_ID_NAV_SVINFO 0x30
#define UBX_MSG_ID_NAV_SVIN 0x3B
#define UBX_MSG_ID_NAV_TIMEBDS 0x24
#define UBX_MSG_ID_NAV_TIMEGAL 0x25
#define UBX_MSG_ID_NAV_TIMEGLO 0x23
#define UBX_MSG_ID_NAV_TIMEGPS 0x20
#define UBX_MSG_ID_NAV_TIMELS 0x26
#define UBX_MSG_ID_NAV_TIMEUTC 0x21
#define UBX_MSG_ID_NAV_VELECEF 0x11
#define UBX_MSG_ID_NAV_VELNED 0x12
#endif /* NEO_M8_MESSAGES_H_ */