Commit f1136134 authored by Laurent THOMAS's avatar Laurent THOMAS Committed by Robert Schmidt

add management of nb tx antennas=0 in rfsimulator code

trace the error of 0 antennas, and avoid infinite loop of calls to read
0 bytes
parent 9ddb8c0b
......@@ -688,6 +688,8 @@ static int rfsimulator_write_internal(rfsimulator_state_t *t,
if (b->conn_sock >= 0) {
samplesBlockHeader_t header = {nsamps, nbAnt, timestamp};
if (!nbAnt)
LOG_E(HW, "rfsimulator sending 0 tx antennas\n");
fullwrite(b->conn_sock, &header, sizeof(header), t);
if (nbAnt == 1) {
fullwrite(b->conn_sock, samplesVoid[0], sampleToByte(nsamps, nbAnt), t);
......@@ -796,6 +798,8 @@ static void process_recv_header(rfsimulator_state_t *t, buffer_t *b, bool first_
// We have a transmission hole to fill, like TDD
// we create no signal samples up to the beginning of this reception
int nbAnt = b->th.nbAnt;
if (!nbAnt)
LOG_E(HW, "rfsimulator receive 0 rx antennas\n");
if (b->th.timestamp - b->lastReceivedTS < CirSize) {
// case we wrap at circular buffer end
for (uint64_t index = b->lastReceivedTS; index < b->th.timestamp; index++) {
......@@ -822,6 +826,8 @@ static void process_recv_header(rfsimulator_state_t *t, buffer_t *b, bool first_
b->transferPtr = (char *)&b->circularBuf[(b->lastReceivedTS * b->th.nbAnt) % CirSize];
// we now need to read the samples
b->remainToTransfer = sampleToByte(b->th.size, b->th.nbAnt);
if (!b->remainToTransfer)
b->headerMode = true; // We got a header with 0 antennas, no I/Q to read
return;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment