Files
ISTTOK/epics/css/sys-mng-opi/CSS/MARTe/Interfaces/EPICSGAM/EPICSGAM.h
2019-10-21 16:02:55 +01:00

128 lines
3.2 KiB
C++

/*
* Copyright 2011 EFDA | European Fusion Development Agreement
*
* Licensed under the EUPL, Version 1.1 or - as soon they
will be approved by the European Commission - subsequent
versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the
Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in
writing, software distributed under the Licence is
distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.
* See the Licence for the specific language governing
permissions and limitations under the Licence.
*
* $Id$
*
**/
#if !defined(_EPICS_GAM_)
#define _EPICS_GAM_
#include "System.h"
#include "GAM.h"
#include "HttpInterface.h"
#include "MessageHandler.h"
// TODO --start
#include "GCRTemplate.h"
#include "FString.h"
// TODO also add support for DDBOutputInterface as well
//#include "DDBOutputInterface.h"
#include "DDBInputInterface.h"
#include "DDBIOInterface.h"
//#include "RTDataCollector.h"
#include "SignalInterface.h"
// TODO -- end
#include "EPICSSignalsTable.h"
OBJECT_DLL(EPICSGAM)
;
class EPICSGAM
: public GAM, public HttpInterface, public MessageHandler {
OBJECT_DLL_STUFF(EPICSGAM)
private:
static const char * css;
/** Get Data Collected during the pulse */
// GCRTemplate<SignalInterface> GetSignal(const FString &jpfSignalName);
// DDB Interface for the Time
DDBInputInterface *usecTime;
// Fast Trigger Request signal
DDBIOInterface *fastTrigger;
// Jpf Data Collection
DDBInputInterface *jpfData;
// Has trigger signal
bool hasTriggerSignal;
// Data Collector
// RTDataCollector dataCollector;
// flag to avoid processing messages during pulse
bool acceptingMessages;
/** SignalTable Database */
EPICSSignalsTable signalTable;
public:
EPICSGAM();
virtual ~EPICSGAM(){};
// Initialise the module
// which is the difference between Initialise and Object Load Setup?
virtual bool Initialise(ConfigurationDataBase& cdbData);
/** Execute the module functionalities */
virtual bool Execute(GAM_FunctionNumbers functionNumber);
/** Implements the Saving of the parameters to Configuration Data Base */
virtual bool ObjectSaveSetup(ConfigurationDataBase &info, StreamInterface *err) {
return True;
}
/** Menu Interface */
// virtual bool MenuInterface(StreamInterface &in,StreamInterface &out,void *userData) {
// return dataCollector.ObjectDescription(in, True);
// }
/**
* Builds the webpage.
* @param hStream The HttpStream to write to.
* @return False on error, True otherwise.
*/
virtual bool ProcessHttpMessage(HttpStream &hStream);
protected:
// MESSAGE HANDLER INTERFACE
virtual bool ProcessMessage(GCRTemplate<MessageEnvelope> envelope);
};
#endif