diff options
Diffstat (limited to 'src/gsmd')
-rw-r--r-- | src/gsmd/vendor_tihtc.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gsmd/vendor_tihtc.c b/src/gsmd/vendor_tihtc.c index 42f9d50..5ec257c 100644 --- a/src/gsmd/vendor_tihtc.c +++ b/src/gsmd/vendor_tihtc.c @@ -90,6 +90,8 @@ static int htccsq_parse(char *buf, int len, const char *param, struct gsmd_evt_auxdata *aux; struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, sizeof(*aux)); + static int rssi_table[] = { 0,5,10,15,20,25,99 }; + unsigned int i; DEBUGP("entering htccsq_parse param=`%s'\n", param); if (!ucmd) @@ -98,9 +100,10 @@ static int htccsq_parse(char *buf, int len, const char *param, aux = (struct gsmd_evt_auxdata *) ucmd->buf; - /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */ - /* 2 --> 11 */ - aux->u.signal.sigq.rssi = atoi(buf); + i = atoi(buf); + if (i > 6) + i = 6; + aux->u.signal.sigq.rssi = rssi_table[atoi(buf)]; aux->u.signal.sigq.ber = 99; DEBUGP("sending EVT_SIGNAL\n"); |