14 #include "asynPortDriver.h"
23 virtual asynStatus
writeInt32(asynUser *pasynUser, epicsInt32 value);
25 virtual asynStatus
writeFloat64(asynUser *pasynUser, epicsFloat64 value);
28 virtual asynStatus
writeOctet(asynUser *pasynUser,
const char *value,
size_t maxChars,
size_t *nActual);
31 virtual void report(FILE* fp,
int details);
33 double getTime(
unsigned thigh,
unsigned tlow,
double start_time,
double time_base);
34 void processOCVData(std::fstream& fs,
int nrows,
int ncols,
int technique_index,
int process_index,
35 int loop,
double start_time,
double time_base, TDataBuffer_t* dbuffer);
36 void processPEISData(std::fstream& fs0, std::fstream& fs1,
int nrows,
int ncols,
int technique_index,
int process_index,
37 int loop,
double start_time,
double time_base, TDataBuffer_t* dbuffer);
38 void updateCvals(
int chan, TCurrentValues_t& cvals);
76 #define FIRST_ECLAB_PARAM P_version
77 #define LAST_ECLAB_PARAM P_stopChannel
85 #define NUM_ECLAB_PARAMS (&LAST_ECLAB_PARAM - &FIRST_ECLAB_PARAM + 1)
87 #define P_versionString "VERSION"
88 #define P_hostString "HOST"
89 #define P_devCodeString "DEVCODE"
90 #define P_numChannelsString "NUMCHANNELS"
91 #define P_numSlotsString "NUMSLOTS"
92 #define P_numTechString "NUMTECH"
93 #define P_memFilledString "MEMFILLED"
94 #define P_currEWEString "CURR_EWE"
95 #define P_currECEString "CURR_ECE"
96 #define P_currIString "CURR_I"
97 #define P_currTIMEString "CURR_TIME"
98 #define P_currRCOMPString "CURR_RCOMP"
99 #define P_currFREQString "CURR_FREQ"
100 #define P_currSTATEString "CURR_STATE"
101 #define P_loadTechString "LOADTECH"
102 #define P_defineTechString "DEFINETECH"
103 #define P_updateParamsString "UPDATE"
104 #define P_dataDoneString "DATADONE"
105 #define P_startChannelString "STARTCHANNEL"
106 #define P_stopChannelString "STOPCHANNEL"
107 #define P_currTimeBaseString "CURR_TB"
108 #define P_filePrefixString "FILEPREFIX"
109 #define P_saveDataString "SAVEDATA"
EPICS Asyn port driver class.
void processPEISData(std::fstream &fs0, std::fstream &fs1, int nrows, int ncols, int technique_index, int process_index, int loop, double start_time, double time_base, TDataBuffer_t *dbuffer)
void processOCVData(std::fstream &fs, int nrows, int ncols, int technique_index, int process_index, int loop, double start_time, double time_base, TDataBuffer_t *dbuffer)
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
static void ECLabDataTaskC(void *arg)
virtual void report(FILE *fp, int details)
EPICS driver report function for iocsh dbior command.
void updateCvals(int chan, TCurrentValues_t &cvals)
std::vector< techinfo > m_techniques
techinfo(const std::string &name_, int index_)
ECLabDriver(const char *portName, const char *ip)
Constructor for the ECLabDriver class.
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
double getTime(unsigned thigh, unsigned tlow, double start_time, double time_base)
static void ECLabValuesTaskC(void *arg)
virtual asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual)