Hi all,

I'm doing a bit of work with Ofono again, extending support for a Quectel EG91 - handling additional cell strength information which seems necessary for LTE.

I'm using Quectel's AT+QCOPS which is returning some negative signal strengths and after some investigation I've spotted that gatresult::g_at_result_iter_next_number() doesn't handle negative numbers.

No doubt there's a better solution than mine, but this does appear to work.

Cheers,

Alex

--- ofono-1.22.org/gatchat/gatresult.c  2011-10-11 18:21:45.000000000 +0000
+++ ofono-1.22/gatchat/gatresult.c      2021-07-20 15:50:06.300001000 +0000
@@ -262,6 +262,7 @@
        int end;
        int len;
        int value = 0;
+       int sign = 1;
        char *line;

        if (iter == NULL)
@@ -276,10 +277,16 @@
        pos = iter->line_pos;
        end = pos;

+       if(line[end] == '-') {
+               sign = -1;
+               end += 1;
+       }
+
        while (line[end] >= '0' && line[end] <= '9') {
                value = value * 10 + (int)(line[end] - '0');
                end += 1;
        }
+       value = sign * value;

        if (pos == end)
                return FALSE;
_______________________________________________
ofono mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to