From cdaf406087b6e3bd33a58ed0b19f78baf639c82f Mon Sep 17 00:00:00 2001
From: Ruud Overeem <overeem@astron.nl>
Date: Mon, 8 Oct 2012 15:09:55 +0000
Subject: [PATCH] Task #1418: Merged partially with MAC-Monitoring #2801.

---
 .gitattributes                                |  12 +
 MAC/APL/APLCommon/src/ControllerDefines.cc    |   6 +-
 MAC/APL/CEPCU/CMakeLists.txt                  |   2 +-
 .../src/CEPHardwareMonitor/BlueGeneMonitor.cc | 330 +++++++++++++++
 .../src/CEPHardwareMonitor/BlueGeneMonitor.h  |  85 ++++
 .../src/CEPHardwareMonitor/CEPHWMonitor.dpl   |  29 ++
 .../CEPHardwareMonitor.conf                   |  12 +
 .../CEPHardwareMonitorMain.cc                 |  84 ++++
 .../src/CEPHardwareMonitor/CMakeLists.txt     |  14 +
 .../src/CEPHardwareMonitor/ClusterMonitor.cc  | 363 ++++++++++++++++
 .../src/CEPHardwareMonitor/ClusterMonitor.h   |  89 ++++
 .../CEPHardwareMonitor/PVSSDatapointDefs.h    | 393 ++++++++++++++++++
 MAC/APL/CEPCU/src/CEPHardwareMonitor/README   |  10 +
 .../CEPCU/src/CEPHardwareMonitor/zabbix_get   | Bin 0 -> 172190 bytes
 MAC/APL/CEPCU/src/CMakeLists.txt              |   1 +
 .../CEPCU/src/OnlineControl/tPVSSMapping.cc   |  87 ++++
 16 files changed, 1514 insertions(+), 3 deletions(-)
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.cc
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.h
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHWMonitor.dpl
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitor.conf
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.cc
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h
 create mode 100644 MAC/APL/CEPCU/src/CEPHardwareMonitor/README
 create mode 100755 MAC/APL/CEPCU/src/CEPHardwareMonitor/zabbix_get
 create mode 100644 MAC/APL/CEPCU/src/OnlineControl/tPVSSMapping.cc

diff --git a/.gitattributes b/.gitattributes
index 1f555631211..7a6b617b267 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2389,10 +2389,22 @@ MAC/APL/CASATools/include/CASATools/CasaConverter.h -text
 MAC/APL/CASATools/src/CasaConverter.cc -text
 MAC/APL/CASATools/test/tCasaConverter.cc -text
 MAC/APL/CASATools/test/tCasaConverter.log_prop -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.cc -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.h -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHWMonitor.dpl -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitor.conf -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.cc -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/README -text
+MAC/APL/CEPCU/src/CEPHardwareMonitor/zabbix_get -text
 MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapoints.dpl -text
 MAC/APL/CEPCU/src/CEPlogProcessor/CEPDatapointtypes.dpl -text
 MAC/APL/CEPCU/src/CEPlogProcessor/CircularBuffer.h -text
 MAC/APL/CEPCU/src/CEPlogProcessor/rtlogsender.py -text
+MAC/APL/CEPCU/src/OnlineControl/tPVSSMapping.cc -text
 MAC/APL/CEPCU/src/PythonControl/PythonControl.conf -text
 MAC/APL/CEPCU/src/PythonControl/tMDparser.cc -text
 MAC/APL/CR_Protocol/CMakeLists.txt -text
diff --git a/MAC/APL/APLCommon/src/ControllerDefines.cc b/MAC/APL/APLCommon/src/ControllerDefines.cc
index 5f06e931287..8a321d4f28d 100644
--- a/MAC/APL/APLCommon/src/ControllerDefines.cc
+++ b/MAC/APL/APLCommon/src/ControllerDefines.cc
@@ -29,7 +29,6 @@
 #include <Common/SystemUtil.h>
 #include <Common/ParameterSet.h>					// indexValue
 #include <APL/APLCommon/ControllerDefines.h>
-#include <ApplCommon/LofarDirs.h>
 #include <ApplCommon/StationInfo.h>
 #include "Controller_Protocol.ph"
 
