From fb66c6dcee1cab76e7c7fd90800bb16e27df12cc Mon Sep 17 00:00:00 2001 From: Pieter Donker <donker@astron.nl> Date: Thu, 19 Aug 2010 20:05:53 +0000 Subject: [PATCH] Bug 335: modified TBBDriver --- MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc | 9 +++------ MAC/APL/PIC/TBB_Driver/src/DriverSettings.h | 2 +- MAC/APL/PIC/TBB_Driver/src/TBBDriver.cc | 16 ++++++++++++---- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc b/MAC/APL/PIC/TBB_Driver/src/DriverSettings.cc index 5647b74ffaa..890fec86ccc 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 88a6fb7f309..9487f823b78 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 77fa015e3c8..946f6fb197c 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 { -- GitLab