From 1248f0036e46dfd75472cf08086b1b6e4a97cfa0 Mon Sep 17 00:00:00 2001 From: Pieter Donker <donker@astron.nl> Date: Mon, 29 Sep 2014 15:02:07 +0000 Subject: [PATCH] Task #5910: add check for Aartfaac station in HardwareMonitor --- .../src/HardwareMonitor/RSPMonitor.cc | 24 ++++++++++++++++--- .../src/HardwareMonitor/RSPMonitor.h | 11 +++++---- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc b/MAC/APL/StationCU/src/HardwareMonitor/RSPMonitor.cc index f9f60022ef8..ce5991b429b 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 b3dd9aabff8..8c98c38e8b0 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 }; -- GitLab