@@ -312,7 +311,10 @@ string	createPropertySetName(const string&		propSetMask,
 		psName.replace(pos, 10, string("Midplane%d"));
 	}
 	if ((pos = psName.find("@ionode@")) != string::npos) {
-		psName.replace(pos, 8, string("IONode%d"));
+		psName.replace(pos, 8, string("IONode%02d"));
+	}
+	if ((pos = psName.find("@locusnode@")) != string::npos) {
+		psName.replace(pos, 11, string("LocusNode%03d"));
 	}
 	if ((pos = psName.find("@osrack@")) != string::npos) {
 		psName.replace(pos, 8, string("OSRack%d"));
diff --git a/MAC/APL/CEPCU/CMakeLists.txt b/MAC/APL/CEPCU/CMakeLists.txt
index bbdafe85ae5..01fca5d2dcc 100644
--- a/MAC/APL/CEPCU/CMakeLists.txt
+++ b/MAC/APL/CEPCU/CMakeLists.txt
@@ -1,7 +1,7 @@
 # $Id$
 
 # Do not split the following line, otherwise makeversion will fail!
-lofar_package(CEPCU 1.0 DEPENDS Common ALC PLC ApplCommon MACIO GCFTM GCFRTDB APLCommon OTDB)
+lofar_package(CEPCU 1.0 DEPENDS Common ALC PLC ApplCommon MACIO GCFTM GCFRTDB APLCommon RTDBCommon OTDB)
 
 include(LofarFindPackage)
 lofar_find_package(Boost REQUIRED COMPONENTS date_time)
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.cc b/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.cc
new file mode 100644
index 00000000000..350d5f831a1
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.cc
@@ -0,0 +1,330 @@
+//#  BlueGeneMonitor.cc: Monitors if the BGP hardware is available
+//#
+//#  Copyright (C) 2011
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: BlueGeneMonitor.cc 10505 2007-09-07 17:14:57Z overeem $
+#include <lofar_config.h>
+#include <Common/LofarLogger.h>
+#include <Common/LofarConstants.h>
+#include <Common/LofarLocators.h>
+#include <Common/StringUtil.h>
+#include <Common/ParameterSet.h>
+
+#include <GCF/PVSS/GCF_PVTypes.h>
+#include <GCF/PVSS/PVSSinfo.h>
+#include <MACIO/MACServiceInfo.h>
+#include <APL/APLCommon/ControllerDefines.h>
+#include <APL/RTDBCommon/RTDButilities.h>
+#include <GCF/RTDB/DP_Protocol.ph>
+//#include <APL/APLCommon/StationInfo.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>	// usleep
+#include <netdb.h>	// gethostbyname
+
+#include "BlueGeneMonitor.h"
+#include "PVSSDatapointDefs.h"
+
+#define	IONODES_PER_BGP_PARTITION	64
+#define MAX2(a,b)	((a) > (b)) ? (a) : (b)
+
+namespace LOFAR {
+	using namespace APLCommon;
+	using namespace APL::RTDBCommon;
+	using namespace GCF::TM;
+	using namespace GCF::PVSS;
+	using namespace GCF::RTDB;
+	namespace CEPCU {
+	
+//
+// BlueGeneMonitor()
+//
+BlueGeneMonitor::BlueGeneMonitor(const string&	cntlrName) :
+	GCFTask 			((State)&BlueGeneMonitor::initial_state,cntlrName),
+	itsOwnPropertySet	(0),
+	itsTimerPort		(0),
+	itsDPservice		(0),
+	itsPollInterval		(60),
+	itsLastBGPState		(-1)
+{
+	LOG_TRACE_OBJ_STR (cntlrName << " construction");
+
+	// need port for timers.
+	itsTimerPort = new GCFTimerPort(*this, "BGPTimerPort");
+
+	itsDPservice = new DPservice(this);
+	ASSERTSTR(itsDPservice, "Can't allocate DPservice");
+
+	itsBlueGeneFrontEnd = globalParameterSet()->getString("BlueGeneFrontEnd", "");
+	ASSERTSTR(!itsBlueGeneFrontEnd.empty(), "Name of BlueGene FrontEnd node not specified");
+
+	registerProtocol(DP_PROTOCOL, DP_PROTOCOL_STRINGS);
+}
+
+
+//
+// ~BlueGeneMonitor()
+//
+BlueGeneMonitor::~BlueGeneMonitor()
+{
+	LOG_TRACE_OBJ_STR (getName() << " destruction");
+
+	if (itsDPservice)	delete itsDPservice;
+
+	if (itsTimerPort)	delete itsTimerPort;
+}
+
+
+//
+// initial_state(event, port)
+//
+// Setup connection with PVSS
+//
+GCFEvent::TResult BlueGeneMonitor::initial_state(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	LOG_DEBUG_STR ("initial:" << eventName(event) << "@" << port.getName());
+
+	switch (event.signal) {
+    case F_INIT:
+   		break;
+
+	case F_ENTRY: {
+		// Get access to my own propertyset.
+		LOG_DEBUG_STR ("Activating PropertySet " << PSN_CEP_HARDWARE_MONITOR);
+		itsTimerPort->setTimer(2.0);
+		itsOwnPropertySet = new RTDBPropertySet(PSN_CEP_HARDWARE_MONITOR,
+												PST_CEP_HARDWARE_MONITOR,
+												PSAT_WO,
+												this);
+
+		}
+		break;
+
+	case DP_CREATED: {
+		// NOTE: this function may be called DURING the construction of the PropertySet.
+		// Always exit this event in a way that GCF can end the construction.
+		DPCreatedEvent		dpEvent(event);
+		LOG_DEBUG_STR("Result of creating " << dpEvent.DPname << " = " << dpEvent.result);
+		itsTimerPort->cancelAllTimers();
+		itsTimerPort->setTimer(0.0);
+		}
+		break;
+
+	case F_TIMER: {
+		// PropertySet must exist by now
+		ASSERTSTR(itsOwnPropertySet, "Could not create the PVSS datapoint " << PSN_CEP_HARDWARE_MONITOR);
+
+		// update PVSS.
+		LOG_TRACE_FLOW ("Updateing state to PVSS");
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION, GCFPVString("BlueGene:initialising"));
+		itsOwnPropertySet->setValue(PN_CHM_BGP_CONNECTED,  GCFPVBool(false));
+
+		// is name resolvable?
+		struct hostent*		hostinfo = gethostbyname(itsBlueGeneFrontEnd.c_str());
+		if (!hostinfo) {
+			itsOwnPropertySet->setValue(PN_FSM_ERROR,  GCFPVString("Name of BG frontend node is unresolvable"));
+			TRAN(BlueGeneMonitor::finish_state);		// go to final state.
+		}
+		itsOwnPropertySet->setValue(PN_FSM_ERROR,  GCFPVString(""));
+		TRAN(BlueGeneMonitor::getBlueGeneState);		// do inital check
+	}
+	break;
+
+	case DP_SET:
+		break;
+
+	case F_QUIT:
+		TRAN (BlueGeneMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("initial, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+
+
+//
+// getBlueGeneState(event, port)
+//
+// Ask the information of the BlueGene
+//
+GCFEvent::TResult BlueGeneMonitor::getBlueGeneState(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	if (eventName(event) != "DP_SET") {
+		LOG_DEBUG_STR ("getBlueGeneState:" << eventName(event) << "@" << port.getName());
+	}
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("BlueGene:requesting BlueGene info"));
+		itsTimerPort->setTimer(15.0);		// in case the answer never comes
+
+		string	command(formatString("ssh %s 'bgpartstatus R00' 2>&1", itsBlueGeneFrontEnd.c_str()));
+		FILE*	pipe(popen(command.c_str(), "r"));
+		char	line[1024];
+		line[0] = '\0';
+		if (!pipe || !fgets (line, sizeof (line), pipe)) {
+			LOG_ERROR_STR ("BlueGene:Unable to read pipe: " << command);
+			itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("BlueGene:pipe failure"));
+			if (pipe) {
+				LOG_ERROR_STR("Pipe error: " << strerror(errno));
+				fclose(pipe);
+			}
+			TRAN(BlueGeneMonitor::waitForNextCycle);				// go to next state.
+			break;
+		}
+		fclose(pipe);
+
+		// possible answers:
+		// free         - partition is available.
+        // initializing - partition is booting.
+        // rebooting    - partition is rebooting.
+        // busy         - partition is running a job.
+		// unavailable  - partition is partly used by other processes
+        // deallocating - partition is cleaning up.
+        // error        - partition is in error state
+		bool	inError(false);
+		if (!strcmp(line, "error")) {
+			LOG_ERROR_STR ("BlueGene:Partition R00 in error state: " << line);
+			itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("BlueGene:unknown partitionstate"));
+			inError = true;
+		}
+
+		int		newState(inError ? RTDB_OBJ_STATE_BROKEN : RTDB_OBJ_STATE_OPERATIONAL);
+		if (newState != itsLastBGPState) {
+			string	pvssDBname(PVSSinfo::getLocalSystemName());
+			for (int i = 0;  i < IONODES_PER_BGP_PARTITION; i++) {
+				LOG_INFO_STR("setObjectState(" << getName() << "," <<  formatString("%s:%s", pvssDBname.c_str(), _IOnodeName(i).c_str()) << "," <<  newState << ")");
+				setObjectState(getName(), formatString("%s:%s", pvssDBname.c_str(), _IOnodeName(i).c_str()), newState);
+			}
+		}
+		itsLastBGPState = newState;
+		TRAN(BlueGeneMonitor::waitForNextCycle);				// go to next state.
+		break;
+	}
+
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	case F_QUIT:
+		TRAN (BlueGeneMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("getBlueGeneState, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+//
+// IOnodeName(nodeNr)
+//
+string BlueGeneMonitor::_IOnodeName(int	nodeNr)
+{
+	string	IONodeMask(createPropertySetName(PSN_IO_NODE,""));
+	return (formatString(IONodeMask.c_str(), nodeNr/32, nodeNr));
+}
+
+//
+// waitForNextCycle(event, port)
+//
+// Wait for our next cycle.
+//
+GCFEvent::TResult BlueGeneMonitor::waitForNextCycle(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	if (eventName(event) != "DP_SET") {
+		LOG_DEBUG_STR ("waitForNextCycle:" << eventName(event) << "@" << port.getName());	
+	}
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("BlueGene:wait for next cycle"));
+		int		waitTime = itsPollInterval - (time(0) % itsPollInterval);
+		if (waitTime == 0) {
+			waitTime = itsPollInterval;
+		}
+		itsTimerPort->cancelAllTimers();
+		itsTimerPort->setTimer(double(waitTime));
+		LOG_INFO_STR("BlueGene:Waiting " << waitTime << " seconds for next cycle");
+	}
+	break;
+
+	case F_TIMER: {
+		itsOwnPropertySet->setValue(string(PN_FSM_ERROR),GCFPVString(""));
+		TRAN(BlueGeneMonitor::getBlueGeneState);
+	}
+	break;
+
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	case F_QUIT:
+		TRAN (BlueGeneMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("waitForNextCycle, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+
+//
+// finish_state(event, port)
+//
+// Write controller state to PVSS
+//
+GCFEvent::TResult BlueGeneMonitor::finish_state(GCFEvent& event, GCFPortInterface& port)
+{
+	LOG_DEBUG_STR ("finish_state:" << eventName(event) << "@" << port.getName());
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		// update PVSS
+		itsOwnPropertySet->setValue(string(PN_FSM_CURRENT_ACTION),GCFPVString("BlueGene:finished"));
+		break;
+	}
+  
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	default:
+		LOG_DEBUG("finishing_state, DEFAULT");
+		break;
+	}    
+	return (GCFEvent::HANDLED);
+}
+
+
+}; // CEPCU
+}; // LOFAR
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.h b/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.h
new file mode 100644
index 00000000000..5567484edea
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/BlueGeneMonitor.h
@@ -0,0 +1,85 @@
+//#  BlueGeneMonitor.h: Monitors the BlueGene hardware.
+//#
+//#  Copyright (C) 2006
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: BlueGeneMonitor.h 10461 2007-08-23 22:44:03Z overeem $
+
+#ifndef CEPCU_BLUEGENE_MONITOR_H
+#define CEPCU_BLUEGENE_MONITOR_H
+
+//# Common Includes
+#include <blitz/array.h>
+#include <Common/lofar_string.h>
+#include <Common/lofar_vector.h>
+#include <Common/LofarConstants.h>
+
+//# GCF Includes
+#include <GCF/TM/GCF_Control.h>
+#include <GCF/RTDB/RTDB_PropertySet.h>
+#include <GCF/RTDB/DPservice.h>
+
+// forward declaration
+
+namespace LOFAR {
+	namespace CEPCU {
+
+using	MACIO::GCFEvent;
+using	GCF::TM::GCFPortInterface;
+using	GCF::TM::GCFTimerPort;
+using	GCF::TM::GCFTCPPort;
+using	GCF::TM::GCFTask;
+using	GCF::RTDB::RTDBPropertySet;
+using	GCF::RTDB::DPservice;
+
+
+class BlueGeneMonitor : public GCFTask
+{
+public:
+	explicit BlueGeneMonitor(const string& cntlrName);
+	~BlueGeneMonitor();
+
+private:
+	// During the initial state all connections with the other programs are made.
+   	GCFEvent::TResult initial_state    (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult getBlueGeneState (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult waitForNextCycle (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult finish_state	   (GCFEvent& e, GCFPortInterface& p);
+
+	string _IOnodeName(int	nodeNr);
+
+	// avoid defaultconstruction and copying
+	BlueGeneMonitor();
+	BlueGeneMonitor(const BlueGeneMonitor&);
+   	BlueGeneMonitor& operator=(const BlueGeneMonitor&);
+
+	// Data members
+	RTDBPropertySet*			itsOwnPropertySet;
+
+	GCFTimerPort*				itsTimerPort;
+	DPservice*					itsDPservice;
+
+	string						itsBlueGeneFrontEnd;
+	uint32						itsPollInterval;
+
+	int							itsLastBGPState;
+};
+
+  };//CEPCU
+};//LOFAR
+#endif
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHWMonitor.dpl b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHWMonitor.dpl
new file mode 100644
index 00000000000..02ffad928cf
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHWMonitor.dpl
@@ -0,0 +1,29 @@
+# DpType
+TypeName
+CEPHardwareMonitor.CEPHardwareMonitor	1#
+	status	41#:ObjectStatus
+	process	41#:ProcessStatus
+	BGP	1#
+		connected	23#
+	Cluster	1#
+		connected	23#
+
+DpName	TypeName	ID
+_mp_CEPHardwareMonitor	CEPHardwareMonitor	0
+_dt_CEPHardwareMonitor	_DynamicDatapoints	0
+
+ElementName	TypeName	_original.._value	_original.._status
+_dt_CEPHardwareMonitor.Leaf	_DynamicDatapoints	"_mp_CEPHardwareMonitor.logMsg:_archive"	0x101
+_dt_CEPHardwareMonitor.DynamicAttribute	_DynamicDatapoints	"_da_none"	0x101
+
+StampSec	StampMSec	ElementName	TypeName	DetailNr	_archive.._type	_archive.._archive	_archive.._class
+0	0	_mp_CEPHardwareMonitor.process.logMsg	CEPHardwareMonitor		45	1
+0	0	_mp_CEPHardwareMonitor.process.logMsg	CEPHardwareMonitor	1	15		_ValueArchive_2
+
+# Modify the default value for the leaf-field
+ElementName	TypeName	_original.._value	_original.._status
+_mp_CEPHardwareMonitor.status.leaf	CEPHardwareMonitor	1	0x101
+
+DpName	TypeName	ID
+LOFAR_PermSW_HardwareMonitor	CEPHardwareMonitor	2213
+
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitor.conf b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitor.conf
new file mode 100644
index 00000000000..0eeac979916
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitor.conf
@@ -0,0 +1,12 @@
+#
+# CEPHardwareMonitor.conf
+#
+WatchBlueGene	 =	1
+WatchCluster	 =	1
+closingDelay	 =	2.0
+BlueGeneFrontEnd = bgfen1
+
+ClusterNameMask  = locus%03d
+ClusterNetwork   = cep2.lofar
+FirstClusterNode = 1
+LastClusterNode  = 100
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc
new file mode 100644
index 00000000000..64b50993a52
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc
@@ -0,0 +1,84 @@
+//#  HardwareMonitor.cc: Main entry for the HardwareMonitor.
+//#
+//#  Copyright (C) 2011
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: HardwareMonitorMain.cc 14858 2010-01-22 09:14:52Z loose $
+//#
+#include <lofar_config.h>
+#include <Common/LofarLogger.h>
+#include <Common/Version.h>
+
+#include <Common/ParameterSet.h>
+#include "BlueGeneMonitor.h"
+#include "ClusterMonitor.h"
+#include <CEPCU/Package__Version.h>
+
+using namespace LOFAR;
+using namespace LOFAR::GCF;
+using namespace LOFAR::GCF::TM;
+using namespace LOFAR::CEPCU;
+
+int main(int argc, char* argv[])
+{
+	// args: cntlrname, parentHost, parentService
+	GCFScheduler::instance()->init(argc, argv, "CEPHardwareMonitor");
+
+	LOG_INFO("MACProcessScope: LOFAR_PermSW_HardwareMonitor");
+	LOG_INFO(Version::getInfo<CEPCUVersion>("CEPHardwareMonitor"));
+
+	// Create tasks and call initial routines
+	BlueGeneMonitor*	bgm(0);
+	ClusterMonitor*		ctm(0);
+	
+	// monitor BLUEGENE?
+	if (globalParameterSet()->getUint32("WatchBlueGene",0)) {
+		bgm = new BlueGeneMonitor("BlueGeneMonitor");
+		bgm->start();
+		LOG_INFO("Monitoring the BlueGene");
+	}
+
+	// monitor CEP2Cluster?
+	if (globalParameterSet()->getUint32("WatchCluster",0)) {
+		ctm = new ClusterMonitor("ClusterMonitor");
+		ctm->start();
+		LOG_INFO("Monitoring the Cluster");
+	}
+
+	// sanity check
+	if (!bgm && !ctm) {
+		LOG_FATAL_STR("Non of the monitortask (WatchBlueGene, WatchCluster) "
+						"was switched on in the configfile, terminating program");
+		return (0);
+	}
+
+	// ok, we have something to do, do it.
+	GCFScheduler::instance()->setDelayedQuit(true);	// we need a clean shutdown
+	GCFScheduler::instance()->run();				// until stop was called
+
+	if (bgm) {
+		bgm->quit();		// let task quit nicely
+	}
+	if (ctm) {
+		ctm->quit();		// let task quit nicely
+	}
+	double	postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5);
+	GCFScheduler::instance()->run(postRunTime);	// let processes die.
+
+	return (0);
+}
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt
new file mode 100644
index 00000000000..95605102d92
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CMakeLists.txt
@@ -0,0 +1,14 @@
+# $Id: CMakeLists.txt 18492 2011-07-14 21:07:51Z loose $
+
+lofar_add_bin_program(CEPHardwareMonitor 
+  CEPHardwareMonitorMain.cc
+  BlueGeneMonitor.cc
+  ClusterMonitor.cc)
+
+install(FILES
+  CEPHardwareMonitor.conf
+  DESTINATION etc)
+
+install(PROGRAMS
+  zabbix_get
+  DESTINATION sbin)
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.cc b/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.cc
new file mode 100644
index 00000000000..20fffaa8bea
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.cc
@@ -0,0 +1,363 @@
+//#  ClusterMonitor.cc: Monitors if the BGP hardware is available
+//#
+//#  Copyright (C) 2011
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: ClusterMonitor.cc 10505 2007-09-07 17:14:57Z overeem $
+#include <lofar_config.h>
+#include <Common/LofarLogger.h>
+#include <Common/LofarConstants.h>
+#include <Common/LofarLocators.h>
+#include <Common/lofar_vector.h>
+#include <Common/StringUtil.h>
+#include <Common/ParameterSet.h>
+
+#include <GCF/PVSS/GCF_PVTypes.h>
+#include <GCF/PVSS/PVSSinfo.h>
+#include <MACIO/MACServiceInfo.h>
+#include <APL/APLCommon/ControllerDefines.h>
+#include <APL/RTDBCommon/RTDButilities.h>
+#include <GCF/RTDB/DP_Protocol.ph>
+//#include <APL/APLCommon/StationInfo.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>	// usleep
+#include <netdb.h>	// gethostbyname
+
+#include "ClusterMonitor.h"
+#include "PVSSDatapointDefs.h"
+
+#define	MAX_CLUSTER_NODE	100
+#define MAX2(a,b)	((a) > (b)) ? (a) : (b)
+
+namespace LOFAR {
+	using namespace APLCommon;
+	using namespace APL::RTDBCommon;
+	using namespace GCF::TM;
+	using namespace GCF::PVSS;
+	using namespace GCF::RTDB;
+	namespace CEPCU {
+	
+//
+// ClusterMonitor()
+//
+ClusterMonitor::ClusterMonitor(const string&	cntlrName) :
+	GCFTask 			((State)&ClusterMonitor::initial_state,cntlrName),
+	itsOwnPropertySet	(0),
+	itsTimerPort		(0),
+	itsDPservice		(0),
+	itsPollInterval		(60)
+{
+	LOG_TRACE_OBJ_STR (cntlrName << " construction");
+
+	// need port for timers.
+	itsTimerPort = new GCFTimerPort(*this, "ClusterTimerPort");
+
+	itsDPservice = new DPservice(this);
+	ASSERTSTR(itsDPservice, "Can't allocate DPservice");
+
+	itsClusterNameMask  = globalParameterSet()->getString("ClusterNameMask", "locus%03d");
+	itsClusterNetwork   = globalParameterSet()->getString("ClusterNetwork",  "cep2.lofar");
+	itsFirstClusterNode = globalParameterSet()->getUint("FirstClusterNode", 1);
+	itsLastClusterNode  = globalParameterSet()->getUint("LastClusterNode", MAX_CLUSTER_NODE);
+	ASSERTSTR(!itsClusterNameMask.empty(), "NameMask of Cluster not specified");
+	ASSERTSTR(!itsClusterNetwork.empty(),  "Network name of Cluster not specified");
+	ASSERTSTR(itsLastClusterNode <= MAX_CLUSTER_NODE, "Supporting only " << MAX_CLUSTER_NODE << " nodes");
+
+	itsLastState.resize(itsLastClusterNode+1, -1);
+}
+
+
+//
+// ~ClusterMonitor()
+//
+ClusterMonitor::~ClusterMonitor()
+{
+	LOG_TRACE_OBJ_STR (getName() << " destruction");
+
+	if (itsDPservice)	delete itsDPservice;
+
+	if (itsTimerPort)	delete itsTimerPort;
+}
+
+
+//
+// initial_state(event, port)
+//
+// Setup connection with PVSS
+//
+GCFEvent::TResult ClusterMonitor::initial_state(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	LOG_DEBUG_STR ("initial:" << eventName(event) << "@" << port.getName());
+
+	switch (event.signal) {
+    case F_INIT:
+   		break;
+
+	case F_ENTRY: {
+		// Get access to my own propertyset.
+		LOG_DEBUG_STR ("Activating PropertySet " << PSN_CEP_HARDWARE_MONITOR);
+		itsTimerPort->setTimer(2.0);
+		itsOwnPropertySet = new RTDBPropertySet(PSN_CEP_HARDWARE_MONITOR,
+												PST_CEP_HARDWARE_MONITOR,
+												PSAT_WO,
+												this);
+
+		}
+		break;
+
+	case DP_CREATED: {
+		// NOTE: this function may be called DURING the construction of the PropertySet.
+		// Always exit this event in a way that GCF can end the construction.
+		DPCreatedEvent		dpEvent(event);
+		LOG_DEBUG_STR("Result of creating " << dpEvent.DPname << " = " << dpEvent.result);
+		itsTimerPort->cancelAllTimers();
+		itsTimerPort->setTimer(0.0);
+		}
+		break;
+
+	case F_TIMER: {
+		// PropertySet must exist by now
+		ASSERTSTR(itsOwnPropertySet, "Could not create the PVSS datapoint " << PSN_CEP_HARDWARE_MONITOR);
+
+		// update PVSS.
+		LOG_TRACE_FLOW ("Updateing state to PVSS");
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION, GCFPVString("Cluster:initialising"));
+		itsOwnPropertySet->setValue(PN_CHM_CLUSTER_CONNECTED,  GCFPVBool(false));
+
+		TRAN(ClusterMonitor::getClusterState);		// do inital check
+	}
+	break;
+
+	case DP_SET:
+		break;
+
+	case F_QUIT:
+		TRAN (ClusterMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("initial, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+
+
+//
+// getClusterState(event, port)
+//
+// Ask the information of the Cluster
+//
+GCFEvent::TResult ClusterMonitor::getClusterState(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	if (eventName(event) != "DP_SET") {
+		LOG_DEBUG_STR ("getClusterState:" << eventName(event) << "@" << port.getName());
+	}
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("Cluster:requesting Cluster info"));
+		itsTimerPort->setTimer(15.0);		// in case the answer never comes
+
+		string	command(formatString("for i in `echo \".\" | awk '{ for (i=%d; i<=%d;i++) { printf \"%s.%s\\n\",i } }'`; do ../sbin/zabbix_get -s $i -k system.hostname ; done", 
+				itsFirstClusterNode, itsLastClusterNode, itsClusterNameMask.c_str(), itsClusterNetwork.c_str()));
+		FILE*	pipe(popen(command.c_str(), "r"));
+		if (!pipe) {
+			LOG_ERROR_STR ("Cluster:Unable to read pipe: " << command);
+			TRAN(ClusterMonitor::waitForNextCycle);
+			break;
+		}
+
+		int		lineLength((itsLastClusterNode-itsFirstClusterNode)*256);
+		vector<char>	line(lineLength);
+		line[0] = '\0';
+		size_t	btsRead = fread(&line[0], 1, lineLength-1, pipe);
+		if (!btsRead) {
+			itsOwnPropertySet->setValue(PN_FSM_ERROR,GCFPVString("Cluster:pipe failure"));
+			LOG_WARN_STR("Could not determine the state of the clusternodes!");
+		}
+		else {
+			line[btsRead] = '\0';
+			_analyzeClusterResult(line, btsRead);
+		}
+		fclose(pipe);
+		TRAN(ClusterMonitor::waitForNextCycle);				// go to next state.
+		break;
+	}
+
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	case F_QUIT:
+		TRAN (ClusterMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("getClusterState, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+
+//
+// _analyzeClusterResult(result, length);
+//
+void ClusterMonitor::_analyzeClusterResult(vector<char>	result, size_t	length)
+{
+	vector<bool> 	online(itsLastClusterNode+1, false);
+	size_t	end(length);
+	size_t	begin(end);
+	while (begin && end) {
+		while (end && (result[end]=='\0' || result[end]=='\n')) {
+			result[end--]='\0';
+		}
+		begin = end;
+		while (begin && result[begin-1]!='\n') {
+			begin--;
+		}
+
+		// possible answers:
+		// locus999
+		// zabbix_get [4624]: Get value error: cannot connect to [[locus002.cep2.lofar]:10050]: [113] No route to host
+		int		nodeNr = -1;
+		if (sscanf(&result[begin], itsClusterNameMask.c_str(), &nodeNr) != 1) {
+			LOG_INFO_STR("Received error: " << (char*)&result[begin]);
+		}
+		else if (nodeNr < itsFirstClusterNode || nodeNr > itsLastClusterNode) {
+			LOG_WARN_STR("Received info about node " << nodeNr << " which is not in my monitor range!");
+		}
+		else {
+			online[nodeNr] = true;
+		}
+		end = begin - 1;
+	}
+
+	// Finally update the statusfields of all the nodes
+	for (int i = itsFirstClusterNode; i <= itsLastClusterNode; i++) {
+		int		newState = online[i] ? RTDB_OBJ_STATE_BROKEN : RTDB_OBJ_STATE_OPERATIONAL;
+		if (itsLastState[i] != newState) {
+			LOG_INFO_STR("Node " << _clusterNodeName(i) << ": " << (online[i] ? "ON" : "OFF"));
+			itsLastState[i] = newState;
+		}
+	}
+}
+
+//
+// _clusterNodeName(nodeNr)
+//
+string ClusterMonitor::_clusterNodeName(int nodeNr)
+{
+	// NOTE: THIS IS INSIDE INFORMATION ABOUT THE SETUP OF THE CLUSTER!!!
+	int     rackMax[] = {12, 24, 36, 48, 52, 64, 76, 88, 100 };
+	uint	rack;
+	for (rack = 0; rack < sizeof(rackMax)-1; rack++) {
+		if (nodeNr <= rackMax[rack])
+			break;
+	}
+
+	string	locusNodeMask (createPropertySetName(PSN_LOCUS_NODE, ""));
+	return (formatString(locusNodeMask.c_str(), rack, nodeNr));
+}
+
+
+//
+// waitForNextCycle(event, port)
+//
+// Wait for our next cycle.
+//
+GCFEvent::TResult ClusterMonitor::waitForNextCycle(GCFEvent& event, 
+													GCFPortInterface& port)
+{
+	if (eventName(event) != "DP_SET") {
+		LOG_DEBUG_STR ("waitForNextCycle:" << eventName(event) << "@" << port.getName());	
+	}
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		itsOwnPropertySet->setValue(PN_FSM_CURRENT_ACTION,GCFPVString("Cluster:wait for next cycle"));
+		int		waitTime = itsPollInterval - (time(0) % itsPollInterval);
+		if (waitTime == 0) {
+			waitTime = itsPollInterval;
+		}
+		itsTimerPort->cancelAllTimers();
+		itsTimerPort->setTimer(double(waitTime));
+		LOG_INFO_STR("Cluster:Waiting " << waitTime << " seconds for next cycle");
+	}
+	break;
+
+	case F_TIMER: {
+		itsOwnPropertySet->setValue(string(PN_FSM_ERROR),GCFPVString(""));
+		TRAN(ClusterMonitor::getClusterState);
+	}
+	break;
+
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	case F_QUIT:
+		TRAN (ClusterMonitor::finish_state);
+		break;
+
+	default:
+		LOG_DEBUG_STR ("waitForNextCycle, DEFAULT: " << eventName(event));
+		break;
+	}    
+
+	return (GCFEvent::HANDLED);
+}
+
+
+//
+// finish_state(event, port)
+//
+// Write controller state to PVSS
+//
+GCFEvent::TResult ClusterMonitor::finish_state(GCFEvent& event, GCFPortInterface& port)
+{
+	LOG_DEBUG_STR ("finish_state:" << eventName(event) << "@" << port.getName());
+
+	switch (event.signal) {
+	case F_ENTRY: {
+		// update PVSS
+		itsOwnPropertySet->setValue(string(PN_FSM_CURRENT_ACTION),GCFPVString("Cluster:finished"));
+		break;
+	}
+  
+	case DP_SET:
+	case F_EXIT:
+		break;
+
+	default:
+		LOG_DEBUG("finishing_state, DEFAULT");
+		break;
+	}    
+	return (GCFEvent::HANDLED);
+}
+
+
+}; // CEPCU
+}; // LOFAR
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h b/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h
new file mode 100644
index 00000000000..f4f91f07af9
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/ClusterMonitor.h
@@ -0,0 +1,89 @@
+//#  ClusterMonitor.h: Monitors the Cluster hardware.
+//#
+//#  Copyright (C) 2006
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: ClusterMonitor.h 10461 2007-08-23 22:44:03Z overeem $
+
+#ifndef CEPCU_CLUSTER_MONITOR_H
+#define CEPCU_CLUSTER_MONITOR_H
+
+//# Common Includes
+#include <blitz/array.h>
+#include <Common/lofar_string.h>
+#include <Common/lofar_vector.h>
+#include <Common/LofarConstants.h>
+
+//# GCF Includes
+#include <GCF/TM/GCF_Control.h>
+#include <GCF/RTDB/RTDB_PropertySet.h>
+#include <GCF/RTDB/DPservice.h>
+
+// forward declaration
+
+namespace LOFAR {
+	namespace CEPCU {
+
+using	MACIO::GCFEvent;
+using	GCF::TM::GCFPortInterface;
+using	GCF::TM::GCFTimerPort;
+using	GCF::TM::GCFTCPPort;
+using	GCF::TM::GCFTask;
+using	GCF::RTDB::RTDBPropertySet;
+using	GCF::RTDB::DPservice;
+
+
+class ClusterMonitor : public GCFTask
+{
+public:
+	explicit ClusterMonitor(const string& cntlrName);
+	~ClusterMonitor();
+
+private:
+	// During the initial state all connections with the other programs are made.
+   	GCFEvent::TResult initial_state    (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult getClusterState (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult waitForNextCycle (GCFEvent& e, GCFPortInterface& p);
+   	GCFEvent::TResult finish_state	   (GCFEvent& e, GCFPortInterface& p);
+
+	void _analyzeClusterResult(vector<char>	result, size_t	length);
+	string _clusterNodeName(int nodeNr);
+
+	// avoid defaultconstruction and copying
+	ClusterMonitor();
+	ClusterMonitor(const ClusterMonitor&);
+   	ClusterMonitor& operator=(const ClusterMonitor&);
+
+	// Data members
+	RTDBPropertySet*			itsOwnPropertySet;
+
+	GCFTimerPort*				itsTimerPort;
+	DPservice*					itsDPservice;
+
+	string						itsClusterNameMask;
+	string						itsClusterNetwork;
+	int							itsFirstClusterNode;
+	int							itsLastClusterNode;
+
+	uint32						itsPollInterval;
+	vector<int>					itsLastState;
+};
+
+  };//CEPCU
+};//LOFAR
+#endif
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h b/MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h
new file mode 100644
index 00000000000..7eb0c5978bf
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/PVSSDatapointDefs.h
@@ -0,0 +1,393 @@
+// This file was generated by create_db_files v2.0 on Fri Dec  9 13:04:01 UTC 2011
+
+#ifndef LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H
+#define LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H
+// process
+#define	PN_FSM_PROCESSID	"process.processID"
+#define	PN_FSM_START_TIME	"process.startTime"
+#define	PN_FSM_STOP_TIME	"process.stopTime"
+#define	PN_FSM_LOG_MSG	"process.logMsg"
+#define	PN_FSM_ERROR	"process.error"
+#define	PN_FSM_CURRENT_ACTION	"process.currentAction"
+// object
+#define	PN_OBJ_STATE	"object.state"
+#define	PN_OBJ_CHILD_STATE	"object.childState"
+#define	PN_OBJ_MESSAGE	"object.message"
+#define	PN_OBJ_LEAF	"object.leaf"
+
+// Station
+#define PSN_STATION	"LOFAR_PIC_@ring@_@station@"
+#define PST_STATION	"Station"
+#define PN_STS_POWER48_ON	"power48On"
+#define PN_STS_POWER220_ON	"power220On"
+
+// Station
+#define PSN_STATION	"LOFAR_PermSW_@ring@_@station@"
+#define PST_STATION	"Station"
+#define PN_STS_POWER48_ON	"power48On"
+#define PN_STS_POWER220_ON	"power220On"
+
+// MACScheduler
+#define PSN_MAC_SCHEDULER	"LOFAR_PermSW_MACScheduler"
+#define PST_MAC_SCHEDULER	"MACScheduler"
+#define PN_MS_PLANNED_OBSERVATIONS	"plannedObservations"
+#define PN_MS_ACTIVE_OBSERVATIONS	"activeObservations"
+#define PN_MS_FINISHED_OBSERVATIONS	"finishedObservations"
+#define PN_MS_OTDB_CONNECTED	"OTDB.connected"
+#define PN_MS_OTDB_LAST_POLL	"OTDB.lastPoll"
+#define PN_MS_OTDB_POLLINTERVAL	"OTDB.pollinterval"
+
+// Observation
+#define PSN_OBSERVATION	"LOFAR_ObsSW_@observation@"
+#define PST_OBSERVATION	"Observation"
+#define	PN_OBS_CLAIM_CLAIM_DATE	"claim.claimDate"
+#define	PN_OBS_CLAIM_NAME	"claim.name"
+#define PN_OBS_CLAIM_PERIOD	"claimPeriod"
+#define PN_OBS_PREPARE_PERIOD	"preparePeriod"
+#define PN_OBS_START_TIME	"startTime"
+#define PN_OBS_STOP_TIME	"stopTime"
+#define PN_OBS_BAND_FILTER	"bandFilter"
+#define PN_OBS_NYQUISTZONE	"nyquistzone"
+#define PN_OBS_ANTENNA_ARRAY	"antennaArray"
+#define PN_OBS_RECEIVER_LIST	"receiverList"
+#define PN_OBS_SAMPLE_CLOCK	"sampleClock"
+#define PN_OBS_RUN_STATE	"runState"
+#define PN_OBS_MEASUREMENT_SET	"measurementSet"
+#define PN_OBS_STATION_LIST	"stationList"
+#define PN_OBS_INPUT_NODE_LIST	"inputNodeList"
+#define PN_OBS_BGL_NODE_LIST	"BGLNodeList"
+#define PN_OBS_STORAGE_NODE_LIST	"storageNodeList"
+#define PN_OBS_BEAMS_ANGLE1	"Beams.angle1"
+#define PN_OBS_BEAMS_ANGLE2	"Beams.angle2"
+#define PN_OBS_BEAMS_DIRECTION_TYPE	"Beams.directionType"
+#define PN_OBS_BEAMS_BEAMLET_LIST	"Beams.beamletList"
+#define PN_OBS_BEAMS_SUBBAND_LIST	"Beams.subbandList"
+
+// ObservationControl
+#define PSN_OBSERVATION_CONTROL	"LOFAR_ObsSW_@observation@_ObservationControl"
+#define PST_OBSERVATION_CONTROL	"ObservationControl"
+
+// InputBuffer
+#define PSN_INPUT_BUFFER	"LOFAR_PermSW_@psionode@_InputBuffer"
+#define PST_INPUT_BUFFER	"InputBuffer"
+#define PN_IPB_STATION_NAME	"stationName"
+#define PN_IPB_OBSERVATION_NAME	"observationName"
+#define PN_IPB_STREAM0_BLOCKS_IN	"stream0.blocksIn"
+#define PN_IPB_STREAM0_PERC_BAD	"stream0.percBad"
+#define PN_IPB_STREAM0_REJECTED	"stream0.rejected"
+#define PN_IPB_STREAM1_BLOCKS_IN	"stream1.blocksIn"
+#define PN_IPB_STREAM1_PERC_BAD	"stream1.percBad"
+#define PN_IPB_STREAM1_REJECTED	"stream1.rejected"
+#define PN_IPB_STREAM2_BLOCKS_IN	"stream2.blocksIn"
+#define PN_IPB_STREAM2_PERC_BAD	"stream2.percBad"
+#define PN_IPB_STREAM2_REJECTED	"stream2.rejected"
+#define PN_IPB_STREAM3_BLOCKS_IN	"stream3.blocksIn"
+#define PN_IPB_STREAM3_PERC_BAD	"stream3.percBad"
+#define PN_IPB_STREAM3_REJECTED	"stream3.rejected"
+#define PN_IPB_LATE	"late"
+#define PN_IPB_IO_TIME	"IOTime"
+
+// Adder
+#define PSN_ADDER	"LOFAR_ObsSW_@osionode@_@adder@"
+#define PST_ADDER	"Adder"
+#define PN_ADD_DROPPING	"dropping"
+#define PN_ADD_DROPPED	"dropped"
+#define PN_ADD_DATA_PRODUCT_TYPE	"dataProductType"
+#define PN_ADD_FILE_NAME	"fileName"
+#define PN_ADD_LOCUS_NODE	"locusNode"
+#define PN_ADD_DIRECTORY	"directory"
+#define PN_ADD_OBSERVATION_NAME	"observationName"
+
+// Writer
+#define PSN_WRITER	"LOFAR_ObsSW_@oslocusnode@_@writer@"
+#define PST_WRITER	"Writer"
+#define PN_WTR_TIME	"time"
+#define PN_WTR_COUNT	"count"
+#define PN_WTR_DROPPED	"dropped"
+#define PN_WTR_FILE_NAME	"fileName"
+#define PN_WTR_DATA_RATE	"dataRate"
+#define PN_WTR_DATA_PRODUKT_TYPE	"dataProduktType"
+#define PN_WTR_OBSERVATION_NAME	"observationName"
+
+// IONode
+#define PSN_IO_NODE	"LOFAR_PIC_BGP_@midplane@_@ionode@"
+#define PST_IO_NODE	"IONode"
+#define PN_ION_STATION0	"station0"
+#define PN_ION_IP0	"IP0"
+#define PN_ION_MAC0	"MAC0"
+#define PN_ION_STATION1	"station1"
+#define PN_ION_IP1	"IP1"
+#define PN_ION_MAC1	"MAC1"
+#define PN_ION_USE2ND_STATION	"use2ndStation"
+#define PN_ION_USED_STATION	"usedStation"
+#define PN_ION_USEDIP	"usedIP"
+#define PN_ION_USEDMAC	"usedMAC"
+
+// LocusNode
+#define PSN_LOCUS_NODE	"LOFAR_PIC_@osrack@_@locusnode@"
+#define PST_LOCUS_NODE	"LocusNode"
+#define PN_LCN_FREE	"free"
+#define PN_LCN_TOTAL	"total"
+#define PN_LCN_CLAIMED	"claimed"
+
+// CEPHardwareMonitor
+#define PSN_CEP_HARDWARE_MONITOR	"LOFAR_PermSW_CEPHardwareMonitor"
+#define PST_CEP_HARDWARE_MONITOR	"CEPHardwareMonitor"
+#define PN_CHM_BGP_CONNECTED	"BGP.connected"
+#define PN_CHM_CLUSTER_CONNECTED	"Cluster.connected"
+
+// Cabinet
+#define PSN_CABINET	"LOFAR_PIC_@cabinet@"
+#define PST_CABINET	"Cabinet"
+#define PN_CAB_FRONT_DOOR_OPEN	"frontDoorOpen"
+#define PN_CAB_FRONT_FAN_INNER	"frontFanInner"
+#define PN_CAB_FRONT_FAN_OUTER	"frontFanOuter"
+#define PN_CAB_FRONT_AIRFLOW	"frontAirflow"
+#define PN_CAB_BACK_DOOR_OPEN	"backDoorOpen"
+#define PN_CAB_BACK_FAN_INNER	"backFanInner"
+#define PN_CAB_BACK_FAN_OUTER	"backFanOuter"
+#define PN_CAB_BACK_AIRFLOW	"backAirflow"
+#define PN_CAB_TEMP_ALARM	"tempAlarm"
+#define PN_CAB_HUMIDITY_ALARM	"humidityAlarm"
+#define PN_CAB_TEMPERATURE	"temperature"
+#define PN_CAB_TEMP_MIN	"tempMin"
+#define PN_CAB_TEMP_MAX	"tempMax"
+#define PN_CAB_TEMP_MAX_MAX	"tempMaxMax"
+#define PN_CAB_HUMIDITY	"humidity"
+#define PN_CAB_HUMIDITY_MAX	"humidityMax"
+#define PN_CAB_HUMIDITY_MAX_MAX	"humidityMaxMax"
+#define PN_CAB_CONTROL_MODE	"controlMode"
+#define PN_CAB_TEMPERATURE_SENSOR	"temperatureSensor"
+#define PN_CAB_HUMIDITY_CONTROL	"humidityControl"
+#define PN_CAB_DOOR_CONTROL	"doorControl"
+
+// SubRack
+#define PSN_SUB_RACK	"LOFAR_PIC_@cabinet@_@subrack@"
+#define PST_SUB_RACK	"SubRack"
+#define	PN_SRCK_SPU_STATUS_STATE	"SPU.status.state"
+#define	PN_SRCK_SPU_STATUS_CHILD_STATE	"SPU.status.childState"
+#define	PN_SRCK_SPU_STATUS_MESSAGE	"SPU.status.message"
+#define	PN_SRCK_SPU_STATUS_LEAF	"SPU.status.leaf"
+#define PN_SRCK_SPU__VHBA	"SPU.Vhba"
+#define PN_SRCK_SPU__VLBA	"SPU.Vlba"
+#define PN_SRCK_SPU__VDIG	"SPU.Vdig"
+#define PN_SRCK_SPU_TEMPERATURE	"SPU.temperature"
+#define	PN_SRCK_CLOCK_BOARD_STATUS_STATE	"clockBoard.status.state"
+#define	PN_SRCK_CLOCK_BOARD_STATUS_CHILD_STATE	"clockBoard.status.childState"
+#define	PN_SRCK_CLOCK_BOARD_STATUS_MESSAGE	"clockBoard.status.message"
+#define	PN_SRCK_CLOCK_BOARD_STATUS_LEAF	"clockBoard.status.leaf"
+#define PN_SRCK_CLOCK_BOARD__VFSP	"clockBoard.Vfsp"
+#define PN_SRCK_CLOCK_BOARD__VCLOCK	"clockBoard.Vclock"
+#define PN_SRCK_CLOCK_BOARD_VERSION	"clockBoard.version"
+#define PN_SRCK_CLOCK_BOARD_FREQ	"clockBoard.freq"
+#define PN_SRCK_CLOCK_BOARD_LOCK160	"clockBoard.lock160"
+#define PN_SRCK_CLOCK_BOARD_LOCK200	"clockBoard.lock200"
+#define PN_SRCK_CLOCK_BOARD_TEMPERATURE	"clockBoard.temperature"
+
+// RSPBoard
+#define PSN_RSP_BOARD	"LOFAR_PIC_@cabinet@_@subrack@_@RSPBoard@"
+#define PST_RSP_BOARD	"RSPBoard"
+#define PN_RSP_VOLTAGE12	"voltage12"
+#define PN_RSP_VOLTAGE25	"voltage25"
+#define PN_RSP_VOLTAGE33	"voltage33"
+#define PN_RSP_VERSION	"version"
+#define PN_RSP_ALERT	"alert"
+#define PN_RSP_SPLITTER_ON	"splitterOn"
+#define	PN_RSP__ETHERNET_STATUS_STATE	"Ethernet.status.state"
+#define	PN_RSP__ETHERNET_STATUS_CHILD_STATE	"Ethernet.status.childState"
+#define	PN_RSP__ETHERNET_STATUS_MESSAGE	"Ethernet.status.message"
+#define	PN_RSP__ETHERNET_STATUS_LEAF	"Ethernet.status.leaf"
+#define PN_RSP_ETHERNET_PACKETS_RECEIVED	"Ethernet.packetsReceived"
+#define PN_RSP_ETHERNET_PACKETS_ERROR	"Ethernet.packetsError"
+#define PN_RSP_ETHERNET_LAST_ERROR	"Ethernet.lastError"
+#define PN_RSP_MEP_SEQNR	"MEP.seqnr"
+#define PN_RSP_MEP_ERROR	"MEP.error"
+#define	PN_RSP_BP_STATUS_STATE	"BP.status.state"
+#define	PN_RSP_BP_STATUS_CHILD_STATE	"BP.status.childState"
+#define	PN_RSP_BP_STATUS_MESSAGE	"BP.status.message"
+#define	PN_RSP_BP_STATUS_LEAF	"BP.status.leaf"
+#define PN_RSP_BP_TEMPERATURE	"BP.temperature"
+#define PN_RSP_BP_VERSION	"BP.version"
+#define	PN_RSP_AP0_STATUS_STATE	"AP0.status.state"
+#define	PN_RSP_AP0_STATUS_CHILD_STATE	"AP0.status.childState"
+#define	PN_RSP_AP0_STATUS_MESSAGE	"AP0.status.message"
+#define	PN_RSP_AP0_STATUS_LEAF	"AP0.status.leaf"
+#define PN_RSP_AP0_TEMPERATURE	"AP0.temperature"
+#define PN_RSP_AP0_VERSION	"AP0.version"
+#define PN_RSP_AP0_SYNC_SAMPLE_COUNT	"AP0.SYNC.sampleCount"
+#define PN_RSP_AP0_SYNC_SYNC_COUNT	"AP0.SYNC.syncCount"
+#define PN_RSP_AP0_SYNC_ERROR_COUNT	"AP0.SYNC.errorCount"
+#define	PN_RSP_AP1_STATUS_STATE	"AP1.status.state"
+#define	PN_RSP_AP1_STATUS_CHILD_STATE	"AP1.status.childState"
+#define	PN_RSP_AP1_STATUS_MESSAGE	"AP1.status.message"
+#define	PN_RSP_AP1_STATUS_LEAF	"AP1.status.leaf"
+#define PN_RSP_AP1_TEMPERATURE	"AP1.temperature"
+#define PN_RSP_AP1_VERSION	"AP1.version"
+#define PN_RSP_AP1_SYNC_SAMPLE_COUNT	"AP1.SYNC.sampleCount"
+#define PN_RSP_AP1_SYNC_SYNC_COUNT	"AP1.SYNC.syncCount"
+#define PN_RSP_AP1_SYNC_ERROR_COUNT	"AP1.SYNC.errorCount"
+#define	PN_RSP_AP2_STATUS_STATE	"AP2.status.state"
+#define	PN_RSP_AP2_STATUS_CHILD_STATE	"AP2.status.childState"
+#define	PN_RSP_AP2_STATUS_MESSAGE	"AP2.status.message"
+#define	PN_RSP_AP2_STATUS_LEAF	"AP2.status.leaf"
+#define PN_RSP_AP2_TEMPERATURE	"AP2.temperature"
+#define PN_RSP_AP2_VERSION	"AP2.version"
+#define PN_RSP_AP2_SYNC_SAMPLE_COUNT	"AP2.SYNC.sampleCount"
+#define PN_RSP_AP2_SYNC_SYNC_COUNT	"AP2.SYNC.syncCount"
+#define PN_RSP_AP2_SYNC_ERROR_COUNT	"AP2.SYNC.errorCount"
+#define	PN_RSP_AP3_STATUS_STATE	"AP3.status.state"
+#define	PN_RSP_AP3_STATUS_CHILD_STATE	"AP3.status.childState"
+#define	PN_RSP_AP3_STATUS_MESSAGE	"AP3.status.message"
+#define	PN_RSP_AP3_STATUS_LEAF	"AP3.status.leaf"
+#define PN_RSP_AP3_TEMPERATURE	"AP3.temperature"
+#define PN_RSP_AP3_VERSION	"AP3.version"
+#define PN_RSP_AP3_SYNC_SAMPLE_COUNT	"AP3.SYNC.sampleCount"
+#define PN_RSP_AP3_SYNC_SYNC_COUNT	"AP3.SYNC.syncCount"
+#define PN_RSP_AP3_SYNC_ERROR_COUNT	"AP3.SYNC.errorCount"
+
+// RCU
+#define PSN_RCU	"LOFAR_PIC_@cabinet@_@subrack@_@RSPBoard@_@rcu@"
+#define PST_RCU	"RCU"
+#define PN_RCU_DELAY	"Delay"
+#define PN_RCU_INPUT_ENABLE	"InputEnable"
+#define PN_RCU_LBL_ENABLE	"LBLEnable"
+#define PN_RCU_LBH_ENABLE	"LBHEnable"
+#define PN_RCU_HBA_ENABLE	"HBAEnable"
+#define PN_RCU_BAND_SEL_LBA_HBA	"bandSelLbaHba"
+#define PN_RCU_HBA_FILTER_SEL	"HBAFilterSel"
+#define PN_RCU_VL_ENABLE	"VlEnable"
+#define PN_RCU_VH_ENABLE	"VhEnable"
+#define PN_RCU_VDD_VCC_ENABLE	"VddVccEnable"
+#define PN_RCU_BAND_SEL_LBL_LBH	"bandSelLblLbh"
+#define PN_RCU_LBA_FILTER_SEL	"LBAFilterSel"
+#define PN_RCU_ATTENUATION	"Attenuation"
+#define PN_RCU_NOF_OVERFLOW	"nofOverflow"
+#define PN_RCU_ADC_STATISTICS_OVERFLOW	"ADCStatistics.overflow"
+#define PN_RCU_TBB_ERROR	"TBB.error"
+#define PN_RCU_TBB_MODE	"TBB.mode"
+#define PN_RCU_TBB_START_ADDR	"TBB.startAddr"
+#define PN_RCU_TBB_BUF_SIZE	"TBB.bufSize"
+#define PN_RCU_TRIGGER_STARTLEVEL	"Trigger.startlevel"
+#define PN_RCU_TRIGGER_BASELEVEL	"Trigger.baselevel"
+#define PN_RCU_TRIGGER_STOPLEVEL	"Trigger.stoplevel"
+#define PN_RCU_TRIGGER_FILTER	"Trigger.filter"
+#define PN_RCU_TRIGGER_WINDOW	"Trigger.window"
+#define PN_RCU_TRIGGER_OPERATING_MODE	"Trigger.operatingMode"
+#define PN_RCU_TRIGGER_TRIGGER_MODE	"Trigger.triggerMode"
+#define PN_RCU_TRIGGER_FILTER0_COEFF0	"Trigger.filter0.coeff0"
+#define PN_RCU_TRIGGER_FILTER0_COEFF1	"Trigger.filter0.coeff1"
+#define PN_RCU_TRIGGER_FILTER0_COEFF2	"Trigger.filter0.coeff2"
+#define PN_RCU_TRIGGER_FILTER0_COEFF3	"Trigger.filter0.coeff3"
+#define PN_RCU_TRIGGER_FILTER1_COEFF0	"Trigger.filter1.coeff0"
+#define PN_RCU_TRIGGER_FILTER1_COEFF1	"Trigger.filter1.coeff1"
+#define PN_RCU_TRIGGER_FILTER1_COEFF2	"Trigger.filter1.coeff2"
+#define PN_RCU_TRIGGER_FILTER1_COEFF3	"Trigger.filter1.coeff3"
+
+// TBBoard
+#define PSN_TB_BOARD	"LOFAR_PIC_@cabinet@_@subrack@_@TBBoard@"
+#define PST_TB_BOARD	"TBBoard"
+#define PN_TBB_BOARDID	"boardID"
+#define PN_TBB_RAM_SIZE	"RAMSize"
+#define PN_TBB_SW_VERSION	"SWVersion"
+#define PN_TBB_BOARD_VERSION	"boardVersion"
+#define PN_TBB_TP_VERSION	"TPVersion"
+#define PN_TBB_MP0_VERSION	"MP0Version"
+#define PN_TBB_MP1_VERSION	"MP1Version"
+#define PN_TBB_MP2_VERSION	"MP2Version"
+#define PN_TBB_MP3_VERSION	"MP3Version"
+#define PN_TBB_VOLTAGE12	"voltage12"
+#define PN_TBB_VOLTAGE25	"voltage25"
+#define PN_TBB_VOLTAGE33	"voltage33"
+#define PN_TBB_TEMPPCB	"tempPCB"
+#define PN_TBB_TEMPTP	"tempTP"
+#define PN_TBB_TEMPMP0	"tempMP0"
+#define PN_TBB_TEMPMP1	"tempMP1"
+#define PN_TBB_TEMPMP2	"tempMP2"
+#define PN_TBB_TEMPMP3	"tempMP3"
+#define PN_TBB_IMAGE_INFO_VERSION	"imageInfo.version"
+#define PN_TBB_IMAGE_INFO_WRITE_DATE	"imageInfo.writeDate"
+#define PN_TBB_IMAGE_INFO_TP_FILE	"imageInfo.TPFile"
+#define PN_TBB_IMAGE_INFO_MP_FILE	"imageInfo.MPFile"
+
+// LBAAntenna
+#define PSN_LBA_ANTENNA	"LOFAR_PIC_@lbaantenna@"
+#define PST_LBA_ANTENNA	"LBAAntenna"
+
+// HBAAntenna
+#define PSN_HBA_ANTENNA	"LOFAR_PIC_@hbaantenna@"
+#define PST_HBA_ANTENNA	"HBAAntenna"
+
+// LogProcessor
+#define PSN_LOG_PROCESSOR	"LOFAR_PermSW_Daemons_LogProcessor"
+#define PST_LOG_PROCESSOR	"LogProcessor"
+
+// SASGateway
+#define PSN_SAS_GATEWAY	"LOFAR_PermSW_Daemons_SASGateway"
+#define PST_SAS_GATEWAY	"SASGateway"
+
+// SoftwareMonitor
+#define PSN_SOFTWARE_MONITOR	"LOFAR_PermSW_SoftwareMonitor"
+#define PST_SOFTWARE_MONITOR	"SoftwareMonitor"
+
+// SHMInfoServer
+#define PSN_SHM_INFO_SERVER	"LOFAR_PermSW_SHMInfoServer"
+#define PST_SHM_INFO_SERVER	"SHMInfoServer"
+
+// StationControl
+#define PSN_STATION_CONTROL	"LOFAR_PermSW_StationControl"
+#define PST_STATION_CONTROL	"StationControl"
+#define PN_SC_ACTIVE_OBSERVATIONS	"activeObservations"
+
+// ClockControl
+#define PSN_CLOCK_CONTROL	"LOFAR_PermSW_ClockControl"
+#define PST_CLOCK_CONTROL	"ClockControl"
+#define PN_CLC_CONNECTED	"connected"
+#define PN_CLC_REQUESTED_CLOCK	"requestedClock"
+#define PN_CLC_ACTUAL_CLOCK	"actualClock"
+
+// StnObservation
+#define PSN_STN_OBSERVATION	"LOFAR_ObsSW_@observation@"
+#define PST_STN_OBSERVATION	"StnObservation"
+#define PN_OBS_NAME	"name"
+#define	PN_OBS_CLAIM_CLAIM_DATE	"claim.claimDate"
+#define	PN_OBS_CLAIM_NAME	"claim.name"
+#define PN_OBS_RECEIVER_BITMAP	"receiverBitmap"
+
+// BeamControl
+#define PSN_BEAM_CONTROL	"LOFAR_ObsSW_@observation@_BeamControl"
+#define PST_BEAM_CONTROL	"BeamControl"
+#define PN_BC_CONNECTED	"connected"
+#define PN_BC_SUB_ARRAY	"subArray"
+#define PN_BC_SUBBAND_LIST	"subbandList"
+#define PN_BC_BEAMLET_LIST	"beamletList"
+#define PN_BC_ANGLE1	"angle1"
+#define PN_BC_ANGLE2	"angle2"
+#define PN_BC_DIRECTION_TYPE	"directionType"
+#define PN_BC_BEAM_NAME	"beamName"
+
+// CalibrationControl
+#define PSN_CALIBRATION_CONTROL	"LOFAR_ObsSW_@observation@_CalibrationControl"
+#define PST_CALIBRATION_CONTROL	"CalibrationControl"
+#define PN_CC_CONNECTED	"connected"
+#define PN_CC_BEAM_NAMES	"beamNames"
+#define PN_CC_ANTENNA_ARRAY	"antennaArray"
+#define PN_CC_FILTER	"filter"
+#define PN_CC_NYQUISTZONE	"nyquistzone"
+#define PN_CC_RCUS	"rcus"
+
+// TBBControl
+#define PSN_TBB_CONTROL	"LOFAR_ObsSW_@observation@_TBBControl"
+#define PST_TBB_CONTROL	"TBBControl"
+#define PN_TBC_CONNECTED	"connected"
+#define PN_TBC_TRIGGER_RCU_NR	"trigger.rcuNr"
+#define PN_TBC_TRIGGER_SEQUENCE_NR	"trigger.sequenceNr"
+#define PN_TBC_TRIGGER_TIME	"trigger.time"
+#define PN_TBC_TRIGGER_SAMPLE_NR	"trigger.sampleNr"
+#define PN_TBC_TRIGGER_SUM	"trigger.sum"
+#define PN_TBC_TRIGGER_NR_SAMPLES	"trigger.nrSamples"
+#define PN_TBC_TRIGGER_PEAK_VALUE	"trigger.peakValue"
+#define PN_TBC_TRIGGER_FLAGS	"trigger.flags"
+#define PN_TBC_TRIGGER_TABLE	"trigger.table"
+#define PN_TBC_TRIGGER_MISSED	"trigger.missed"
+
+#endif
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/README b/MAC/APL/CEPCU/src/CEPHardwareMonitor/README
new file mode 100644
index 00000000000..546cc88ca7d
--- /dev/null
+++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/README
@@ -0,0 +1,10 @@
+HWMonitor via IPMI en bgpartstatus + swlevel.conf
+
+IPMI -> clustermnachine on/off
+
+bgpartstatus + swlevel.conf geeft status R00 (busy).
+Als busy -> OPER
+	else als swlevel OFF -> OFF
+	else ERROR
+
+
diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/zabbix_get b/MAC/APL/CEPCU/src/CEPHardwareMonitor/zabbix_get
new file mode 100755
index 0000000000000000000000000000000000000000..d2f8ef579f41c827c9eefc9aaac67f8a703b8a38
GIT binary patch
literal 172190
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
Ka#M@aQyBo=DIB8!

literal 0
HcmV?d00001

diff --git a/MAC/APL/CEPCU/src/CMakeLists.txt b/MAC/APL/CEPCU/src/CMakeLists.txt
index 7eb79319c10..fcc62f24f91 100644
--- a/MAC/APL/CEPCU/src/CMakeLists.txt
+++ b/MAC/APL/CEPCU/src/CMakeLists.txt
@@ -13,4 +13,5 @@ lofar_add_bin_program(versioncepcu versioncepcu.cc)
 add_subdirectory(OnlineControl)
 add_subdirectory(PythonControl)
 add_subdirectory(CEPlogProcessor)
+add_subdirectory(CEPHardwareMonitor)
 #  add_subdirectory(OfflineControl)
diff --git a/MAC/APL/CEPCU/src/OnlineControl/tPVSSMapping.cc b/MAC/APL/CEPCU/src/OnlineControl/tPVSSMapping.cc
new file mode 100644
index 00000000000..a1d6039e885
--- /dev/null
+++ b/MAC/APL/CEPCU/src/OnlineControl/tPVSSMapping.cc
@@ -0,0 +1,87 @@
+//#  tPVSSmapping.cc: test StreamToStrorage conversion to PVSS dps.
+//#
+//#  Copyright (C) 2006
+//#  ASTRON (Netherlands Foundation for Research in Astronomy)
+//#  P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
+//#
+//#  This program is free software; you can redistribute it and/or modify
+//#  it under the terms of the GNU General Public License as published by
+//#  the Free Software Foundation; either version 2 of the License, or
+//#  (at your option) any later version.
+//#
+//#  This program is distributed in the hope that it will be useful,
+//#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//#  GNU General Public License for more details.
+//#
+//#  You should have received a copy of the GNU General Public License
+//#  along with this program; if not, write to the Free Software
+//#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//#
+//#  $Id: OnlineControl.cc 18153 2011-05-31 23:03:25Z schoenmakers $
+#include <lofar_config.h>
+#include <Common/LofarLogger.h>
+
+#include <signal.h>
+#include <Common/StreamUtil.h>
+//#include <Common/lofar_vector.h>
+//#include <Common/lofar_string.h>
+#include <Common/ParameterSet.h>
+#include <Common/Exceptions.h>
+#include <Common/SystemUtil.h>
+#include <ApplCommon/StationInfo.h>
+#include <ApplCommon/Observation.h>
+
+using namespace std;
+using namespace LOFAR;
+	
+int main(int argc, char* argv[])
+{
+	if (argc < 2) {
+		cout << "Syntax: " << argv[0] << " parameterSet" << endl;
+		return (-1);
+	}
+
+	ParameterSet	thePS(argv[1]);
+	Observation		theObs(&thePS, false);
+	int	nrStreams = theObs.streamsToStorage.size();
+	cout << "_setupBGPmapping: " << nrStreams << " streams found." << endl;
+	cout << "ioNode , locusNodes , adders , writers , dataProducts, dataProductTypes" << endl;
+
+	uint	prevPset = (nrStreams ? theObs.streamsToStorage[0].sourcePset : -1);
+	vector<string>	locusVector;
+	vector<int>		adderVector;
+	vector<int>		writerVector;
+	vector<string>	DPVector;
+	vector<string>	DPtypeVector;
+	for (int i = 0; i < nrStreams; i++) {
+		if (theObs.streamsToStorage[i].sourcePset != prevPset) {	// other Pset? write current vector to the database.
+			stringstream	os;
+			writeVector(os, locusVector);
+			os << ",";
+			writeVector(os, adderVector);
+			os << ",";
+			writeVector(os, writerVector);
+			os << ",";
+			writeVector(os, DPVector);
+			os << ",";
+			writeVector(os, DPtypeVector);
+			cout << prevPset << "," << os.str() << endl;
+			// clear the collecting vectors
+			locusVector.clear();
+			adderVector.clear();
+			writerVector.clear();
+			DPVector.clear();
+			DPtypeVector.clear();
+			prevPset = theObs.streamsToStorage[i].sourcePset;
+		}
+		// extend vector with info
+		locusVector.push_back (theObs.streamsToStorage[i].destStorageNode);
+		adderVector.push_back (theObs.streamsToStorage[i].adderNr);
+		writerVector.push_back(theObs.streamsToStorage[i].writerNr);
+		DPVector.push_back    (theObs.streamsToStorage[i].filename);
+		DPtypeVector.push_back(theObs.streamsToStorage[i].dataProduct);
+	}
+	return (0);
+}
+
-- 
GitLab