From 33ee7b2a2e4be8721cf2d0a760f4a32cc042da05 Mon Sep 17 00:00:00 2001 From: Ruud Overeem <overeem@astron.nl> Date: Fri, 19 Feb 2010 10:21:53 +0000 Subject: [PATCH] Bug 1284: Setting splitter on as soon as the HBA fields are used. --- .../include/ApplCommon/Observation.h | 2 +- LCS/ApplCommon/src/Observation.cc | 19 ++++++------------- .../src/StationControl/StationControl.cc | 4 ++-- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/LCS/ApplCommon/include/ApplCommon/Observation.h b/LCS/ApplCommon/include/ApplCommon/Observation.h index befa5148a1c..8b109d3d9ca 100644 --- a/LCS/ApplCommon/include/ApplCommon/Observation.h +++ b/LCS/ApplCommon/include/ApplCommon/Observation.h @@ -111,7 +111,7 @@ public: // new way of selecting antennas string antennaSet; // like LBA_INNER, LBA_OUTER, etc. bool useLongBaselines; - bool splitter; // On or Off + bool splitterOn; // On or Off vector<Beam> beams; vector<int> beamlet2beams; // to which beam each beamlet belongs diff --git a/LCS/ApplCommon/src/Observation.cc b/LCS/ApplCommon/src/Observation.cc index 055ab936793..7334a060443 100644 --- a/LCS/ApplCommon/src/Observation.cc +++ b/LCS/ApplCommon/src/Observation.cc @@ -42,7 +42,7 @@ Observation::Observation() : stopTime(0), nyquistZone(0), sampleClock(0), - splitter(false) + splitterOn(false) { } @@ -56,7 +56,7 @@ Observation::Observation(ParameterSet* aParSet) : stopTime(0), nyquistZone(0), sampleClock(0), - splitter(false) + splitterOn(false) { // analyse ParameterSet. string prefix = aParSet->locateModule("Observation") + "Observation."; @@ -98,17 +98,9 @@ Observation::Observation(ParameterSet* aParSet) : // auto select the right antennaArray when antennaSet variable is used. if (!antennaSet.empty()) { - if (antennaSet == "HBA_BOTH") { - antennaArray = "HBA"; - splitter = true; - } - else if (antennaSet == "HBA_ONE") { - antennaArray = "HBA"; - } - else { - antennaArray = "LBA"; - } + antennaArray = antennaSet.substr(0,3); } + splitterOn = (antennaArray == "HBA"); RCUset.reset(); // clear RCUset by default. if (aParSet->isDefined(prefix+"receiverList")) { @@ -203,7 +195,7 @@ bool Observation::conflicts(const Observation& other) const } // Observation overlap, check splitters - if (other.splitter != splitter) { + if (other.splitterOn != splitterOn) { LOG_INFO_STR("Splitters of observation " << obsID << " and " << other.obsID << " conflict"); return (true); } @@ -359,6 +351,7 @@ ostream& Observation::print (ostream& os) const os << "receiver set : " << RCUset << endl; os << "sampleClock : " << sampleClock << endl; os << "filter : " << filter << endl; + os << "splitter : " << (splitterOn ? "ON" : "OFF") << endl; os << "nyquistZone : " << nyquistZone << endl << endl; os << "Meas.set : " << MSNameMask << endl << endl; diff --git a/MAC/APL/StationCU/src/StationControl/StationControl.cc b/MAC/APL/StationCU/src/StationControl/StationControl.cc index 7fc0f2fbc94..e2ba83e87bb 100644 --- a/MAC/APL/StationCU/src/StationControl/StationControl.cc +++ b/MAC/APL/StationCU/src/StationControl/StationControl.cc @@ -790,7 +790,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor } // set the splitters in the right state. - bool splitterState = itsStartingObs->second->obsPar()->splitter; + bool splitterState = itsStartingObs->second->obsPar()->splitterOn; LOG_DEBUG_STR ("Setting the splitters to " << (splitterState ? "ON" : "OFF")); CLKCTRLSetSplittersEvent setEvent; setEvent.splittersOn = splitterState; @@ -800,7 +800,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor case CLKCTRL_SET_SPLITTERS_ACK: { CLKCTRLSetSplittersAckEvent ack(event); - bool splitterState = itsStartingObs->second->obsPar()->splitter; + bool splitterState = itsStartingObs->second->obsPar()->splitterOn; if (ack.status != CLKCTRL_NO_ERR) { LOG_FATAL_STR("Unable to set the splittters to " << (splitterState ? "ON" : "OFF")); _abortObservation(itsStartingObs); -- GitLab