diff --git a/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc b/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc index f9f60022ef86064d71043505600fa773f9039021..ce5991b429b1aaf80b067baa72902f926fca1b01 100644 --- a/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc +++ b/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc @@ -297,6 +297,7 @@ GCFEvent::TResult RSPMonitor::askConfiguration(GCFEvent& event, itsNrHBAs = RSconf.getInt("RS.N_HBAS", 0); itsNrLBAs = RSconf.getInt("RS.N_LBAS", 0); itsHasSplitters = RSconf.getBool("RS.HBA_SPLIT", false); + itsHasAartfaac = RSconf.getBool("RS.AARTFAAC", false); // inform user LOG_INFO(formatString("nr RCUs = %d",ack.n_rcus)); @@ -307,6 +308,7 @@ GCFEvent::TResult RSPMonitor::askConfiguration(GCFEvent& event, LOG_INFO(formatString("nr HBAs = %d", itsNrHBAs)); LOG_INFO_STR( "RSPmask = " << itsRSPmask); LOG_INFO(formatString("has splitters= %s", (itsHasSplitters ? "yes" : "no"))); + LOG_INFO(formatString("has aartfaac = %s", (itsHasAartfaac ? "yes" : "no"))); // do some checks if (itsNrRSPboards != (uint32)ack.max_rspboards) { @@ -1248,7 +1250,12 @@ GCFEvent::TResult RSPMonitor::askDatastream(GCFEvent& event, GCFPortInterface& p case F_TIMER: LOG_ERROR_STR ("RSP:Timeout on getting the datastream information, trying other information"); itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("RSP:getdatastream timeout")); - TRAN(RSPMonitor::askAartfaacState); // go to next state. + if (itsHasAartfaac) { + TRAN(RSPMonitor::askAartfaacState); // go to next state. + } + else { + TRAN(RSPMonitor::waitForNextCycle); // go to next state. + } break; case RSP_GETDATASTREAMACK: { @@ -1257,7 +1264,12 @@ GCFEvent::TResult RSPMonitor::askDatastream(GCFEvent& event, GCFPortInterface& p if (ack.status != RSP_SUCCESS) { LOG_ERROR ("RSP:Failed to get the datastream information. Trying other information"); itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("RSP:getdatastream error")); - TRAN(RSPMonitor::askAartfaacState); // go to next state. + if (itsHasAartfaac) { + TRAN(RSPMonitor::askAartfaacState); // go to next state. + } + else { + TRAN(RSPMonitor::waitForNextCycle); // go to next state. + } break; } @@ -1268,7 +1280,12 @@ GCFEvent::TResult RSPMonitor::askDatastream(GCFEvent& event, GCFPortInterface& p LOG_DEBUG ("Updated datastream information, waiting for next cycle"); // itsOwnPropertySet->setValue(PN_HWM_RSP_ERROR,GCFPVString("")); - TRAN(RSPMonitor::askAartfaacState); // go to next state. + if (itsHasAartfaac) { + TRAN(RSPMonitor::askAartfaacState); // go to next state. + } + else { + TRAN(RSPMonitor::waitForNextCycle); // go to next state. + } } break; @@ -1295,6 +1312,7 @@ GCFEvent::TResult RSPMonitor::askDatastream(GCFEvent& event, GCFPortInterface& p return (status); } + // // askAartfaacState(event, port) // diff --git a/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.h b/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.h index b3dd9aabff8f06b403f440b577241cf313816857..8c98c38e8b0896461632acf6769d0addd676b442 100644 --- a/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.h +++ b/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.h @@ -106,17 +106,18 @@ private: vector<RTDBPropertySet*> itsSubracks; vector<RTDBPropertySet*> itsRSPs; vector<RTDBPropertySet*> itsRCUs; - RTDBPropertySet* itsStationInfo; + RTDBPropertySet* itsStationInfo; RTDBPropertySet* itsAartfaacInfo; blitz::Array<uint,1> itsRCUstates; // actual status of the RCUs blitz::Array<bool,2> itsRCUInputStates; // enable state of the three RCU inputs - int itsRCUquery; // ID of the PVSS query - AntennaMapper* itsAntMapper; - bool itsHasSplitters; // from RemoteStation.conf + int itsRCUquery; // ID of the PVSS query + AntennaMapper* itsAntMapper; + bool itsHasSplitters; // from RemoteStation.conf + bool itsHasAartfaac; // from RemoteStation.conf bitset<MAX_RSPBOARDS> itsSplitters; // on or off. bitset<MAX_RSPBOARDS> itsRSPmask; // present in station or not - bitset<MAX_RCUS> itsRCUmask; // present in station or not + bitset<MAX_RCUS> itsRCUmask; // present in station or not };