From d848bdbfaa63795c0d1a95eec15936eb20665ff0 Mon Sep 17 00:00:00 2001
From: Ruud Overeem <overeem@astron.nl>
Date: Fri, 27 Mar 2009 11:13:45 +0000
Subject: [PATCH] Bug 1000: RCUset in Observation was replaced with
 getRCUbitset.

---
 LCS/ApplCommon/include/ApplCommon/StationConfig.h    |  3 ++-
 MAC/APL/MainCU/src/MACScheduler/ObsClaimer.cc        | 12 +++++++-----
 .../src/CalibrationControl/CalibrationControl.cc     |  6 +++---
 .../StationCU/src/StationControl/StationControl.cc   |  4 +++-
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/LCS/ApplCommon/include/ApplCommon/StationConfig.h b/LCS/ApplCommon/include/ApplCommon/StationConfig.h
index 3a359e77784..7dda0236c1b 100644
--- a/LCS/ApplCommon/include/ApplCommon/StationConfig.h
+++ b/LCS/ApplCommon/include/ApplCommon/StationConfig.h
@@ -53,10 +53,11 @@ public:
 	~StationConfig();
 
 private:
-	// Default construction and Copying is not allowed.
+	// Copying is not allowed.
 	StationConfig (const StationConfig& that);
 	StationConfig& operator= (const StationConfig& that);
 
+public:
 	//# Data members
 	int		stationID;
 	int		nrRSPs;
diff --git a/MAC/APL/MainCU/src/MACScheduler/ObsClaimer.cc b/MAC/APL/MainCU/src/MACScheduler/ObsClaimer.cc
index 492d8422d78..9f27d1c6214 100644
--- a/MAC/APL/MainCU/src/MACScheduler/ObsClaimer.cc
+++ b/MAC/APL/MainCU/src/MACScheduler/ObsClaimer.cc
@@ -24,8 +24,9 @@
 #include <Common/SystemUtil.h>
 #include <Common/StreamUtil.h>
 #include <Common/Version.h>
-
 #include <Common/ParameterSet.h>
+#include <ApplCommon/StationConfig.h>
+
 #include <GCF/TM/GCF_Protocols.h>
 #include <GCF/TM/GCF_PortInterface.h>
 #include <MACIO/MACServiceInfo.h>
@@ -238,11 +239,12 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa
 			theObsPS->setValue(PN_OBS_STORAGE_NODE_LIST,GCFPVString (theObs.storageNodeList), 0.0, false);
 
 			// the receiver bitmap can be derived from the RCUset.
-			int		nrReceivers(theObs.RCUset.size());
+			StationConfig		config;
+			bitset<MAX_RCUS>	theRCUs(theObs.getRCUbitset(config.nrLBAs, config.nrHBAs, config.nrRSPs, config.hasSplitters));
 			string	rbm;
-			rbm.resize(nrReceivers, '0');
-			for (int i = 0; i < nrReceivers; i++) {
-				if (theObs.RCUset[i]) {
+			rbm.resize(MAX_RCUS, '0');
+			for (int i = 0; i < MAX_RCUS; i++) {
+				if (theRCUs[i]) {
 					rbm[i] = '1';
 				}
 			}
diff --git a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc
index 51503e79452..4361059310e 100644
--- a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc
+++ b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc
@@ -23,6 +23,7 @@
 #include <Common/LofarLogger.h>
 #include <Common/lofar_datetime.h>
 #include <Common/Version.h>
+#include <ApplCommon/StationConfig.h>
 
 #include <GCF/PVSS/GCF_PVTypes.h>
 #include <MACIO/MACServiceInfo.h>
@@ -630,9 +631,8 @@ bool	CalibrationControl::startCalibration()
 		calStartEvent.rcumode().resize(1);
 		calStartEvent.rcumode()(0).setMode((RSP_Protocol::RCUSettings::Control::RCUMode)
 											convertFilterSelection(itsObsPar.filter));
-	//	calStartEvent.nyquist_zone = itsObsPar.nyquistZone;
-	//	calStartEvent.rcumode()(0).setSpecinv(calStartEvent.rcumode()(0).getNyquistZone() == 2);
-		calStartEvent.subset 	   = itsObsPar.RCUset;
+		StationConfig		config;
+		calStartEvent.subset = itsObsPar.getRCUbitset(config.nrLBAs, config.nrHBAs, config.nrRSPs, config.hasSplitters);
 		LOG_DEBUG(formatString("Sending CALSTART(%s,%s,%08X)", 
 								beamName.c_str(), calStartEvent.parent.c_str(),
 								calStartEvent.rcumode()(0).getRaw()));
diff --git a/MAC/APL/StationCU/src/StationControl/StationControl.cc b/MAC/APL/StationCU/src/StationControl/StationControl.cc
index 2bc859380d6..dcd37e270e6 100644
--- a/MAC/APL/StationCU/src/StationControl/StationControl.cc
+++ b/MAC/APL/StationCU/src/StationControl/StationControl.cc
@@ -29,6 +29,7 @@
 #include <Common/LofarConstants.h>
 #include <Common/SystemUtil.h>
 #include <Common/Version.h>
+#include <ApplCommon/StationConfig.h>
 
 #include <Common/ParameterSet.h>
 #include <GCF/PVSS/GCF_PVTypes.h>
@@ -840,7 +841,8 @@ LOG_DEBUG_STR("theOBS=" << theObs);
 				 " has no conflicts with other running observations");
 
 	// Create a bitset containing the available receivers for this oberservation.
-	Observation::RCUset_t	realReceivers = Observation(&theObsPS).RCUset;
+	StationConfig	config;
+	Observation::RCUset_t	realReceivers = Observation(&theObsPS).getRCUbitset(config.nrLBAs, config.nrHBAs, config.nrRSPs, config.hasSplitters);
 	// apply the current state of the hardware to the desired selection when user likes that.
 	if (itsUseHWinfo) {
 		realReceivers &= itsRCUmask;
-- 
GitLab