From 2055c85a6c6ef1f62dfea94ab9d2a666e56c1e76 Mon Sep 17 00:00:00 2001
From: Ruud Overeem <overeem@astron.nl>
Date: Fri, 4 Dec 2009 15:28:47 +0000
Subject: [PATCH] Bug 1284: Added some code to be able the use the
 ObservationController with the ControllerMenu.

---
 .../ObservationControl/ObservationControl.cc   | 18 ++++++++++++++++++
 MAC/MACIO/src/GCF_Event.cc                     |  2 +-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
index c7b78220634..c296fa1993f 100644
--- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
+++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc
@@ -375,6 +375,24 @@ GCFEvent::TResult ObservationControl::active_state(GCFEvent& event, GCFPortInter
 		itsStopTimer = itsTimerPort->setTimer(0.0);	// expire immediately
 		break;
 	}
+	// ----- The next events from parent control are implemented for ControllerMenu ----
+	case CONTROL_CLAIM:
+		itsTimerPort->cancelTimer(itsClaimTimer);
+		itsClaimTimer = itsTimerPort->setTimer(0.0);
+		break;
+	case CONTROL_PREPARE:
+		itsTimerPort->cancelTimer(itsPrepareTimer);
+		itsPrepareTimer = itsTimerPort->setTimer(0.0);
+		break;
+	case CONTROL_RESUME:
+		itsTimerPort->cancelTimer(itsStartTimer);
+		itsStartTimer = itsTimerPort->setTimer(0.0);
+		break;
+	case CONTROL_SUSPEND:	// Note: SUSPEND, RELEASE and QUIT will result in QUIT.
+	case CONTROL_RELEASE:
+		itsTimerPort->cancelTimer(itsStopTimer);
+		itsStopTimer = itsTimerPort->setTimer(0.0);
+		break;
 
 	// -------------------- EVENT RECEIVED FROM CHILD CONTROL --------------------
 	case CONTROL_STARTED: {
diff --git a/MAC/MACIO/src/GCF_Event.cc b/MAC/MACIO/src/GCF_Event.cc
index 5c953c8013f..6d69cf53728 100644
--- a/MAC/MACIO/src/GCF_Event.cc
+++ b/MAC/MACIO/src/GCF_Event.cc
@@ -37,7 +37,7 @@ namespace LOFAR {
 //
 GCFEvent::~GCFEvent() 
 { 
-	LOG_TRACE_CALC(formatString("~GCFEvent: length=%d, _buffer=%08X", length, _buffer));
+	LOG_TRACE_CALC(formatString("~GCFEvent: signal=%04X, length=%d, _buffer=%08X", signal, length, _buffer));
 
 	if (_buffer)  {
 		delete [] _buffer; 
-- 
GitLab