diff --git a/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc b/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc index 5647b74ffaa2f8a27ae5a7abd540383b6692deb4..890fec86ccc1456b1c94a726a69c344bfd58467c 100644 --- a/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc +++ b/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc @@ -323,7 +323,7 @@ int32 TbbSettings::getFirstChannelNr(int32 board, int32 mp) return((board * itsChannelsOnBoard) + (mp * itsChannelsOnMp)); } -void TbbSettings::setDestination(int32 rcunr, char *storage) +void TbbSettings::setDestination(int32 channelnr, char *storage) { char mac[20]; char ip[20]; @@ -355,11 +355,8 @@ void TbbSettings::setDestination(int32 rcunr, char *storage) LOG_DEBUG_STR(formatString("storage=%s NOT found", key)); } else { - int32 ch; - int32 board; - convertRcu2Ch(rcunr, &board, &ch); - itsChannelInfo[ch * board].dstIpCep = static_cast<string>(ip); - itsChannelInfo[ch * board].dstMacCep = static_cast<string>(mac); + itsChannelInfo[channelnr].dstIpCep = static_cast<string>(ip); + itsChannelInfo[channelnr].dstMacCep = static_cast<string>(mac); } } diff --git a/MAC/APL/PIC/TBB_Driver/src/DriverSettings.h b/MAC/APL/PIC/TBB_Driver/src/DriverSettings.h index 88a6fb7f309177e6a0c99f6751d262d04945a1e1..9487f823b7833414b50938da92fd957a20f53189 100644 --- a/MAC/APL/PIC/TBB_Driver/src/DriverSettings.h +++ b/MAC/APL/PIC/TBB_Driver/src/DriverSettings.h @@ -189,7 +189,7 @@ public: void setDstIpCep(int32 channelnr, string ip); void setSrcMacCep(int32 boardnr, string mac); void setDstMacCep(int32 channelnr, string mac); - void setDestination(int32 boardnr, char *storage); + void setDestination(int32 channelnr, char *storage); void clearRcuSettings(int32 boardnr); diff --git a/MAC/APL/PIC/TBB_Driver/src/TBBDriver.cc b/MAC/APL/PIC/TBB_Driver/src/TBBDriver.cc index 77fa015e3c819a49c0a7fecbe57718f9ec0f2752..946f6fb197ca23e310509f059f59150e560cc60c 100644 --- a/MAC/APL/PIC/TBB_Driver/src/TBBDriver.cc +++ b/MAC/APL/PIC/TBB_Driver/src/TBBDriver.cc @@ -1077,13 +1077,17 @@ bool TBBDriver::sendInfo(GCFEvent& event, GCFPortInterface& port) TBBModeEvent tbb_event(event); for (int32 rcu = 0; rcu < TS->maxChannels(); rcu++) { if (tbb_event.rcu_mask.test(rcu)) { - TS->setChOperatingMode(rcu, tbb_event.rec_mode[rcu]); + int chan; + int board; + TS->convertRcu2Ch(rcu, &board, &chan); + chan += board * TS->nrChannelsOnBoard(); + TS->setChOperatingMode(chan, tbb_event.rec_mode[rcu]); } } TBBModeAckEvent ack; for (int32 i = 0; i < TS->maxBoards(); i++) { - ack.status_mask[i] = 0; + ack.status_mask[i] = TBB_SUCCESS; } port.send(ack); } else { @@ -1097,12 +1101,16 @@ bool TBBDriver::sendInfo(GCFEvent& event, GCFPortInterface& port) TBBCepStorageEvent tbb_event(event); for (int32 rcu = 0; rcu < TS->maxChannels(); rcu++) { if (tbb_event.rcu_mask.test(rcu)) { - TS->setDestination(rcu, tbb_event.destination); + int chan; + int board; + TS->convertRcu2Ch(rcu, &board, &chan); + chan += board * TS->nrChannelsOnBoard(); + TS->setDestination(chan, tbb_event.destination); } } TBBCepStorageAckEvent tbb_ack; for (int32 i = 0; i < TS->maxBoards(); i++) { - tbb_ack.status_mask[i] = 0; + tbb_ack.status_mask[i] = TBB_SUCCESS; } port.send(tbb_ack); } else {