aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-07-03 16:17:06 +0200
committerpespin <pespin@sysmocom.de>2019-07-19 11:44:13 +0000
commit13c81098f8b9119abae34bffd698708dd161a008 (patch)
treee7c5eac7631fb1c79eeaef0b9362722fd660d865
parent15fa64bce4a17b8f90ca11523784547ffde79265 (diff)
Transceiver: Support SETFORMAT command
Only old v0 is supported so far. Related: OS#4006 Change-Id: If9fc22f9987238a5ff870df7718de4efc9e04289
-rw-r--r--Transceiver52M/Transceiver.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index 6bbf3a3..080afd1 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -868,6 +868,20 @@ void Transceiver::driveControl(size_t chan)
mStates[chan].chanType[timeslot] = (ChannelCombination) corrCode;
setModulus(timeslot, chan);
sprintf(response,"RSP SETSLOT 0 %d %d",timeslot,corrCode);
+ } else if (match_cmd(command, "SETFORMAT", &params)) {
+ // set TRXD protocol version
+ unsigned version_recv;
+ sscanf(params, "%u", &version_recv);
+ LOGC(DTRXCTRL, INFO) << "BTS requests TRXD version switch: " << version_recv;
+ if (version_recv > TRX_DATA_FORMAT_VER) {
+ LOGC(DTRXCTRL, INFO) << "rejecting TRXD version " << version_recv
+ << "in favor of " << TRX_DATA_FORMAT_VER;
+ sprintf(response, "RSP SETFORMAT %u %u", TRX_DATA_FORMAT_VER, version_recv);
+ } else {
+ LOGC(DTRXCTRL, NOTICE) << "switching to TRXD version " << version_recv;
+ mVersionTRXD = version_recv;
+ sprintf(response, "RSP SETFORMAT %u %u", version_recv, version_recv);
+ }
} else if (match_cmd(command, "_SETBURSTTODISKMASK", &params)) {
// debug command! may change or disapear without notice
// set a mask which bursts to dump to disk