136 lines
2.9 KiB
C++
136 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: BinaryFileReader.h 3 2012-01-15 16:26:07Z aneto $
|
|
*
|
|
**/
|
|
|
|
#if !defined (BINARY_FILE_READER)
|
|
#define BINARY_FILE_READER
|
|
|
|
#include "System.h"
|
|
#include "GenericAcqModule.h"
|
|
#include "File.h"
|
|
#include "ConfigurationDataBase.h"
|
|
#include "CDBExtended.h"
|
|
|
|
class DDBInputInterface;
|
|
class DDBOutputInterface;
|
|
|
|
#define IOGAM_MODULE "BinaryFileReader"
|
|
|
|
OBJECT_DLL(BinaryFileReader)
|
|
class BinaryFileReader: public GenericAcqModule{
|
|
OBJECT_DLL_STUFF(BinaryFileReader)
|
|
|
|
private:
|
|
|
|
File f;
|
|
/**
|
|
* Cycle Number
|
|
*/
|
|
int64 cycleNumber;
|
|
uint32 dataSize;
|
|
uint32 numberOfInputs;
|
|
|
|
/** Output interface to write data to */
|
|
DDBInputInterface *input;
|
|
|
|
/**
|
|
* Number of signals
|
|
*/
|
|
uint32 numberOfSignals;
|
|
|
|
/**
|
|
* Double array with signals
|
|
*/
|
|
char ** signals;
|
|
/**
|
|
* File Names. For each Channel
|
|
*/
|
|
FString fileName_usecTime;
|
|
FString fileName_Ch1;
|
|
|
|
|
|
public:
|
|
BinaryFileReader(){
|
|
cycleNumber = 0;
|
|
}
|
|
|
|
virtual ~BinaryFileReader(){
|
|
delete [] fileData;
|
|
}
|
|
|
|
/**
|
|
* Reset the internal counters
|
|
*/
|
|
bool PulseStart(){
|
|
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
|