Merge pull request #10 from david-cermak/bugfix/modem_parse_battery_status

fix(esp_modem): Fix battery status parser
This commit is contained in:
david-cermak
2021-12-07 16:03:00 +01:00
committed by GitHub
4 changed files with 4 additions and 4 deletions

View File

@ -1,4 +1,4 @@
version: "0.1.12"
version: "0.1.13"
description: esp modem
dependencies:
# Required IDF version

View File

@ -167,7 +167,7 @@ command_result get_battery_status(CommandableIf *t, int &voltage, int &bcs, int
// Parsing +CBC: <bcs>,<bcl>,<voltage>
out = out.substr(pattern.size());
int pos, value, property = 0;
while ((pos = out.find(',') != std::string::npos)) {
while ((pos = out.find(',')) != std::string::npos) {
if (std::from_chars(out.data(), out.data() + pos, value).ec == std::errc::invalid_argument) {
return command_result::FAIL;
}

View File

@ -31,7 +31,7 @@ int LoopbackTerm::write(uint8_t *data, size_t len)
} else if (command.find("AT+CGMM\r") != std::string::npos) {
response = "0G Dummy Model\n\r\nOK\r\n";
} else if (command.find("AT+CBC\r") != std::string::npos) {
response = is_bg96 ? "+CBC: 1,2,123456V\r\r\n\r\nOK\r\n\n\r\n" :
response = is_bg96 ? "+CBC: 1,20,123456\r\r\n\r\nOK\r\n\n\r\n" :
"+CBC: 123.456V\r\r\n\r\nOK\r\n\n\r\n";
} else if (command.find("AT+CPIN=1234\r") != std::string::npos) {
response = "OK\r\n";

View File

@ -24,7 +24,7 @@ TEST_CASE("DCE AT parser", "[esp_modem]")
CHECK(dce->get_battery_status(milli_volt, bcl, bcs) == command_result::OK);
CHECK(milli_volt == 123456);
CHECK(bcl == 1);
CHECK(bcs == 2);
CHECK(bcs == 20);
int rssi, ber;
CHECK(dce->get_signal_quality(rssi, ber) == command_result::OK);