qpidctrl  0.7.1
Public Slots | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
QEurothermDevice Class Reference

#include <qeurothermdevice.h>

Inheritance diagram for QEurothermDevice:
Inheritance graph

Public Slots

void sendCommand (QString cmd)
 
void readoutInitial ()
 
void readoutPolling ()
 
void readoutTimeout ()
 
void changeSetPoint (double setPoint)
 
void changeRampRate (double rate)
 
void changeProportional (double prop)
 
void changeIntegral (double integ)
 
void changeDerivative (double deriv)
 
void enable (bool on)
 
bool canAutoTune ()
 
void autoTune ()
 
void runTest1 ()
 
void runTest2 ()
 
void test2Tick ()
 
- Public Slots inherited from QPidDevice
void printMessage (QString msg, QDateTime ts=QDateTime::currentDateTime())
 
virtual void readoutInitial ()=0
 
virtual void readoutPolling ()=0
 
virtual void readoutTimeout ()=0
 
virtual void sendCommand (QString cmd)=0
 
virtual void changeSetPoint (double setPoint)=0
 
virtual void changeRampRate (double rate)=0
 
virtual void changeProportional (double prop)=0
 
virtual void changeIntegral (double integ)=0
 
virtual void changeDerivative (double deriv)=0
 
virtual void enable (bool on)=0
 
virtual void loopEnable (bool on)
 
virtual bool canAutoTune ()=0
 
virtual void autoTune ()=0
 
virtual void readyRead ()
 
virtual void onGraphingTimeout ()
 
virtual void onLoggingTimeout ()
 
virtual void start ()
 
virtual void stop ()
 
virtual void restart ()
 
virtual void changeRunState (int state)
 
virtual void changePollingInterval (double interval)
 
virtual void changeTimeoutInterval (double interval)
 
virtual void changeGraphingInterval (double interval)
 
virtual void changeLoggingInterval (double interval)
 
virtual void write (QString cmd)
 
virtual QString readLine (int sz=0)
 
virtual int waitForReadyRead (int tmout=0)
 
virtual int bytesAvailable ()
 
virtual int canReadLine ()
 

Public Member Functions

 QEurothermDevice (QPidControllerWPtr ctrl, QcepSettingsSaverWPtr saver, QString deviceName)
 
void configurationDialog ()
 
virtual void writeSettings (QSettings *set, QString section)
 
virtual void readSettings (QSettings *set, QString section)
 
- Public Member Functions inherited from QPidDevice
 QPidDevice (QPidControllerWPtr ctrl, QcepSettingsSaverWPtr saver, int deviceType, QString deviceName, int pollIntervalMsec, int timeoutMsec)
 
virtual ~QPidDevice ()
 
QPidControllerWPtr controller () const
 
double cK2K (double cK)
 
double K2cK (double K)
 
double K2degC (double K)
 
double degC2K (double degC)
 
void updateConnected (double newConnected)
 
void updateTemperature (double newTemperature)
 
void updateRampPoint (double newRampPoint)
 
void updateOutputLevel (double newOutputLevel)
 
void resetTimeout ()
 
void pushCommand (QPidDeviceCommandPtr cmd)
 
void issueCommand ()
 
void completeCommand (QByteArray response)
 
void flushCommandQueue ()
 
int slowly (int msec)
 
QPidCommPortPtr commPort ()
 

Protected Member Functions

QByteArray encodeModbusCommand (int addr, int cmd, QByteArray args)
 
QByteArray encodeBiSyncPollCommand (int gid, int uid, int chan, QString mne)
 
QByteArray encodeBiSyncSelectCommand (int gid, int uid, int chan, QString mne, QString val)
 

Private Member Functions

QByteArray invertByteArray (QByteArray arr)
 

Private Attributes

QPidObjectNamer m_ObjectNamer
 
QPidSerialPort m_SerialPort
 
QByteArray m_Buffer
 
QEurothermDeviceDialogPtr m_DeviceDialog
 
QTimer m_Test2Timer
 
int m_Test2State
 
int m_Test2Count
 

Additional Inherited Members

- Public Types inherited from QPidDevice
enum  {
  NoDevice = 0, WatlowDevice = 1, PTC10Device = 2, LakeshoreDevice = 3,
  CryostreamDevice = 4, EurothermDevice = 5
}
 
- Signals inherited from QPidDevice
void inputChannelChanged (QString name, QString units)
 
void outputChannelChanged (QString name, QString units)
 
void loggedChannelNames (QStringList names)
 
void loggedChannelValues (QcepDoubleList values)
 
