ISIS Logo
ECLAB
An EPICS support module to export potentiostat values as process variables
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ECLabDriver Class Reference

EPICS Asyn port driver class. More...

#include <ECLabDriver.h>

Inheritance diagram for ECLabDriver:
Inheritance graph

Classes

struct  techinfo
 

Public Member Functions

 ECLabDriver (const char *portName, const char *ip)
 Constructor for the ECLabDriver class. More...
 
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
 
virtual asynStatus writeFloat64 (asynUser *pasynUser, epicsFloat64 value)
 
virtual asynStatus writeOctet (asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual)
 
virtual void report (FILE *fp, int details)
 EPICS driver report function for iocsh dbior command. More...
 
double getTime (unsigned thigh, unsigned tlow, double start_time, double time_base)
 
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)
 
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 updateCvals (int chan, TCurrentValues_t &cvals)
 

Private Member Functions

void ECLabValuesTask ()
 
void ECLabDataTask ()
 

Static Private Member Functions

static void ECLabValuesTaskC (void *arg)
 
static void ECLabDataTaskC (void *arg)
 

Private Attributes

int P_version
 
int P_host
 
int P_devCode
 
int P_numChannels
 
int P_numSlots
 
int P_numTech
 
int P_memFilled
 
int P_currEWE
 
int P_currECE
 
int P_currI
 
int P_currTIME
 
int P_currRCOMP
 
int P_currFREQ
 
int P_currSTATE
 
int P_currTimeBase
 
int P_loadTech
 
int P_defineTech
 
int P_updateParams
 
int P_dataDone
 
int P_filePrefix
 
int P_saveData
 
int P_startChannel
 
int P_stopChannel
 
TDeviceInfos_t m_infos
 
std::vector< techinfom_techniques
 
int m_ID
 

Detailed Description

EPICS Asyn port driver class.

Definition at line 17 of file ECLabDriver.h.

Constructor & Destructor Documentation

ECLabDriver::ECLabDriver ( const char *  portName,
const char *  ip 
)

Member Function Documentation

void ECLabDriver::ECLabDataTask ( )
private
void ECLabDriver::ECLabDataTaskC ( void *  arg)
staticprivate

Definition at line 370 of file ECLabDriver.cpp.

References ECLabDataTask().

Referenced by ECLabDriver().

void ECLabDriver::ECLabValuesTask ( )
private
void ECLabDriver::ECLabValuesTaskC ( void *  arg)
staticprivate
Todo:
Might use this for background polling if implementing I/O Intr scanning

Definition at line 361 of file ECLabDriver.cpp.

References ECLabValuesTask().

Referenced by ECLabDriver().

double ECLabDriver::getTime ( unsigned  thigh,
unsigned  tlow,
double  start_time,
double  time_base 
)

Definition at line 432 of file ECLabDriver.cpp.

Referenced by processOCVData(), and processPEISData().

void ECLabDriver::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 
)

Definition at line 491 of file ECLabDriver.cpp.

References data, getTime(), and t.

Referenced by ECLabDataTask().

void ECLabDriver::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 
)

Definition at line 437 of file ECLabDriver.cpp.

References data, getTime(), and t.

Referenced by ECLabDataTask().

void ECLabDriver::report ( FILE *  fp,
int  details 
)
virtual

EPICS driver report function for iocsh dbior command.

Definition at line 253 of file ECLabDriver.cpp.

References printParams().

void ECLabDriver::updateCvals ( int  chan,
TCurrentValues_t &  cvals 
)
asynStatus ECLabDriver::writeFloat64 ( asynUser *  pasynUser,
epicsFloat64  value 
)
virtual

Definition at line 159 of file ECLabDriver.cpp.

References driverName, and setECSingleParam().

asynStatus ECLabDriver::writeInt32 ( asynUser *  pasynUser,
epicsInt32  value 
)
virtual
asynStatus ECLabDriver::writeOctet ( asynUser *  pasynUser,
const char *  value,
size_t  maxChars,
size_t *  nActual 
)
virtual

Member Data Documentation

int ECLabDriver::m_ID
private

Definition at line 74 of file ECLabDriver.h.

Referenced by ECLabDataTask(), ECLabDriver(), ECLabValuesTask(), writeInt32(), and writeOctet().

TDeviceInfos_t ECLabDriver::m_infos
private

Definition at line 65 of file ECLabDriver.h.

Referenced by ECLabDataTask(), ECLabDriver(), and ECLabValuesTask().

std::vector<techinfo> ECLabDriver::m_techniques
private

Definition at line 72 of file ECLabDriver.h.

Referenced by writeInt32(), and writeOctet().

int ECLabDriver::P_currECE
private

Definition at line 49 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currEWE
private

Definition at line 48 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currFREQ
private

Definition at line 53 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currI
private

Definition at line 50 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currRCOMP
private

Definition at line 52 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currSTATE
private

Definition at line 54 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currTIME
private

Definition at line 51 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_currTimeBase
private

Definition at line 55 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_dataDone
private

Definition at line 59 of file ECLabDriver.h.

Referenced by ECLabDataTask(), and ECLabDriver().

int ECLabDriver::P_defineTech
private

Definition at line 57 of file ECLabDriver.h.

Referenced by ECLabDriver(), and writeOctet().

int ECLabDriver::P_devCode
private

Definition at line 43 of file ECLabDriver.h.

Referenced by ECLabDriver().

int ECLabDriver::P_filePrefix
private

Definition at line 60 of file ECLabDriver.h.

Referenced by ECLabDataTask(), and ECLabDriver().

int ECLabDriver::P_host
private

Definition at line 42 of file ECLabDriver.h.

Referenced by ECLabDriver().

int ECLabDriver::P_loadTech
private

Definition at line 56 of file ECLabDriver.h.

Referenced by ECLabDriver(), and writeOctet().

int ECLabDriver::P_memFilled
private

Definition at line 47 of file ECLabDriver.h.

Referenced by ECLabDriver(), and updateCvals().

int ECLabDriver::P_numChannels
private

Definition at line 44 of file ECLabDriver.h.

Referenced by ECLabDriver().

int ECLabDriver::P_numSlots
private

Definition at line 45 of file ECLabDriver.h.

Referenced by ECLabDriver().

int ECLabDriver::P_numTech
private

Definition at line 46 of file ECLabDriver.h.

Referenced by ECLabDriver(), and ECLabValuesTask().

int ECLabDriver::P_saveData
private

Definition at line 61 of file ECLabDriver.h.

Referenced by ECLabDataTask(), ECLabDriver(), and writeInt32().

int ECLabDriver::P_startChannel
private

Definition at line 62 of file ECLabDriver.h.

Referenced by ECLabDriver(), and writeInt32().

int ECLabDriver::P_stopChannel
private

Definition at line 63 of file ECLabDriver.h.

Referenced by ECLabDriver(), and writeInt32().

int ECLabDriver::P_updateParams
private

Definition at line 58 of file ECLabDriver.h.

Referenced by ECLabDriver(), and writeInt32().

int ECLabDriver::P_version
private

Definition at line 41 of file ECLabDriver.h.

Referenced by ECLabDriver().


The documentation for this class was generated from the following files:
Copyright © 2013 Science and Technology Facilities Council | Generated by   doxygen 1.8.5