ISIS Logo
lvDCOM
An EPICS support module to export LabVIEW values as process variables
lvDCOMDriver.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2013 Science and Technology Facilities Council (STFC), GB.
3 * All rights reverved.
4 * This file is distributed subject to a Software License Agreement found
5 * in the file LICENSE.txt that is included with this distribution.
6 \*************************************************************************/
7 
10 
11 #ifndef LVDCOMDRIVER_H
12 #define LVDCOMDRIVER_H
13 
14 #include "asynPortDriver.h"
15 
16 class lvDCOMInterface;
17 
19 class lvDCOMDriver : public asynPortDriver
20 {
21 public:
22  lvDCOMDriver(lvDCOMInterface* dcomint, const char *portName);
23 
24  // These are the methods that we override from asynPortDriver
25  virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
26  virtual asynStatus readInt32(asynUser *pasynUser, epicsInt32 *value);
27  virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value);
28  virtual asynStatus readFloat64(asynUser *pasynUser, epicsFloat64 *value);
29  virtual asynStatus readOctet(asynUser *pasynUser, char *value, size_t maxChars, size_t *nActual, int *eomReason);
30  virtual asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual);
31  virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value, size_t nElements, size_t *nIn);
32  virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn);
33  virtual void report(FILE* fp, int details);
34  void lvDCOMTask();
35 
36 private:
38  std::map<std::string,std::string> m_params;
39 
40  template<typename T> asynStatus writeValue(asynUser *pasynUser, const char* functionName, T value);
41  template<typename T> asynStatus readValue(asynUser *pasynUser, const char* functionName, T* value);
42  template<typename T> asynStatus readArray(asynUser *pasynUser, const char* functionName, T *value, size_t nElements, size_t *nIn);
43 
44  static void lvDCOMTaskC(void* arg);
45 };
46 
47 #endif /* LVDCOMDRIVER_H */
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
EPICS Asyn port driver class.
Definition: lvDCOMDriver.h:19
virtual void report(FILE *fp, int details)
EPICS driver report function for iocsh dbior command.
virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value, size_t nElements, size_t *nIn)
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
asynStatus readArray(asynUser *pasynUser, const char *functionName, T *value, size_t nElements, size_t *nIn)
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
static void lvDCOMTaskC(void *arg)
virtual asynStatus readInt32(asynUser *pasynUser, epicsInt32 *value)
asynStatus readValue(asynUser *pasynUser, const char *functionName, T *value)
lvDCOMInterface * m_lvdcom
Definition: lvDCOMDriver.h:37
virtual asynStatus readFloat64(asynUser *pasynUser, epicsFloat64 *value)
asynStatus writeValue(asynUser *pasynUser, const char *functionName, T value)
std::map< std::string, std::string > m_params
Definition: lvDCOMDriver.h:38
virtual asynStatus readOctet(asynUser *pasynUser, char *value, size_t maxChars, size_t *nActual, int *eomReason)
Manager class for LabVIEW DCOM Interaction. Parses an lvinput.xml file and provides access to the Lab...
virtual asynStatus writeOctet(asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual)
lvDCOMDriver(lvDCOMInterface *dcomint, const char *portName)
Constructor for the lvDCOMDriver class.
Copyright © 2013 Science and Technology Facilities Council | Generated by   doxygen 1.8.5