Skip to content

Commit 4f962e1

Browse files
committed
Fixes for checking for ack packet only
1 parent 20b2f44 commit 4f962e1

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/SparkFun_u-blox_GNSS_Arduino_Library.cpp

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2756,6 +2756,11 @@ sfe_ublox_status_e SFE_UBLOX_GNSS::sendCommand(ubxPacket *outgoingUBX, uint16_t
27562756
if (_printDebug == true)
27572757
{
27582758
_debugSerial->println(F("sendCommand: Waiting for ACK response"));
2759+
_debugSerial->print(F("expecting cls and id: 0x"));
2760+
_debugSerial->print(outgoingUBX->cls, HEX);
2761+
_debugSerial->print(F(" 0x"));
2762+
_debugSerial->println(outgoingUBX->id, HEX);
2763+
27592764
}
27602765
retVal = waitForACKResponse(outgoingUBX, outgoingUBX->cls, outgoingUBX->id, maxWait, expectACKonly); //Wait for Ack response
27612766
}
@@ -3029,6 +3034,13 @@ sfe_ublox_status_e SFE_UBLOX_GNSS::waitForACKResponse(ubxPacket *outgoingUBX, ui
30293034
packetAuto.valid = SFE_UBLOX_PACKET_VALIDITY_NOT_DEFINED;
30303035

30313036
unsigned long startTime = millis();
3037+
if (_printDebug == true)
3038+
{
3039+
_debugSerial->print(F("waitForACKResponse: requested class and id: "));
3040+
_debugSerial->print(requestedClass, HEX);
3041+
_debugSerial->print(F(" "));
3042+
_debugSerial->println(requestedID, HEX);
3043+
}
30323044
while (millis() - startTime < maxTime)
30333045
{
30343046
if (checkUbloxInternal(outgoingUBX, requestedClass, requestedID) == true) //See if new data is available. Process bytes as they come in.
@@ -3793,7 +3805,7 @@ boolean SFE_UBLOX_GNSS::setPortOutput(uint8_t portID, uint8_t outStreamSettings,
37933805
//payloadCfg is now loaded with current bytes. Change only the ones we need to
37943806
payloadCfg[14] = outStreamSettings; //OutProtocolMask LSB - Set outStream bits
37953807

3796-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
3808+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
37973809
}
37983810

37993811
//Configure a given port to input UBX, NMEA, RTCM3 or a combination thereof
@@ -3814,7 +3826,7 @@ boolean SFE_UBLOX_GNSS::setPortInput(uint8_t portID, uint8_t inStreamSettings, u
38143826
//payloadCfg is now loaded with current bytes. Change only the ones we need to
38153827
payloadCfg[12] = inStreamSettings; //InProtocolMask LSB - Set inStream bits
38163828

3817-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
3829+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
38183830
}
38193831

38203832
//Changes the I2C address that the u-blox module responds to
@@ -4028,7 +4040,7 @@ boolean SFE_UBLOX_GNSS::configureMessage(uint8_t msgClass, uint8_t msgID, uint8_
40284040
//payloadCfg is now loaded with current bytes. Change only the ones we need to
40294041
payloadCfg[2 + portID] = sendRate; //Send rate is relative to the event a message is registered on. For example, if the rate of a navigation message is set to 2, the message is sent every 2nd navigation solution.
40304042

4031-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4043+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
40324044
}
40334045

40344046
//Enable a given message type, default of 1 per update rate (usually 1 per second)
@@ -4117,7 +4129,7 @@ boolean SFE_UBLOX_GNSS::setSurveyMode(uint8_t mode, uint16_t observationTime, fl
41174129
payloadCfg[30] = svinAccLimit >> 16;
41184130
payloadCfg[31] = svinAccLimit >> 24;
41194131

4120-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4132+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
41214133
}
41224134

41234135
//Begin Survey-In for NEO-M8P
@@ -4179,7 +4191,7 @@ bool SFE_UBLOX_GNSS::setStaticPosition(int32_t ecefXOrLat, int8_t ecefXOrLatHP,
41794191
payloadCfg[17] = ecefYOrLonHP;
41804192
payloadCfg[18] = ecefZOrAltHP;
41814193

4182-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4194+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
41834195
}
41844196

41854197
bool SFE_UBLOX_GNSS::setStaticPosition(int32_t ecefXOrLat, int32_t ecefYOrLon, int32_t ecefZOrAlt, bool latlong, uint16_t maxWait)
@@ -4382,7 +4394,7 @@ boolean SFE_UBLOX_GNSS::addGeofence(int32_t latitude, int32_t longitude, uint32_
43824394
payloadCfg[54] = currentGeofenceParams->rads[3] >> 16;
43834395
payloadCfg[55] = currentGeofenceParams->rads[3] >> 24;
43844396
}
4385-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4397+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
43864398
}
43874399

43884400
//Clear all geofences using UBX-CFG-GEOFENCE
@@ -4408,7 +4420,7 @@ boolean SFE_UBLOX_GNSS::clearGeofences(uint16_t maxWait)
44084420

44094421
currentGeofenceParams->numFences = 0; // Zero the number of geofences currently in use
44104422

4411-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4423+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
44124424
}
44134425

44144426
//Clear the antenna control settings using UBX-CFG-ANT
@@ -4426,7 +4438,7 @@ boolean SFE_UBLOX_GNSS::clearAntPIO(uint16_t maxWait)
44264438
payloadCfg[2] = 0xFF; // Antenna pin configuration: set pinSwitch and pinSCD to 31
44274439
payloadCfg[3] = 0xFF; // Antenna pin configuration: set pinOCD to 31, set reconfig bit
44284440

4429-
return ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4441+
return ((sendCommand(&packetCfg, maxWait, true)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
44304442
}
44314443

44324444
//Returns the combined geofence state using UBX-NAV-GEOFENCE
@@ -4702,7 +4714,7 @@ boolean SFE_UBLOX_GNSS::setDynamicModel(dynModel newDynamicModel, uint16_t maxWa
47024714
packetCfg.len = 36;
47034715
packetCfg.startingSpot = 0;
47044716

4705-
return (sendCommand(&packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
4717+
return (sendCommand(&packetCfg, maxWait, true) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
47064718
}
47074719

47084720
//Get the dynamic platform model using UBX-CFG-NAV5

0 commit comments

Comments
 (0)