Я пытаюсь проанализировать следующий вывод, полученный от модуля GSM в Arduino, чтобы получить только часть Напряжение (3.900V
). Однако я не могу заставить его работать.
"
+CBC: 0,66,3.900V
OK
"
Я пробовал следующий код, но он не работает и даже падает.
float getVoltage() {
if (atCmd("AT+CBC\r") == 1) {
char *p = strchr(buffer, ',');
if (p) {
p += 3; // get voltage
int vo = atof(p) ;
p = strchr(p, '.');
if (p) vo += *(p + 1) - '0'; // ??
return vo;
}
}
return 0;
}
Как это можно сделать лучше или прозрачнее?