Skip to content

Commit 713cca8

Browse files
committed
Fixed getExtSignalQuality response parsing.
1 parent f18e6db commit 713cca8

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/SparkFun_u-blox_SARA-R5_Arduino_Library.cpp

+13-7
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,7 @@ bool SARA_R5::processURCEvent(const char *event)
592592
}
593593
}
594594
{ // URC: +UUMQTTC (MQTT Command Result)
595-
SARA_R5_mqtt_command_opcode_t mqttCmd;
596-
int mqttResult;
595+
int command, result;
597596
int scanNum;
598597
int qos = -1;
599598
String topic;
@@ -607,8 +606,8 @@ bool SARA_R5::processURCEvent(const char *event)
607606
searchPtr++; // skip spaces
608607
}
609608

610-
scanNum = sscanf(searchPtr, "%d,%d", &mqttCmd, &mqttResult);
611-
if ((scanNum == 2) && (mqttCmd == SARA_R5_MQTT_COMMAND_SUBSCRIBE))
609+
scanNum = sscanf(searchPtr, "%d,%d", &command, &result);
610+
if ((scanNum == 2) && (command == SARA_R5_MQTT_COMMAND_SUBSCRIBE))
612611
{
613612
char topicC[100] = "";
614613
scanNum = sscanf(searchPtr, "%*d,%*d,%d,\"%[^\"]\"", &qos, topicC);
@@ -623,7 +622,7 @@ bool SARA_R5::processURCEvent(const char *event)
623622

624623
if (_mqttCommandRequestCallback != nullptr)
625624
{
626-
_mqttCommandRequestCallback(mqttCmd, mqttResult);
625+
_mqttCommandRequestCallback(command, result);
627626
}
628627

629628
return true;
@@ -1644,9 +1643,11 @@ SARA_R5_error_t SARA_R5::getExtSignalQuality(signal_quality& signal_quality)
16441643
}
16451644

16461645
int scanned = 0;
1647-
char *searchPtr = strstr(response, "+CESQ: ");
1646+
const char * responseStr = "+CESQ:";
1647+
char *searchPtr = strstr(response, responseStr);
16481648
if (searchPtr != nullptr)
16491649
{
1650+
searchPtr += strlen(responseStr); // Move searchPtr to first char
16501651
while (*searchPtr == ' ') searchPtr++; // skip spaces
16511652
scanned = sscanf(searchPtr, "%u,%u,%u,%u,%u,%u", &signal_quality.rxlev, &signal_quality.ber,
16521653
&signal_quality.rscp, &signal_quality.enc0, &signal_quality.rsrq, &signal_quality.rsrp);
@@ -4702,7 +4703,12 @@ SARA_R5_error_t SARA_R5::getFTPprotocolError(int *error_code, int *error_code2)
47024703
char *searchPtr = strstr(response, "+UFTPER:");
47034704
if (searchPtr != nullptr)
47044705
{
4705-
scanned = sscanf(searchPtr, "+UFTPER:%d,%d\r\n", &code, &code2);
4706+
searchPtr += strlen("+UFTPER:"); // Move searchPtr to first char
4707+
while (*searchPtr == ' ')
4708+
{
4709+
searchPtr++; // skip spaces
4710+
}
4711+
scanned = sscanf(searchPtr, "%d,%d\r\n", &code, &code2);
47064712
}
47074713

47084714
if (scanned == 2)

0 commit comments

Comments
 (0)