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