qmca  0.0.20
Public Slots | Signals | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
EpicsString Class Reference

#include <epicsstring.h>

Inheritance diagram for EpicsString:
Inheritance graph

Public Slots

void changeValue (QString val)
 
void caput (QString val)
 

Signals

void valueChanged (QString)
 
- Signals inherited from EpicsObject
void valueChanged ()
 

Public Member Functions

 EpicsString (QString pvName, QObject *parent=0, int debug=0)
 
virtual ~EpicsString ()
 
void changeConnection (QString pv)
 
QString value ()
 
- Public Member Functions inherited from EpicsObject
 EpicsObject (QString pvName, QObject *parent=0, int debug=0)
 
virtual ~EpicsObject ()
 
void changeConnection (QString pv)
 
int count ()
 
QString pvName ()
 
QString toolTip ()
 
virtual void connected ()
 
virtual void disconnected ()
 
chid channelID ()
 
int debug ()
 
void setDebug (int dbg)
 
void settle (double t)
 
void ca_pend_io (double t)
 

Private Member Functions

virtual caEventCallBackFunc * get_event_handler ()
 

Static Private Member Functions

static void event_handler (struct event_handler_args arg)
 

Private Attributes

QString m_Value
 

Additional Inherited Members

- Static Public Attributes inherited from EpicsObject
static QMutex m_Mutex
 
- Protected Attributes inherited from EpicsObject
chid m_ChannelID
 
evid m_EventID
 
bool m_HasEventHandler
 
int m_Debug
 

Detailed Description

Definition at line 9 of file epicsstring.h.

Constructor & Destructor Documentation

EpicsString::EpicsString ( QString  pvName,
QObject *  parent = 0,
int  debug = 0 
)

Definition at line 5 of file epicsstring.cpp.

6  : EpicsObject(pvName, parent, debug),
7  m_Value("")
8 {
9 }
QString pvName()
Definition: epicsobject.cpp:30
EpicsObject(QString pvName, QObject *parent=0, int debug=0)
Definition: epicsobject.cpp:7
QString m_Value
Definition: epicsstring.h:33
EpicsString::~EpicsString ( )
virtual

Definition at line 11 of file epicsstring.cpp.

12 {
13 // printf("EpicsString::~EpicsString(\"%s\")\n", qPrintable(pvName()));
14 }

Member Function Documentation

void EpicsString::caput ( QString  val)
slot

Definition at line 71 of file epicsstring.cpp.

References EpicsObject::ca_pend_io(), and EpicsObject::channelID().

Referenced by EpicsPulseAnalyser::setGated(), EpicsPulseAnalyser::setLowerLevel(), and EpicsPulseAnalyser::setUpperLevel().

72 {
73  ca_put(DBR_STRING, channelID(), qPrintable(val));
74  ca_pend_io(0.5);
75 }
chid channelID()
Definition: epicsobject.cpp:63
void ca_pend_io(double t)
void EpicsString::changeConnection ( QString  pv)
void EpicsString::changeValue ( QString  val)
slot

Definition at line 61 of file epicsstring.cpp.

References EpicsObject::m_Mutex, m_Value, and EpicsObject::valueChanged().

Referenced by event_handler().

62 {
63  QMutexLocker lock(&m_Mutex);
64 
65  if (m_Value != newval) {
66  m_Value = newval;
67  emit valueChanged(m_Value);
68  }
69 }
void valueChanged()
static QMutex m_Mutex
Definition: epicsobject.h:42
QString m_Value
Definition: epicsstring.h:33
void EpicsString::event_handler ( struct event_handler_args  arg)
staticprivate

Definition at line 16 of file epicsstring.cpp.

References changeValue(), and EpicsObject::debug().

Referenced by get_event_handler().

17 {
18  union db_access_val *pb = (union db_access_val *) arg.dbr;
19 
20  QString res="";
21 
22  switch (arg.type) {
23  case DBR_SHORT:
24  res = QString::number(pb->shrtval);
25  break;
26  case DBR_LONG:
27  res = QString::number(pb->longval);
28  break;
29  case DBR_FLOAT:
30  res = QString::number(pb->fltval);
31  break;
32  case DBR_ENUM:
33  res = QString::number(pb->enmval);
34  break;
35  case DBR_CHAR:
36  res = QString::number(pb->charval);
37  break;
38  case DBR_DOUBLE:
39  res = QString::number(pb->doubleval);
40  break;
41  case DBR_STRING:
42  res = QString(pb->strval);
43  default:
44  printf("data type %ld not supported\n", arg.type);
45  }
46 
47  EpicsString* s = ((EpicsString*) arg.usr);
48 
49  if (s && s->debug()) {
50  printf("%s Epics String Event Handler called %ld = %s\n", ca_name(arg.chid), arg.type, qPrintable(res));
51  }
52 
53  ((EpicsString*) arg.usr) -> changeValue(res);
54 }
void changeValue(QString val)
Definition: epicsstring.cpp:61
caEventCallBackFunc * EpicsString::get_event_handler ( )
privatevirtual

Implements EpicsObject.

Definition at line 56 of file epicsstring.cpp.

References event_handler().

57 {
59 }
static void event_handler(struct event_handler_args arg)
Definition: epicsstring.cpp:16
QString EpicsString::value ( )

Definition at line 77 of file epicsstring.cpp.

References EpicsObject::m_Mutex, and m_Value.

Referenced by EpicsStringDisplay::EpicsStringDisplay(), and EpicsStringLineEdit::EpicsStringLineEdit().

78 {
79  QMutexLocker lock(&m_Mutex);
80 
81  return m_Value;
82 }
static QMutex m_Mutex
Definition: epicsobject.h:42
QString m_Value
Definition: epicsstring.h:33
void EpicsString::valueChanged ( QString  )
signal

Member Data Documentation

QString EpicsString::m_Value
private

Definition at line 33 of file epicsstring.h.

Referenced by changeValue(), and value().


The documentation for this class was generated from the following files: