@@ -224,7 +224,12 @@ void SFE_UBLOX_GPS::setSerialRate(uint32_t baudrate, uint8_t uartPort, uint16_t
224
224
_debugSerial->println (((uint32_t )payloadCfg[10 ] << 16 ) | ((uint32_t )payloadCfg[9 ] << 8 ) | payloadCfg[8 ]);
225
225
}
226
226
227
- sendCommand (packetCfg, maxWait);
227
+ sfe_ublox_status_e retVal = sendCommand (packetCfg, maxWait);
228
+ if (_printDebug == true )
229
+ {
230
+ _debugSerial->print (F (" setSerialRate: sendCommand returned: " ));
231
+ _debugSerial->println (statusString (retVal));
232
+ }
228
233
}
229
234
230
235
// Changes the I2C address that the Ublox module responds to
@@ -242,7 +247,7 @@ boolean SFE_UBLOX_GPS::setI2CAddress(uint8_t deviceAddress, uint16_t maxWait)
242
247
// payloadCfg is now loaded with current bytes. Change only the ones we need to
243
248
payloadCfg[4 ] = deviceAddress << 1 ; // DDC mode LSB
244
249
245
- if (sendCommand (packetCfg, maxWait) == true )
250
+ if (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT) // We are only expecting an ACK
246
251
{
247
252
// Success! Now change our internal global.
248
253
_gpsI2Caddress = deviceAddress; // Store the I2C address from user
@@ -975,7 +980,7 @@ boolean SFE_UBLOX_GPS::isConnected(uint16_t maxWait)
975
980
packetCfg.len = 0 ;
976
981
packetCfg.startingSpot = 0 ;
977
982
978
- return sendCommand (packetCfg, maxWait);
983
+ return ( sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_RECEIVED); // We are polling the RATE so we expect data and an ACK
979
984
}
980
985
return false ;
981
986
}
@@ -1257,10 +1262,7 @@ boolean SFE_UBLOX_GPS::saveConfiguration(uint16_t maxWait)
1257
1262
packetCfg.payload [4 ] = 0xFF ; // Set any bit in the saveMask field to save current config to Flash and BBR
1258
1263
packetCfg.payload [5 ] = 0xFF ;
1259
1264
1260
- if (sendCommand (packetCfg, maxWait) == false )
1261
- return (false ); // If command send fails then bail
1262
-
1263
- return (true );
1265
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1264
1266
}
1265
1267
1266
1268
// Save the selected configuration sub-sections to flash and BBR (battery backed RAM)
@@ -1281,10 +1283,7 @@ boolean SFE_UBLOX_GPS::saveConfigSelective(uint32_t configMask, uint16_t maxWait
1281
1283
packetCfg.payload [6 ] = (configMask >> 16 ) & 0xFF ;
1282
1284
packetCfg.payload [7 ] = (configMask >> 24 ) & 0xFF ;
1283
1285
1284
- if (sendCommand (packetCfg, maxWait) == false )
1285
- return (false ); // If command send fails then bail
1286
-
1287
- return (true );
1286
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1288
1287
}
1289
1288
1290
1289
// Reset module to factory defaults
@@ -1305,10 +1304,7 @@ boolean SFE_UBLOX_GPS::factoryDefault(uint16_t maxWait)
1305
1304
packetCfg.payload [8 ] = 0xFF ; // Set any bit in the loadMask field to discard current config and rebuild from lower non-volatile memory layers
1306
1305
packetCfg.payload [9 ] = 0xFF ;
1307
1306
1308
- if (sendCommand (packetCfg, maxWait) == false )
1309
- return (false ); // If command send fails then bail
1310
-
1311
- return (true );
1307
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1312
1308
}
1313
1309
1314
1310
// Given a group, ID and size, return the value of this config spot
@@ -1375,8 +1371,15 @@ uint8_t SFE_UBLOX_GPS::getVal8(uint32_t key, uint8_t layer, uint16_t maxWait)
1375
1371
}
1376
1372
1377
1373
// Send VALGET command with this key
1378
- if (sendCommand (packetCfg, maxWait) == false )
1379
- return (false ); // If command send fails then bail
1374
+
1375
+ sfe_ublox_status_e retVal = sendCommand (packetCfg, maxWait);
1376
+ if (_printDebug == true )
1377
+ {
1378
+ _debugSerial->print (F (" getVal8: sendCommand returned: " ));
1379
+ _debugSerial->println (statusString (retVal));
1380
+ }
1381
+ if (retVal != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
1382
+ return (0 ); // If command send fails then bail
1380
1383
1381
1384
// Verify the response is the correct length as compared to what the user called (did the module respond with 8-bits but the user called getVal32?)
1382
1385
// Response is 8 bytes plus cfg data
@@ -1425,11 +1428,7 @@ uint8_t SFE_UBLOX_GPS::setVal16(uint32_t key, uint16_t value, uint8_t layer, uin
1425
1428
payloadCfg[9 ] = value >> 8 * 1 ;
1426
1429
1427
1430
// Send VALSET command with this key and value
1428
- if (sendCommand (packetCfg, maxWait) == false )
1429
- return (false ); // If command send fails then bail
1430
-
1431
- // All done
1432
- return (true );
1431
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1433
1432
}
1434
1433
1435
1434
// Given a key, set an 8-bit value
@@ -1460,11 +1459,7 @@ uint8_t SFE_UBLOX_GPS::setVal8(uint32_t key, uint8_t value, uint8_t layer, uint1
1460
1459
payloadCfg[8 ] = value; // Value
1461
1460
1462
1461
// Send VALSET command with this key and value
1463
- if (sendCommand (packetCfg, maxWait) == false )
1464
- return (false ); // If command send fails then bail
1465
-
1466
- // All done
1467
- return (true );
1462
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1468
1463
}
1469
1464
1470
1465
// Given a key, set a 32-bit value
@@ -1498,11 +1493,7 @@ uint8_t SFE_UBLOX_GPS::setVal32(uint32_t key, uint32_t value, uint8_t layer, uin
1498
1493
payloadCfg[11 ] = value >> 8 * 3 ;
1499
1494
1500
1495
// Send VALSET command with this key and value
1501
- if (sendCommand (packetCfg, maxWait) == false )
1502
- return (false ); // If command send fails then bail
1503
-
1504
- // All done
1505
- return (true );
1496
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1506
1497
}
1507
1498
1508
1499
// Start defining a new UBX-CFG-VALSET ubxPacket
@@ -1674,11 +1665,7 @@ uint8_t SFE_UBLOX_GPS::sendCfgValset32(uint32_t key, uint32_t value, uint16_t ma
1674
1665
addCfgValset32 (key, value);
1675
1666
1676
1667
// Send VALSET command with this key and value
1677
- if (sendCommand (packetCfg, maxWait) == false )
1678
- return (false ); // If command send fails then bail
1679
-
1680
- // All done
1681
- return (true );
1668
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1682
1669
}
1683
1670
1684
1671
// Add a final keyID and value to an existing UBX-CFG-VALSET ubxPacket and send it
@@ -1689,11 +1676,7 @@ uint8_t SFE_UBLOX_GPS::sendCfgValset16(uint32_t key, uint16_t value, uint16_t ma
1689
1676
addCfgValset16 (key, value);
1690
1677
1691
1678
// Send VALSET command with this key and value
1692
- if (sendCommand (packetCfg, maxWait) == false )
1693
- return (false ); // If command send fails then bail
1694
-
1695
- // All done
1696
- return (true );
1679
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1697
1680
}
1698
1681
1699
1682
// Add a final keyID and value to an existing UBX-CFG-VALSET ubxPacket and send it
@@ -1704,11 +1687,7 @@ uint8_t SFE_UBLOX_GPS::sendCfgValset8(uint32_t key, uint8_t value, uint16_t maxW
1704
1687
addCfgValset8 (key, value);
1705
1688
1706
1689
// Send VALSET command with this key and value
1707
- if (sendCommand (packetCfg, maxWait) == false )
1708
- return (false ); // If command send fails then bail
1709
-
1710
- // All done
1711
- return (true );
1690
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1712
1691
}
1713
1692
1714
1693
// Get the current TimeMode3 settings - these contain survey in statuses
@@ -1719,7 +1698,7 @@ boolean SFE_UBLOX_GPS::getSurveyMode(uint16_t maxWait)
1719
1698
packetCfg.len = 0 ;
1720
1699
packetCfg.startingSpot = 0 ;
1721
1700
1722
- return (sendCommand (packetCfg, maxWait));
1701
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_RECEIVED); // We are expecting data and an ACK
1723
1702
}
1724
1703
1725
1704
// Control Survey-In for NEO-M8P
@@ -1748,7 +1727,7 @@ boolean SFE_UBLOX_GPS::setSurveyMode(uint8_t mode, uint16_t observationTime, flo
1748
1727
payloadCfg[29 ] = svinAccLimit >> 8 ;
1749
1728
payloadCfg[30 ] = svinAccLimit >> 16 ;
1750
1729
1751
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
1730
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT) ; // We are only expecting an ACK
1752
1731
}
1753
1732
1754
1733
// Begin Survey-In for NEO-M8P
@@ -1779,7 +1758,7 @@ boolean SFE_UBLOX_GPS::getSurveyStatus(uint16_t maxWait)
1779
1758
packetCfg.len = 0 ;
1780
1759
packetCfg.startingSpot = 0 ;
1781
1760
1782
- if (sendCommand (packetCfg, maxWait) == false )
1761
+ if (( sendCommand (packetCfg, maxWait)) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
1783
1762
return (false ); // If command send fails then bail
1784
1763
1785
1764
// We got a response, now parse the bits into the svin structure
@@ -1804,7 +1783,7 @@ boolean SFE_UBLOX_GPS::getPortSettings(uint8_t portID, uint16_t maxWait)
1804
1783
1805
1784
payloadCfg[0 ] = portID;
1806
1785
1807
- return (sendCommand (packetCfg, maxWait));
1786
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_RECEIVED); // We are expecting data and an ACK
1808
1787
}
1809
1788
1810
1789
// Configure a given port to output UBX, NMEA, RTCM3 or a combination thereof
@@ -1833,7 +1812,7 @@ boolean SFE_UBLOX_GPS::setPortOutput(uint8_t portID, uint8_t outStreamSettings,
1833
1812
// payloadCfg is now loaded with current bytes. Change only the ones we need to
1834
1813
payloadCfg[14 ] = outStreamSettings; // OutProtocolMask LSB - Set outStream bits
1835
1814
1836
- return (sendCommand (packetCfg, maxWait));
1815
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1837
1816
}
1838
1817
1839
1818
// Configure a given port to input UBX, NMEA, RTCM3 or a combination thereof
@@ -1854,7 +1833,7 @@ boolean SFE_UBLOX_GPS::setPortInput(uint8_t portID, uint8_t inStreamSettings, ui
1854
1833
// payloadCfg is now loaded with current bytes. Change only the ones we need to
1855
1834
payloadCfg[12 ] = inStreamSettings; // InProtocolMask LSB - Set inStream bits
1856
1835
1857
- return (sendCommand (packetCfg, maxWait));
1836
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1858
1837
}
1859
1838
1860
1839
// Configure a port to output UBX, NMEA, RTCM3 or a combination thereof
@@ -1895,16 +1874,17 @@ boolean SFE_UBLOX_GPS::setNavigationFrequency(uint8_t navFreq, uint16_t maxWait)
1895
1874
packetCfg.len = 0 ;
1896
1875
packetCfg.startingSpot = 0 ;
1897
1876
1898
- if (sendCommand (packetCfg, maxWait) == false ) // This will load the payloadCfg array with current settings of the given register
1899
- return (false ); // If command send fails then bail
1877
+ // This will load the payloadCfg array with current settings of the given register
1878
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
1879
+ return (false ); // If command send fails then bail
1900
1880
1901
1881
uint16_t measurementRate = 1000 / navFreq;
1902
1882
1903
1883
// payloadCfg is now loaded with current bytes. Change only the ones we need to
1904
1884
payloadCfg[0 ] = measurementRate & 0xFF ; // measRate LSB
1905
1885
payloadCfg[1 ] = measurementRate >> 8 ; // measRate MSB
1906
1886
1907
- return (sendCommand (packetCfg, maxWait));
1887
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1908
1888
}
1909
1889
1910
1890
// Get the rate at which the module is outputting nav solutions
@@ -1916,8 +1896,9 @@ uint8_t SFE_UBLOX_GPS::getNavigationFrequency(uint16_t maxWait)
1916
1896
packetCfg.len = 0 ;
1917
1897
packetCfg.startingSpot = 0 ;
1918
1898
1919
- if (sendCommand (packetCfg, maxWait) == false ) // This will load the payloadCfg array with current settings of the given register
1920
- return (0 ); // If command send fails then bail
1899
+ // This will load the payloadCfg array with current settings of the given register
1900
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
1901
+ return (0 ); // If command send fails then bail
1921
1902
1922
1903
uint16_t measurementRate = 0 ;
1923
1904
@@ -1960,7 +1941,7 @@ boolean SFE_UBLOX_GPS::setAutoPVT(boolean enable, boolean implicitUpdate, uint16
1960
1941
payloadCfg[1 ] = UBX_NAV_PVT;
1961
1942
payloadCfg[2 ] = enable ? 1 : 0 ; // rate relative to navigation freq.
1962
1943
1963
- bool ok = sendCommand (packetCfg, maxWait);
1944
+ boolean ok = (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1964
1945
if (ok)
1965
1946
{
1966
1947
autoPVT = enable;
@@ -1986,7 +1967,7 @@ boolean SFE_UBLOX_GPS::configureMessage(uint8_t msgClass, uint8_t msgID, uint8_t
1986
1967
packetCfg.payload [1 ] = msgID;
1987
1968
packetCfg.payload [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.
1988
1969
1989
- return (sendCommand (packetCfg, maxWait));
1970
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
1990
1971
}
1991
1972
1992
1973
// Enable a given message type, default of 1 per update rate (usually 1 per second)
@@ -2124,7 +2105,7 @@ boolean SFE_UBLOX_GPS::addGeofence(int32_t latitude, int32_t longitude, uint32_t
2124
2105
payloadCfg[54 ] = currentGeofenceParams.rads [3 ] >> 16 ;
2125
2106
payloadCfg[55 ] = currentGeofenceParams.rads [3 ] >> 24 ;
2126
2107
}
2127
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
2108
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT) ; // We are only expecting an ACK
2128
2109
}
2129
2110
2130
2111
// Clear all geofences using UBX-CFG-GEOFENCE
@@ -2146,7 +2127,7 @@ boolean SFE_UBLOX_GPS::clearGeofences(uint16_t maxWait)
2146
2127
2147
2128
currentGeofenceParams.numFences = 0 ; // Zero the number of geofences currently in use
2148
2129
2149
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
2130
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT) ; // We are only expecting an ACK
2150
2131
}
2151
2132
2152
2133
// Clear the antenna control settings using UBX-CFG-ANT
@@ -2164,7 +2145,7 @@ boolean SFE_UBLOX_GPS::clearAntPIO(uint16_t maxWait)
2164
2145
payloadCfg[2 ] = 0xFF ; // Antenna pin configuration: set pinSwitch and pinSCD to 31
2165
2146
payloadCfg[3 ] = 0xFF ; // Antenna pin configuration: set pinOCD to 31, set reconfig bit
2166
2147
2167
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
2148
+ return (( sendCommand (packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT) ; // We are only expecting an ACK
2168
2149
}
2169
2150
2170
2151
// Returns the combined geofence state using UBX-NAV-GEOFENCE
@@ -2175,7 +2156,8 @@ boolean SFE_UBLOX_GPS::getGeofenceState(geofenceState ¤tGeofenceState, uin
2175
2156
packetCfg.len = 0 ;
2176
2157
packetCfg.startingSpot = 0 ;
2177
2158
2178
- if (sendCommand (packetCfg, maxWait) == false ) // Ask module for the geofence status. Loads into payloadCfg.
2159
+ // Ask module for the geofence status. Loads into payloadCfg.
2160
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
2179
2161
return (false );
2180
2162
2181
2163
currentGeofenceState.status = payloadCfg[5 ]; // Extract the status
@@ -2221,7 +2203,8 @@ boolean SFE_UBLOX_GPS::powerSaveMode(bool power_save, uint16_t maxWait)
2221
2203
packetCfg.len = 0 ;
2222
2204
packetCfg.startingSpot = 0 ;
2223
2205
2224
- if (sendCommand (packetCfg, maxWait) == false ) // Ask module for the current power management settings. Loads into payloadCfg.
2206
+ // Ask module for the current power management settings. Loads into payloadCfg.
2207
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
2225
2208
return (false );
2226
2209
2227
2210
if (power_save)
@@ -2236,7 +2219,7 @@ boolean SFE_UBLOX_GPS::powerSaveMode(bool power_save, uint16_t maxWait)
2236
2219
packetCfg.len = 2 ;
2237
2220
packetCfg.startingSpot = 0 ;
2238
2221
2239
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
2222
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT ); // We are only expecting an ACK
2240
2223
}
2241
2224
2242
2225
// Change the dynamic platform model using UBX-CFG-NAV5
@@ -2252,7 +2235,8 @@ boolean SFE_UBLOX_GPS::setDynamicModel(dynModel newDynamicModel, uint16_t maxWai
2252
2235
packetCfg.len = 0 ;
2253
2236
packetCfg.startingSpot = 0 ;
2254
2237
2255
- if (sendCommand (packetCfg, maxWait) == false ) // Ask module for the current navigation model settings. Loads into payloadCfg.
2238
+ // Ask module for the current navigation model settings. Loads into payloadCfg.
2239
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are expecting data and an ACK
2256
2240
return (false );
2257
2241
2258
2242
payloadCfg[0 ] = 0x01 ; // mask: set only the dyn bit (0)
@@ -2262,7 +2246,7 @@ boolean SFE_UBLOX_GPS::setDynamicModel(dynModel newDynamicModel, uint16_t maxWai
2262
2246
packetCfg.len = 36 ;
2263
2247
packetCfg.startingSpot = 0 ;
2264
2248
2265
- return (sendCommand (packetCfg, maxWait)); // Wait for ack
2249
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_SENT ); // We are only expecting an ACK
2266
2250
}
2267
2251
2268
2252
// Given a spot in the payload array, extract four bytes and build a long
@@ -2484,8 +2468,7 @@ boolean SFE_UBLOX_GPS::getHPPOSLLH(uint16_t maxWait)
2484
2468
packetCfg.id = UBX_NAV_HPPOSLLH;
2485
2469
packetCfg.len = 0 ;
2486
2470
2487
- return sendCommand (packetCfg, maxWait);
2488
- return (false ); // If command send fails then bail
2471
+ return (sendCommand (packetCfg, maxWait) == SFE_UBLOX_STATUS_DATA_RECEIVED); // We are only expecting data (no ACK)
2489
2472
}
2490
2473
2491
2474
// Get the current 3D high precision positional accuracy - a fun thing to watch
@@ -2497,7 +2480,7 @@ uint32_t SFE_UBLOX_GPS::getPositionAccuracy(uint16_t maxWait)
2497
2480
packetCfg.len = 0 ;
2498
2481
packetCfg.startingSpot = 0 ;
2499
2482
2500
- if (sendCommand (packetCfg, maxWait) == false )
2483
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are only expecting data (no ACK )
2501
2484
return (0 ); // If command send fails then bail
2502
2485
2503
2486
uint32_t tempAccuracy = extractLong (24 ); // We got a response, now extract a long beginning at a given position
@@ -2657,7 +2640,7 @@ boolean SFE_UBLOX_GPS::getProtocolVersion(uint16_t maxWait)
2657
2640
packetCfg.len = 0 ;
2658
2641
packetCfg.startingSpot = 40 ; // Start at first "extended software information" string
2659
2642
2660
- if (sendCommand (packetCfg, maxWait) == false )
2643
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are only expecting data (no ACK )
2661
2644
return (false ); // If command send fails then bail
2662
2645
2663
2646
// Payload should now contain ~220 characters (depends on module type)
@@ -2733,7 +2716,7 @@ boolean SFE_UBLOX_GPS::getRELPOSNED(uint16_t maxWait)
2733
2716
packetCfg.len = 0 ;
2734
2717
packetCfg.startingSpot = 0 ;
2735
2718
2736
- if (sendCommand (packetCfg, maxWait) == false )
2719
+ if (sendCommand (packetCfg, maxWait) != SFE_UBLOX_STATUS_DATA_RECEIVED) // We are only expecting data (no ACK )
2737
2720
return (false ); // If command send fails then bail
2738
2721
2739
2722
// We got a response, now parse the bits
0 commit comments