void graphedChannelNames (QStringList names)
 
void graphedChannelValues (QcepDoubleList values)
 
- Static Public Member Functions inherited from QPidDevice
static QString deviceTypeName (int typ)
 
static QString deviceLongTypeName (int typ)
 
static int deviceTypeCount ()
 
- Properties inherited from QPidDevice
int deviceType
 
QString deviceTypeName
 
QString deviceLongTypeName
 
QString deviceName
 
int runState
 
double pollingInterval
 
double timeoutInterval
 

Detailed Description

Definition at line 12 of file qeurothermdevice.h.

Constructor & Destructor Documentation

QEurothermDevice::QEurothermDevice ( QPidControllerWPtr  ctrl,
QcepSettingsSaverWPtr  saver,
QString  deviceName 
)
explicit

Definition at line 8 of file qeurothermdevice.cpp.

8  :
9  QPidDevice(ctrl, saver, EurothermDevice, deviceName, 1000, 2000),
10  m_ObjectNamer(this, "eurotherm"),
11  m_Test2State(0),
12  m_Test2Count(0)
13 {
14 }
QPidDevice(QPidControllerWPtr ctrl, QcepSettingsSaverWPtr saver, int deviceType, QString deviceName, int pollIntervalMsec, int timeoutMsec)
Definition: qpiddevice.cpp:9
QPidObjectNamer m_ObjectNamer
QString deviceName
Definition: qpiddevice.h:133

Member Function Documentation

void QEurothermDevice::autoTune ( )
slot

Definition at line 97 of file qeurothermdevice.cpp.

98 {
99 }
bool QEurothermDevice::canAutoTune ( )
slot

Definition at line 92 of file qeurothermdevice.cpp.

93 {
94  return false;
95 }
void QEurothermDevice::changeDerivative ( double  deriv)
slot

Definition at line 79 of file qeurothermdevice.cpp.

80 {
81 }
void QEurothermDevice::changeIntegral ( double  integ)
slot

Definition at line 75 of file qeurothermdevice.cpp.

76 {
77 }
void QEurothermDevice::changeProportional ( double  prop)
slot

Definition at line 71 of file qeurothermdevice.cpp.

72 {
73 }
void QEurothermDevice::changeRampRate ( double  rate)
slot

Definition at line 67 of file qeurothermdevice.cpp.

68 {
69 }
void QEurothermDevice::changeSetPoint ( double  setPoint)
slot

Definition at line 58 of file qeurothermdevice.cpp.

References QPidDevice::controller().

59 {
61 
62  if (ctl) {
63 // sendCryoCommand(CSCOMMAND_RAMP, cryoRate(ctl->get_RampRate())+cryoTemperature(setPoint));
64  }
65 }
QPidControllerWPtr controller() const
Definition: qpiddevice.cpp:316
QSharedPointer< QPidController > QPidControllerPtr
void QEurothermDevice::configurationDialog ( )
virtual

Implements QPidDevice.

Definition at line 42 of file qeurothermdevice.cpp.

References m_DeviceDialog.

43 {
44  if (m_DeviceDialog == NULL) {
46  }
47 
48  if (m_DeviceDialog) {
49  m_DeviceDialog->show();
50  m_DeviceDialog->raise();
51  }
52 }
QEurothermDeviceDialogPtr m_DeviceDialog
QSharedPointer< QEurothermDevice > QEurothermDevicePtr
QSharedPointer< QEurothermDeviceDialog > QEurothermDeviceDialogPtr
void QEurothermDevice::enable ( bool  on)
slot

Definition at line 83 of file qeurothermdevice.cpp.

84 {
85  if (on) {
86 // sendCryoCommand(CSCOMMAND_RESTART);
87  } else {
88 // sendCryoCommand(CSCOMMAND_STOP);
89  }
90 }
QByteArray QEurothermDevice::encodeBiSyncPollCommand ( int  gid,
int  uid,
int  chan,
QString  mne 
)
protected

Definition at line 224 of file qeurothermdevice.cpp.

Referenced by runTest1(), and test2Tick().

225 {
226  QByteArray res;
227 
228  res.append(4); // EOT
229 
230  QString gidstr = tr("%1").arg(gid,1);
231  QString uidstr = tr("%1").arg(uid,1);
232  QString chanstr = tr("%1").arg(chan,1);
233 
234  res.append(gidstr);
235  res.append(gidstr);
236  res.append(uidstr);
237  res.append(uidstr);
238 // res.append(chanstr);
239  res.append(mne.left(2));
240 
241  res.append(5); // ENQ
242 
243  return res;
244 }
QByteArray QEurothermDevice::encodeBiSyncSelectCommand ( int  gid,
int  uid,
int  chan,
QString  mne,
QString  val 
)
protected

