Merge pull request #145 from mazgch/mazgch-support-NEOD9C

Add basic support NEO-D9C
This commit is contained in:
Paul
2022-07-29 08:45:54 +01:00
committed by GitHub
4 changed files with 183 additions and 0 deletions
+56
View File
@@ -1629,6 +1629,62 @@ typedef struct
UBX_RXM_PMP_message_data_t *callbackData;
} UBX_RXM_PMP_message_t;
// UBX-RXM-QZSSL6 (0x02 0x73): QZSS L6 raw data (D9C modules)
#define UBX_RXM_QZSSL6_NUM_CHANNELS 2
const uint16_t UBX_RXM_QZSSL6_DATALEN = 250;
const uint16_t UBX_RXM_QZSSL6_MAX_LEN = UBX_RXM_QZSSL6_DATALEN + 14;
typedef struct
{
uint8_t version; // Message version (0x00 / 0x01)
uint8_t svId; // Satellite identifier
uint16_t cno; // Mean C/N0
uint32_t timeTag; // Time since startup when frame started : ms
uint8_t groupDelay; // L6 group delay w.r.t. L2 on channel
uint8_t bitErrCorr; // Number of bit errors corrected by Reed-Solomon decoder
uint16_t chInfo; // Information about receiver channel associated with a received QZSS L6 message
uint8_t reserved0[2]; // Reserved
uint8_t msgBytes[UBX_RXM_QZSSL6_DATALEN]; // Bytes in a QZSS L6 message
} UBX_RXM_QZSSL6_data_t;
struct ubxQZSSL6AutomaticFlags
{
union
{
uint8_t all;
struct
{
uint8_t automatic : 1; // Will this message be delivered and parsed "automatically" (without polling)
uint8_t implicitUpdate : 1; // Is the update triggered by accessing stale data (=true) or by a call to checkUblox (=false)
uint8_t addToFileBuffer : 1; // Should the raw UBX data be added to the file buffer?
uint8_t callbackCopyValid : UBX_RXM_QZSSL6_NUM_CHANNELS; // Is the copies of the data structs used by the callback valid/fresh?
} bits;
} flags;
};
// Define a struct to hold the entire QZSSL6 message so the whole thing can be pushed to a GNSS.
// Remember that the length of the payload could be variable (with version 1 messages).
typedef struct
{
uint8_t sync1; // 0xB5
uint8_t sync2; // 0x62
uint8_t cls;
uint8_t ID;
uint8_t lengthLSB;
uint8_t lengthMSB;
uint8_t payload[UBX_RXM_QZSSL6_MAX_LEN];
uint8_t checksumA;
uint8_t checksumB;
} UBX_RXM_QZSSL6_message_data_t;
// The QZSSL6 data can only be accessed via a callback. QZSSL6 cannot be polled.
typedef struct
{
ubxQZSSL6AutomaticFlags automaticFlags;
void (*callbackPointerPtr)(UBX_RXM_QZSSL6_message_data_t *);
UBX_RXM_QZSSL6_message_data_t *callbackData;
} UBX_RXM_QZSSL6_message_t;
// CFG-specific structs
// UBX-CFG-PRT (0x06 0x00): Port configuration