struct sr_datafeed_packet packet;
struct sr_datafeed_analog analog;
float fvalue;
+ const char *s;
char *mstr;
sr_spew("FETC reply '%s'.", g_match_info_get_string(match));
* get metadata soon enough. */
return SR_OK;
- if (!strcmp(g_match_info_get_string(match), "+9.90000000E+37")) {
+ s = g_match_info_get_string(match);
+ if (!strcmp(s, "-9.90000000E+37") || !strcmp(s, "+9.90000000E+37")) {
/* An invalid measurement shows up on the display as "O.L", but
* comes through like this. Since comparing 38-digit floats
* is rather problematic, we'll cut through this here. */
fvalue = NAN;
} else {
mstr = g_match_info_fetch(match, 1);
- if (sr_atof_ascii(mstr, &fvalue) != SR_OK || fvalue == 0.0) {
+ if (sr_atof_ascii(mstr, &fvalue) != SR_OK) {
g_free(mstr);
sr_err("Invalid float.");
return SR_ERR;