Definition at line 247 of file qeurothermdevice.cpp.

Referenced by test2Tick().

248 {
249  QByteArray res;
250 
251  res.append(4); // EOT
252 
253  QString gidstr = tr("%1").arg(gid,1);
254  QString uidstr = tr("%1").arg(uid,1);
255  QString chanstr = tr("%1").arg(chan,1);
256 
257  res.append(gidstr);
258  res.append(gidstr);
259  res.append(uidstr);
260  res.append(uidstr);
261 
262  res.append(2); // STX
263 // res.append(chanstr);
264  res.append(mne.left(2));
265  res.append(val);
266  res.append(3); // ETX
267 
268  quint32 sum = 0;
269 
270  for (int i=6; i<res.length(); i++) {
271  sum ^= res[i];
272  }
273 
274  res.append(sum & 0xff);
275 
276  return res;
277 }
QByteArray QEurothermDevice::encodeModbusCommand ( int  addr,
int  cmd,
QByteArray  args 
)
protected

Definition at line 216 of file qeurothermdevice.cpp.

217 {
218  QByteArray res;
219 
220  return res;
221 }
QByteArray QEurothermDevice::invertByteArray ( QByteArray  arr)
private

Definition at line 101 of file qeurothermdevice.cpp.

Referenced by runTest1(), and test2Tick().

102 {
103  QByteArray res;
104 
105  foreach(int ch, arr) {
106  res.append(ch ^ -1);
107  }
108 
109  return res;
110 }
void QEurothermDevice::readoutInitial ( )
slot

Definition at line 16 of file qeurothermdevice.cpp.

17 {
18 }
void QEurothermDevice::readoutPolling ( )
slot

Definition at line 20 of file qeurothermdevice.cpp.

21 {
22 }
void QEurothermDevice::readoutTimeout ( )
slot

Definition at line 24 of file qeurothermdevice.cpp.

25 {
26 }
void QEurothermDevice::readSettings ( QSettings *  set,
QString  section 
)
virtual

Reimplemented from QPidDevice.

Definition at line 35 of file qeurothermdevice.cpp.

References QPidDevice::readSettings().

36 {
37  QPidDevice::readSettings(set, section+"/eurotherm");
38 
39  QcepProperty::readSettings(this, &staticMetaObject, section+"/eurotherm", set);
40 }
virtual void readSettings(QSettings *set, QString section)
Definition: qpiddevice.cpp:375
void QEurothermDevice::runTest1 ( )
slot

Definition at line 112 of file qeurothermdevice.cpp.

References QPidDevice::commPort(), encodeBiSyncPollCommand(), invertByteArray(), QPidDeviceThread::msleep(), and QPidDevice::printMessage().

113 {
114  printMessage("Run test 1");
115 
116  QByteArray modbusCommand = QByteArray::fromHex("010741E2");
117  QByteArray modbusInverted = invertByteArray(modbusCommand);
118 
119  QByteArray bisyncCommand = encodeBiSyncPollCommand(0, 1, 1, "PV");
120  QByteArray bisyncInverted = invertByteArray(bisyncCommand);
121 
122  int avail;
123 
124  for (int i=0; i<50; i++) {
125  printMessage(tr("Send iteration %1").arg(i));
126 
127  for (int j=0; j<i; j++) {
128  commPort()->write(" ");
129  }
130 
131  commPort()->write(bisyncCommand);
132  printMessage(tr("Sent %1").arg(QString(bisyncCommand.toHex())));
133  commPort()->waitForBytesWritten();
135 
136  for (int j=0; j<i; j++) {
137  commPort()->write(" ");
138  }
139 
140  commPort()->write(bisyncInverted);
141  printMessage(tr("Sent %1").arg(QString(bisyncInverted.toHex())));
142  commPort()->waitForBytesWritten();
144 
145  commPort()->waitForBytesWritten();
146 
147  avail = commPort()->bytesAvailable();
148 
149  printMessage(tr("%1 bytes of input are available").arg(avail));
150 
151  QByteArray res = commPort()->readAll();
152 
153  printMessage(tr("Data read - %1").arg(QString(res.toHex())));
154  }
155 
156  QByteArray inp = commPort()->read(avail);
157 }
static void msleep(unsigned long msecs)
QByteArray invertByteArray(QByteArray arr)
QPidCommPortPtr commPort()
Definition: qpiddevice.cpp:121
QByteArray encodeBiSyncPollCommand(int gid, int uid, int chan, QString mne)
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
Definition: qpiddevice.cpp:321
void QEurothermDevice::runTest2 ( )
slot

