mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-06 13:44:46 +00:00
Found lost byte dropped from moduleinfo
Attempt to fix CFG-GNSS for neo-6m
This commit is contained in:
parent
53f6a43661
commit
ac62330e1c
@ -201,8 +201,6 @@ int GPS::getACK(uint8_t *buffer, uint16_t size, uint8_t requestedClass, uint8_t
|
|||||||
// Payload length msb
|
// Payload length msb
|
||||||
needRead |= (c << 8);
|
needRead |= (c << 8);
|
||||||
ubxFrameCounter++;
|
ubxFrameCounter++;
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
// Check for buffer overflow
|
// Check for buffer overflow
|
||||||
if (needRead >= size) {
|
if (needRead >= size) {
|
||||||
ubxFrameCounter = 0;
|
ubxFrameCounter = 0;
|
||||||
@ -304,13 +302,31 @@ bool GPS::setupGPS()
|
|||||||
_serial_gps->write("$CFGSYS,h15\r\n");
|
_serial_gps->write("$CFGSYS,h15\r\n");
|
||||||
delay(250);
|
delay(250);
|
||||||
} else if (gnssModel == GNSS_MODEL_UBLOX) {
|
} else if (gnssModel == GNSS_MODEL_UBLOX) {
|
||||||
|
/*
|
||||||
|
uint8_t buffer[768] = {0};
|
||||||
|
byte _message_GNSS[8] = {0xb5, 0x62, // Sync message for UBX protocol
|
||||||
|
0x06, 0x3e, // Message class and ID (UBX-CFG-GNSS)
|
||||||
|
0x00, 0x00, // Length of payload (28 bytes)
|
||||||
|
0x00, 0x00};
|
||||||
|
UBXChecksum(_message_GNSS, sizeof(_message_GNSS));
|
||||||
|
// Send the message to the module
|
||||||
|
_serial_gps->write(_message_GNSS, sizeof(_message_GNSS));
|
||||||
|
int ackLen = getACK(buffer, sizeof(buffer), 0x06, 0x3e, 2000);
|
||||||
|
LOG_DEBUG("monver reply size = %d\n", ackLen);
|
||||||
|
LOG_DEBUG("Ack: ");
|
||||||
|
for (int i = 0; i < ackLen; i++) {
|
||||||
|
LOG_DEBUG("%02X", buffer[i]);
|
||||||
|
}
|
||||||
|
LOG_DEBUG("\n"); */
|
||||||
|
|
||||||
// Configure GNSS system to GPS+SBAS+GLONASS (Module may restart after this command)
|
// Configure GNSS system to GPS+SBAS+GLONASS (Module may restart after this command)
|
||||||
// We need set it because by default it is GPS only, and we want to use GLONASS too
|
// We need set it because by default it is GPS only, and we want to use GLONASS too
|
||||||
// Also we need SBAS for better accuracy and extra features
|
// Also we need SBAS for better accuracy and extra features
|
||||||
// ToDo: Dynamic configure GNSS systems depending of LoRa region
|
// ToDo: Dynamic configure GNSS systems depending of LoRa region
|
||||||
|
|
||||||
if (strncmp(info.hwVersion, "00070000", 8) == 0) { // Max7 seems to only support GPS *or* GLONASS
|
if ((strncmp(info.hwVersion, "00070000", 8) == 0) || // Max7 seems to only support GPS *or* GLONASS
|
||||||
|
(strncmp(info.hwVersion, "00040007", 8) == 0)) {
|
||||||
|
LOG_DEBUG("Setting GPS+SBAS\n");
|
||||||
byte _message_GNSS[28] = {
|
byte _message_GNSS[28] = {
|
||||||
0xb5, 0x62, // Sync message for UBX protocol
|
0xb5, 0x62, // Sync message for UBX protocol
|
||||||
0x06, 0x3e, // Message class and ID (UBX-CFG-GNSS)
|
0x06, 0x3e, // Message class and ID (UBX-CFG-GNSS)
|
||||||
@ -1007,13 +1023,13 @@ GnssModel_t GPS::probe(int serialSpeed)
|
|||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
info.hwVersion[i] = buffer[position - 1];
|
info.hwVersion[i] = buffer[position];
|
||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (len >= position + 30) {
|
while (len >= position + 30) {
|
||||||
for (int i = 0; i < 30; i++) {
|
for (int i = 0; i < 30; i++) {
|
||||||
info.extension[info.extensionNo][i] = buffer[position - 1];
|
info.extension[info.extensionNo][i] = buffer[position];
|
||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
info.extensionNo++;
|
info.extensionNo++;
|
||||||
|
Loading…
Reference in New Issue
Block a user