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

138 lines
2.9 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: FileReadDrv.h 3 2012-01-15 16:26:07Z aneto $
*
**/
#if !defined (FILE_READ_DRV)
#define FILE_READ_DRV
#include "System.h"
#include "GenericAcqModule.h"
#include "FileSignalList.h"
OBJECT_DLL(FileReadDrv)
class FileReadDrv:public GenericAcqModule{
OBJECT_DLL_STUFF(FileReadDrv)
private:
/**
* The signal list. Each list has a time vector associated to N signal vectors
*/
FileSignalList **signalLists;
/**
* Number of signals for the list N
*/
int32 numberOfSignalLists;
/**
* Cycle Number
*/
int64 cycleNumber;
/**
* Number of signals
*/
uint32 numberOfSignals;
/**
* Time File Name
*/
FString fileName;
/**
* Time File Handler
*/
File f;
public:
FileReadDrv(){
signalLists = NULL;
numberOfSignalLists = 0;
cycleNumber = 0;
}
virtual ~FileReadDrv(){
if(signalLists != NULL){
delete []signalLists;
}
}
/**
* Reset the internal counters
*/
bool PulseStart(){
int i=0;
for(i=0; i<numberOfSignalLists; i++){
signalLists[i]->Reset();
}
cycleNumber = 0;
return True;
}
/**
* Gets Data From the Module to the DDB
* @param usecTime Microseconds Time
* @return -1 on Error, 1 on success
*/
int32 GetData(uint32 usecTime, int32 *buffer, int32 bufferNumber = 0);
/**
* Load and configure object parameters
* @param info the configuration database
* @param err the error stream
* @return True if no errors are found during object configuration
*/
bool ObjectLoadSetup(ConfigurationDataBase &info,StreamInterface *err);
/**
* NOOP
*/
bool ObjectDescription(StreamInterface &s,bool full,StreamInterface *er){
return True;
}
/**
* NOOP
*/
bool SetInputBoardInUse(bool on){
return True;
}
/**
* NOOP
*/
bool SetOutputBoardInUse(bool on){
return True;
}
/**
* Not supported
*/
bool WriteData(uint32 usecTime, const int32* buffer){
AssertErrorCondition(FatalError, "%s: WriteData not supported", Name());
return False;
}
};
#endif