3 #include "qextserialport.h"
5 #include "qcepmutexlocker.h"
8 #include <QCoreApplication>
15 m_ChannelList(QcepSettingsSaverWPtr(), this,
"channelList",
"",
"Channel List"),
16 m_Channels(QcepSettingsSaverWPtr(), this,
"channels", QStringList(),
"Channel List"),
17 m_InputChannels(QcepSettingsSaverWPtr(), this,
"inputChannels", QStringList(),
"Input Channel List"),
18 m_OutputChannels(QcepSettingsSaverWPtr(), this,
"outputChannels", QStringList(),
"Output Channel List"),
19 m_UnitsList(QcepSettingsSaverWPtr(), this,
"unitsList",
"",
"Channel Units List"),
20 m_ChannelUnits(QcepSettingsSaverWPtr(), this,
"channelUnits", QStringList(),
"Channel Units List"),
21 m_ChannelValues(QcepSettingsSaverWPtr(), this,
"channelValues", QcepDoubleList(),
"Channel Values"),
22 m_InputChannel(saver, this,
"inputChannel", -1,
"Input Channel Number"),
23 m_InputUnits(QcepSettingsSaverWPtr(), this,
"inputUnits",
"",
"Input Units"),
24 m_OutputChannel(saver, this,
"outputChannel", -1,
"Output Channel Number"),
25 m_OutputUnits(QcepSettingsSaverWPtr(), this,
"outputUnits",
"",
"Output Units")
60 QcepProperty::writeSettings(
this, &staticMetaObject, section+
"/ptc10", set);
67 QcepProperty::readSettings(
this, &staticMetaObject, section+
"/ptc10", set);
84 QStringList chans = get_InputChannels();
86 return chans.value(get_InputChannel());
91 QStringList chans = get_OutputChannels();
93 return chans.value(get_OutputChannel());
98 QStringList chans = get_Channels();
99 QStringList units = get_ChannelUnits();
102 int indx = chans.indexOf(chan);
104 return units.value(indx);
109 QStringList chans = get_Channels();
110 QStringList units = get_ChannelUnits();
113 int indx = chans.indexOf(chan);
115 return units.value(indx);
144 QString res =
sendQuery(
"getOutput.names");
146 if (res != get_ChannelList()) {
152 if (res != get_UnitsList()) {
184 printMessage(tr(
"parseChannelList(\"%1\")").arg(chans.trimmed()));
187 if (chans != get_ChannelList()) {
188 set_ChannelList(chans);
193 QStringList chs = chans.split(
", ", QString::SkipEmptyParts);
195 foreach(QString ch, chs) {
196 QString cht = ch.trimmed();
197 QString res =
sendQuery(tr(
"\"%1.PID.Mode?\"").arg(cht));
199 channels.append(ch.trimmed());
201 if (res.startsWith(
"Error")) {
202 inputChannels.append(cht);
204 outputChannels.append(cht);
208 set_Channels(channels);
209 set_InputChannels(inputChannels);
210 set_OutputChannels(outputChannels);
216 res.append(
"Minutes");
217 res.append(
"Seconds");
218 res.append(
"Temperature");
219 res.append(
"Output");
220 res.append(
"Set Point");
221 res.append(
"Ramp Point");
222 res.append(channels);
234 if (QThread::currentThread() != thread()) {
235 QMetaObject::invokeMethod(
this,
"updateChannelList", Qt::BlockingQueuedConnection);
237 if (
commPort()->successfullyConnected()) {
238 QString res =
sendQuery(
"getOutput.names");
251 if (str != get_UnitsList()) {
256 QStringList us = str.split(
", ");
258 foreach(QString u, us) {
259 units.append(u.trimmed());
262 set_ChannelUnits(units);
265 printMessage(tr(
"parseUnitsList: %1").arg(str.trimmed()));
272 QStringList vs = str.split(
", ");
274 foreach(QString v, vs) {
275 vals.append(v.toDouble());
278 set_ChannelValues(vals);
281 printMessage(tr(
"parseOutputValues: %1").arg(str.trimmed()));
294 property->setValue(res.toDouble()*scale);
307 property->setValue(!res.startsWith(
"Off"));
320 property->setValue(res.trimmed());
330 if (QThread::currentThread() != thread()) {
338 commPort()->write(qPrintable(cmd+
"\n"));
339 commPort()->waitForBytesWritten(1000);
363 if (QThread::currentThread() != thread()) {
368 commPort()->write(qPrintable(cmd+
"\n"));
369 commPort()->waitForBytesWritten(1000);
397 QString onStr = (on ?
"On" :
"Off");
406 QString onStr = (on ?
"On" :
"Off");
426 QDateTime ts(QDateTime::currentDateTime());
428 vals.append(ts.toTime_t());
429 vals.append(ts.date().day());
430 vals.append(ts.time().hour());
431 vals.append(ts.time().minute());
432 vals.append(ts.time().second());
435 vals.append(ctl->get_Temperature());
436 vals.append(ctl->get_OutputLevel());
437 vals.append(ctl->get_SetPoint());
438 vals.append(ctl->get_RampPoint());
446 vals.append(get_ChannelValues());
455 QDateTime ts(QDateTime::currentDateTime());
457 vals.append(ts.toTime_t());
458 vals.append(ts.date().day());
459 vals.append(ts.time().hour());
460 vals.append(ts.time().minute());
461 vals.append(ts.time().second());
464 vals.append(ctl->get_Temperature());
465 vals.append(ctl->get_OutputLevel());
466 vals.append(ctl->get_SetPoint());
467 vals.append(ctl->get_RampPoint());
475 vals.append(get_ChannelValues());
484 commPort()->write(qPrintable(cmd+
"\n"));
492 QString r1 =
commPort()->readLine(1000);
QString inputChannelUnits()
QString inputChannelName()
void queryProperty(QString qry, QcepDoubleProperty *property, double scale=1.0)
QPidControllerWPtr controller() const
void onInputChannelChanged()
virtual void writeSettings(QSettings *set, QString section)
void configurationDialog()
QWeakPointer< QPidController > QPidControllerWPtr
QPidObjectNamer m_ObjectNamer
virtual void readSettings(QSettings *set, QString section)
void graphedChannelValues(QcepDoubleList values)
QSharedPointer< QPidController > QPidControllerPtr
QcepStringList inputChannels
void graphedChannelNames(QStringList names)
QString sendQuery(QString cmd)
void onOutputChannelChanged()
void changeDerivative(double deriv)
void parseOutputValues(QString chans)
virtual int canReadLine()
void loggedChannelNames(QStringList names)
void changeSetPoint(double setPoint)
void changeRampRate(double rate)
QString outputChannelName()
virtual int waitForReadyRead(int tmout=0)
virtual void writeSettings(QSettings *set, QString section)
void changeIntegral(double integ)
QString outputChannelUnits()
void parseChannelList(QString chans)
void sendCommand(QString cmd)
QPTC10DeviceDialogPtr m_DeviceDialog
QPTC10Device(QPidControllerWPtr ctrl, QcepSettingsSaverWPtr saver, QString deviceName)
QPidCommPortPtr commPort()
QSharedPointer< QPTC10DeviceDialog > QPTC10DeviceDialogPtr
virtual void readSettings(QSettings *set, QString section)
void parseUnitsList(QString chans)
void inputChannelChanged(QString name, QString units)
QSharedPointer< QPTC10Device > QPTC10DevicePtr
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
void outputChannelChanged(QString name, QString units)
void changeProportional(double prop)
QcepStringList outputChannels
void ptc10test(QString cmd)
void loggedChannelValues(QcepDoubleList values)