From 720de332b89e208e3960a87ff85dc83d478e33b8 Mon Sep 17 00:00:00 2001 From: Ruud Overeem <overeem@astron.nl> Date: Fri, 21 Mar 2008 08:45:52 +0000 Subject: [PATCH] Bug 1167: Cleaned up MAC layers. There are less dependancies between the packages now. --- MAC/APL/MainCU/configure.in | 3 +- .../MainCU/src/MACScheduler/MACScheduler.cc | 19 +++++----- .../MainCU/src/MACScheduler/MACScheduler.h | 14 +++---- .../ObservationControl/ObservationControl.cc | 38 ++++++++++--------- .../ObservationControl/ObservationControl.h | 9 ++--- 5 files changed, 40 insertions(+), 43 deletions(-) diff --git a/MAC/APL/MainCU/configure.in b/MAC/APL/MainCU/configure.in index fe0406a77db..ca92553493d 100644 --- a/MAC/APL/MainCU/configure.in +++ b/MAC/APL/MainCU/configure.in @@ -58,10 +58,11 @@ lofar_PVSS(1) lofar_INTERNAL(LCS/Common, common, , 1, Common/LofarTypes.h,,) lofar_INTERNAL(LCS/ACC/APS, aps, , 1, APS/ParameterSet.h,,) lofar_INTERNAL(SAS/OTDB, otdb, , 1, OTDB/OTDBconnection.h,,) -lofar_INTERNAL(MAC/GCF/GCFCommon, gcfcommon, , 1, GCF/GCF_Defines.h,,) +lofar_INTERNAL(MAC/MACIO, MACIO, , 1, MACIO/MACServiceInfo.h,,) lofar_INTERNAL(MAC/GCF/TM, gcftm, , 1, GCF/TM/GCF_Task.h,,) lofar_INTERNAL(MAC/GCF/RTDB, rtdb, , 1, GCF/RTDB/RTDB_PropertySet.h,,) lofar_INTERNAL(MAC/APL/APLCommon, aplcommon, , 1, APL/APLCommon/APL_Defines.h,,) +lofar_INTERNAL(Appl/ApplCommon, applcommon, , 1, ApplCommon/Observation.h,,) lofar_EXTERNAL(boost,1,boost/date_time/date.hpp, boost_date_time) lofar_EXTERNAL(pqxx,2.5.5,pqxx/pqxx, pqxx) lofar_EXTERNAL(pq,,libpq-fe.h, pq, /usr/local/pgsql) diff --git a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc index d46bf335761..f96164254e1 100644 --- a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc +++ b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc @@ -21,12 +21,12 @@ //# $Id$ #include <lofar_config.h> #include <Common/LofarLogger.h> +#include <Common/SystemUtil.h> #include <APS/ParameterSet.h> #include <GCF/TM/GCF_Protocols.h> -#include <GCF/GCF_ServiceInfo.h> +#include <MACIO/MACServiceInfo.h> #include <GCF/PVSS/GCF_PVTypes.h> -#include <GCF/Utils.h> #include <APL/APLCommon/APL_Defines.h> #include <APL/APLCommon/ControllerDefines.h> #include <APL/APLCommon/StationInfo.h> @@ -38,7 +38,6 @@ #include "MACSchedulerDefines.h" #include "MACScheduler.h" -using namespace LOFAR::GCF::Common; using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::RTDB; @@ -93,8 +92,8 @@ MACScheduler::MACScheduler() : itsObservations.reserve(10); // already reserve memory for 10 observations. - GCF::TM::registerProtocol(CONTROLLER_PROTOCOL, CONTROLLER_PROTOCOL_STRINGS); - GCF::TM::registerProtocol(DP_PROTOCOL, DP_PROTOCOL_STRINGS); + registerProtocol(CONTROLLER_PROTOCOL, CONTROLLER_PROTOCOL_STRINGS); + registerProtocol(DP_PROTOCOL, DP_PROTOCOL_STRINGS); } @@ -365,6 +364,9 @@ GCFEvent::TResult MACScheduler::active_state(GCFEvent& event, GCFPortInterface& if (msg.successful) { LOG_DEBUG_STR("Start of " << msg.cntlrName << " was successful, waiting for connection."); +#if 0 +// TODO: this code became obsolete because the Obscontroller now sends +// CONTROL_CONNECTED events. // --- // Ok, controller is really up, update SAS so that obs will not appear in // in the SAS list again. @@ -378,6 +380,7 @@ GCFEvent::TResult MACScheduler::active_state(GCFEvent& event, GCFPortInterface& TreeStateConv tsc(itsOTDBconnection); tm.setTreeState(theObs->obsID, tsc.get("queued")); // --- +#endif } else { LOG_ERROR_STR("Observation controller " << msg.cntlrName << @@ -389,11 +392,9 @@ GCFEvent::TResult MACScheduler::active_state(GCFEvent& event, GCFPortInterface& break; } -// TODO: the ObsControls don't send the CONTROL_CONNECT yet. -// so the code is copied to the CONTROL STARTED event for now. - case CONTROL_CONNECT: { + case CONTROL_CONNECTED: { // The observationController has registered itself at childControl. - CONTROLConnectEvent conEvent(event); + CONTROLConnectedEvent conEvent(event); LOG_DEBUG_STR(conEvent.cntlrName << " is connected, updating SAS)"); // Ok, controller is really up, update SAS so that obs will not appear in diff --git a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h index 9e705eb5025..992f9cb4fcd 100644 --- a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h +++ b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h @@ -24,24 +24,21 @@ #define MACScheduler_H //# GCF Includes -#include <GCF/RTDB/RTDB_PropertySet.h> +#include <MACIO/GCF_Event.h> +#include <GCF/TM/GCF_Control.h> #include <GCF/PVSS/GCF_PVTypes.h> -#include <GCF/TM/GCF_Port.h> -#include <GCF/TM/GCF_ITCPort.h> -#include <GCF/TM/GCF_TimerPort.h> -#include <GCF/TM/GCF_Task.h> -#include <GCF/TM/GCF_Event.h> +#include <GCF/RTDB/RTDB_PropertySet.h> //# local includes #include <APL/APLCommon/Controller_Protocol.ph> #include <APL/APLCommon/ChildControl.h> #include <APL/APLCommon/CTState.h> -#include <APL/APLCommon/Observation.h> //# Common Includes #include <Common/lofar_string.h> #include <Common/lofar_vector.h> #include <Common/LofarLogger.h> +#include <ApplCommon/Observation.h> //# ACC Includes #include <OTDB/OTDBconnection.h> @@ -52,15 +49,14 @@ // forward declaration namespace LOFAR { + using MACIO::GCFEvent; using GCF::TM::GCFTimerPort; using GCF::TM::GCFITCPort; using GCF::TM::GCFPort; - using GCF::TM::GCFEvent; using GCF::TM::GCFPortInterface; using GCF::TM::GCFTask; using GCF::RTDB::RTDBPropertySet; using APLCommon::ChildControl; - using APLCommon::Observation; namespace MainCU { diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc index 15e146b88e8..b90cbffa21e 100644 --- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc +++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc @@ -24,13 +24,13 @@ #include <Common/StreamUtil.h> #include <APS/ParameterSet.h> -#include <GCF/Utils.h> -#include <GCF/GCF_ServiceInfo.h> +#include <Common/SystemUtil.h> +#include <ApplCommon/Observation.h> +#include <MACIO/MACServiceInfo.h> #include <APL/APLCommon/APL_Defines.h> #include <APL/APLCommon/APLUtilities.h> #include <APL/APLCommon/Controller_Protocol.ph> #include <APL/APLCommon/StationInfo.h> -#include <APL/APLCommon/Observation.h> #include <APL/APLCommon/StationInfo.h> #include <GCF/PVSS/GCF_PVTypes.h> #include <GCF/RTDB/DP_Protocol.ph> @@ -123,8 +123,8 @@ ObservationControl::ObservationControl(const string& cntlrName) : // need port for timers. itsTimerPort = new GCFTimerPort(*this, "TimerPort"); - GCF::TM::registerProtocol (CONTROLLER_PROTOCOL, CONTROLLER_PROTOCOL_STRINGS); - GCF::TM::registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); + registerProtocol (CONTROLLER_PROTOCOL, CONTROLLER_PROTOCOL_STRINGS); + registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); // we cannot use setState right now, wait for propertysets to come online // setState(CTState::CREATED); @@ -265,7 +265,7 @@ GCFEvent::TResult ObservationControl::prepDB_state(GCFEvent& event, vector<string>::iterator iter = stations.begin(); vector<string>::iterator end = stations.end(); gNrStations = stations.size(); - LOG_DEBUG_STR(gNrStations << " are used in this Observation."); + LOG_DEBUG_STR(gNrStations << " stations are used in this Observation."); string DPobsName(createPropertySetName(PSN_OBSERVATION, getName())+"_Core_"); // observation<nr>_ while (iter != end) { string stationName(PVSSDatabaseName(*iter)); @@ -393,22 +393,22 @@ GCFEvent::TResult ObservationControl::starting_state(GCFEvent& event, itsPropertySet->setValue(PN_OBSCTRL_NYQUISTZONE, GCFPVInteger(theObs.nyquistZone)); itsPropertySet->setValue(PN_OBSCTRL_ANTENNA_ARRAY, GCFPVString(theObs.antennaArray)); itsPropertySet->setValue(PN_OBSCTRL_RECEIVER_LIST, GCFPVString( - APLUtilities::compactedArrayString(globalParameterSet()-> + compactedArrayString(globalParameterSet()-> getString("Observation.receiverList")))); itsPropertySet->setValue(PN_OBSCTRL_SAMPLE_CLOCK, GCFPVInteger(theObs.sampleClock)); itsPropertySet->setValue(PN_OBSCTRL_MEASUREMENT_SET, GCFPVString( globalParameterSet()->getString("Observation.MSNameMask"))); itsPropertySet->setValue(PN_OBSCTRL_STATION_LIST, GCFPVString( - APLUtilities::compactedArrayString(globalParameterSet()-> + compactedArrayString(globalParameterSet()-> getString("Observation.VirtualInstrument.stationList")))); itsPropertySet->setValue(PN_OBSCTRL_INPUT_NODE_LIST, GCFPVString( - APLUtilities::compactedArrayString(globalParameterSet()-> + compactedArrayString(globalParameterSet()-> getString("Observation.VirtualInstrument.inputNodeList")))); itsPropertySet->setValue(PN_OBSCTRL_BGL_NODE_LIST, GCFPVString( - APLUtilities::compactedArrayString(globalParameterSet()-> + compactedArrayString(globalParameterSet()-> getString("Observation.VirtualInstrument.BGLNodeList")))); itsPropertySet->setValue(PN_OBSCTRL_STORAGE_NODE_LIST, GCFPVString( - APLUtilities::compactedArrayString(globalParameterSet()-> + compactedArrayString(globalParameterSet()-> getString("Observation.VirtualInstrument.storageNodeList")))); // for the beams we have to construct dyn arrays first. @@ -582,14 +582,16 @@ GCFEvent::TResult ObservationControl::active_state(GCFEvent& event, GCFPortInter break; } - case CONTROL_CONNECT: { - CONTROLConnectEvent msg(event); - LOG_DEBUG_STR("Received CONNECT(" << msg.cntlrName << ")"); + case CONTROL_CONNECTED: { + CONTROLConnectedEvent msg(event); + LOG_DEBUG_STR("Received CONNECTED(" << msg.cntlrName << ")"); // TODO: do something usefull with this information! - CONTROLConnectedEvent answer; - answer.cntlrName = msg.cntlrName; - answer.result = CT_RESULT_NO_ERROR; - itsParentPort->send(answer); +// CONTROLConnectedEvent answer; +// answer.cntlrName = msg.cntlrName; +// answer.result = CT_RESULT_NO_ERROR; +// itsParentPort->send(answer); + msg.cntlrName = getName(); + itsParentPort->send(msg); break; } diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h index d9c55d633b0..664ac616892 100644 --- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h +++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h @@ -24,12 +24,9 @@ #define ObservationControl_H //# GCF Includes +#include <MACIO/GCF_Event.h> +#include <GCF/TM/GCF_Control.h> #include <GCF/RTDB/RTDB_PropertySet.h> -#include <GCF/TM/GCF_Port.h> -#include <GCF/TM/GCF_ITCPort.h> -#include <GCF/TM/GCF_TimerPort.h> -#include <GCF/TM/GCF_Task.h> -#include <GCF/TM/GCF_Event.h> //# local includes #include <APL/APLCommon/Controller_Protocol.ph> @@ -50,10 +47,10 @@ // forward declaration namespace LOFAR { + using MACIO::GCFEvent; using GCF::TM::GCFTimerPort; using GCF::TM::GCFITCPort; using GCF::TM::GCFPort; - using GCF::TM::GCFEvent; using GCF::TM::GCFPortInterface; using GCF::TM::GCFTask; using GCF::RTDB::RTDBPropertySet; -- GitLab