diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-02-27 10:38:01 +0100 |
---|---|---|
committer | Steve Markgraf <steve@steve-m.de> | 2021-10-23 18:51:19 +0200 |
commit | 46647214763252b599084455df6645836f934d58 (patch) | |
tree | 81ac0723aef10c0a99f76f121478587cdd9dacea | |
parent | ad6a99f76cb6ea83e73de52575283ad62c8406e1 (diff) |
Calypso BTS sends RSSI with each received bust
-rw-r--r-- | include/l1ctl_proto.h | 1 | ||||
-rw-r--r-- | src/target/firmware/layer1/prim_bts.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/l1ctl_proto.h b/include/l1ctl_proto.h index 07d5c495..ddc83983 100644 --- a/include/l1ctl_proto.h +++ b/include/l1ctl_proto.h @@ -414,6 +414,7 @@ struct l1ctl_bts_burst_nb_ind { uint32_t fn; uint8_t tn; uint8_t toa; + int8_t rssi; uint8_t data[15]; } __attribute__((packed)); diff --git a/src/target/firmware/layer1/prim_bts.c b/src/target/firmware/layer1/prim_bts.c index d02fa068..2f121bf9 100644 --- a/src/target/firmware/layer1/prim_bts.c +++ b/src/target/firmware/layer1/prim_bts.c @@ -171,6 +171,7 @@ l1s_bts_resp(uint8_t p1, uint8_t p2, uint16_t p3) else if (db->rx[0].cmd == DSP_EXT_RX_CMD_NB) { uint16_t *d = &db->data[32]; + int rssi = agc_inp_dbm8_by_pm(d[1] >> 3) / 8; if (d[3] > 0x1000) { struct msgb *msg; @@ -195,6 +196,12 @@ l1s_bts_resp(uint8_t p1, uint8_t p2, uint16_t p3) /* TOA */ bi->toa = d[0]; + /* RSSI */ + if (rssi < -110) + bi->rssi = -110; + else if (rssi < 0) + bi->rssi = rssi; + /* Pack bits */ memset(bi->data, 0x00, sizeof(bi->data)); |