Definition at line 159 of file qeurothermdevice.cpp.

References m_Test2Count, m_Test2State, m_Test2Timer, QPidDevice::printMessage(), and test2Tick().

160 {
161  printMessage("Run test 2");
162 
163  if (m_Test2State == 0) {
164  connect(&m_Test2Timer, SIGNAL(timeout()), this, SLOT(test2Tick()));
165 
166  m_Test2State = 1;
167  m_Test2Count = 100;
168 
169  m_Test2Timer.start(1000);
170  } else {
171  m_Test2Timer.stop();
172 
173  disconnect(&m_Test2Timer, SIGNAL(timeout()), this, SLOT(test2Tick()));
174 
175  m_Test2State = 0;
176  }
177 }
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
Definition: qpiddevice.cpp:321
void QEurothermDevice::sendCommand ( QString  cmd)
slot

Definition at line 54 of file qeurothermdevice.cpp.

55 {
56 }
void QEurothermDevice::test2Tick ( )
slot

Definition at line 179 of file qeurothermdevice.cpp.

References QPidDevice::commPort(), encodeBiSyncPollCommand(), encodeBiSyncSelectCommand(), invertByteArray(), m_Test2Count, m_Test2State, and QPidDevice::printMessage().

Referenced by runTest2().

180 {
181  if (m_Test2State != 0) {
182  if (true) {
183  printMessage(tr("Iteration %1").arg(m_Test2Count));
184 
185  QByteArray bisyncCommand;
186 
187  if (m_Test2Count & 2) {
188  bisyncCommand = encodeBiSyncPollCommand(0, 1, 1, "PV");
189  } else {
190  bisyncCommand = encodeBiSyncSelectCommand(0, 1, 1, "SL", "22.0");
191  }
192 
193  if (m_Test2Count & 1) {
194  bisyncCommand = invertByteArray(bisyncCommand);
195  }
196 
197  commPort()->write(bisyncCommand);
198 
199  commPort()->waitForBytesWritten();
200  printMessage(tr("Sent %1").arg(QString(bisyncCommand.toHex())));
201 
202  m_Test2Count--;
203  }
204  }
205 
206  int avail = commPort()->bytesAvailable();
207 
208  printMessage(tr("%1 bytes of input are available").arg(avail));
209 
210  QByteArray res = commPort()->readAll();
211 
212  printMessage(tr("Data read - %1").arg(QString(res.toHex())));
213 }
QByteArray invertByteArray(QByteArray arr)
QPidCommPortPtr commPort()
Definition: qpiddevice.cpp:121
QByteArray encodeBiSyncPollCommand(int gid, int uid, int chan, QString mne)
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
Definition: qpiddevice.cpp:321
QByteArray encodeBiSyncSelectCommand(int gid, int uid, int chan, QString mne, QString val)
void QEurothermDevice::writeSettings ( QSettings *  set,
QString  section 
)
virtual

Reimplemented from QPidDevice.

Definition at line 28 of file qeurothermdevice.cpp.

References QPidDevice::writeSettings().

29 {
30  QPidDevice::writeSettings(set, section+"/eurotherm");
31 
32  QcepProperty::writeSettings(this, &staticMetaObject, section+"/eurotherm", set);
33 }
virtual void writeSettings(QSettings *set, QString section)
Definition: qpiddevice.cpp:366

Member Data Documentation

QByteArray QEurothermDevice::m_Buffer
private

Definition at line 55 of file qeurothermdevice.h.

QEurothermDeviceDialogPtr QEurothermDevice::m_DeviceDialog
private

Definition at line 56 of file qeurothermdevice.h.

Referenced by configurationDialog().

QPidObjectNamer QEurothermDevice::m_ObjectNamer
private

Definition at line 52 of file qeurothermdevice.h.

QPidSerialPort QEurothermDevice::m_SerialPort
private

Definition at line 54 of file qeurothermdevice.h.

int QEurothermDevice::m_Test2Count
private

Definition at line 60 of file qeurothermdevice.h.

Referenced by runTest2(), and test2Tick().

int QEurothermDevice::m_Test2State
private

Definition at line 59 of file qeurothermdevice.h.

Referenced by runTest2(), and test2Tick().

QTimer QEurothermDevice::m_Test2Timer
private

Definition at line 58 of file qeurothermdevice.h.

Referenced by runTest2().


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