From 07d9515828ad52eed1eda8d805a3c3bca1740760 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 5 Sep 2014 20:46:57 +0200 Subject: [PATCH] Improved the signal level calculation --- src/modems/hayes.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modems/hayes.c b/src/modems/hayes.c index e464f1d..edc51df 100644 --- a/src/modems/hayes.c +++ b/src/modems/hayes.c @@ -3865,10 +3865,13 @@ static void _on_code_csq(HayesChannel * channel, char const * answer) return; if(u > 31) event->registration.signal = 0.0 / 0.0; - else if(u <= 12) + else if(u >= 20) event->registration.signal = 1.0; else - event->registration.signal = (32.0 - u) / 20.0; + { + event->registration.signal = (u > 4) ? (u - 4) : 0; + event->registration.signal = event->registration.signal / 16.0; + } /* this is usually worth an event */ hayes->helper->event(hayes->helper->modem, event); }