qpidctrl  0.7.1
qpidcontroller.h
Go to the documentation of this file.
1 #ifndef QPIDCONTROLLER_H
2 #define QPIDCONTROLLER_H
3 
4 #include <QObject>
5 #include <QTimer>
6 #include "qcepproperty.h"
7 #include "qpiddevice.h"
8 #include "qpiddevice-ptr.h"
9 #include "qpiddevicethread-ptr.h"
10 #include "qpidobjectnamer.h"
11 #include "qpidserver-ptr.h"
12 #include "qpidserversession-ptr.h"
13 #include "qpidserverthread-ptr.h"
14 #include "qpidloggerthread-ptr.h"
15 #include "qpidlogger-ptr.h"
16 #include "qpidmainwindow-ptr.h"
17 #include "qpidscriptengine-ptr.h"
18 #include "qpidscriptengine.h"
19 #include "qcepsettingssaver-ptr.h"
20 #include "qcepsettingssaver.h"
21 #include "qpidsettings.h"
22 
23 class QPidController : public QObject
24 {
25  Q_OBJECT
26 public:
27  explicit QPidController(QObject *parent = 0);
28  virtual ~QPidController();
29  void start(QPidMainWindowWPtr window, QPidControllerWPtr ctrl);
30 
31 signals:
32  void deviceListChanged();
33  void historyDataChanged();
34  void executeCommandResult(QScriptValue val);
35 
36 public slots:
38  QPidDevicePtr getDevice(int dev) const;
39  void setDefaultDevice(int dev);
40  int defaultDeviceNumber() const;
41 
42  void setDeviceName(int dev, QString name);
43  void configurationDialog(int dev);
44 
45  QScriptValue device(int i) const;
46 
47  void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime());
48  void criticalMessage(QString msg);
49 
50  void onDeviceReady();
51  void writeSettings();
52  void readSettings();
53  void loadSettings(QString filePath);
54  void saveSettings(QString filePath);
55  QString settingsFilePath() const;
56  void setSettingsFilePath(QString filePath);
57 
58  void debugChanged(int dbg);
59 
60  void executeCommand(QString cmd);
61  void executeServerCommand(QPidServerSessionWPtr wksess, QString cmd);
62 
63  void listSerialPorts();
64 
65  void updateConnected(bool newConnected);
66  void updateTemperature(double newTemperature);
67  void updateRampPoint(double newRampPoint);
68  void updateOutputLevel(double newOutputLevel);
69 
70  void sendCommand(QString cmd);
71  void autoTune();
72 
73  void onLoggedChannelNames(QStringList names);
74  void onLoggedChannelValues(QcepDoubleList values);
75 
76  void onGraphedChannelNames(QStringList names);
77  void onGraphedChannelValues(QcepDoubleList values);
78 
79  void appendDevice(int deviceKind, QString deviceName);
80  void clearDevices();
81  int countDevices();
82 
83  void deleteDevices(QVector<int> devList);
84 
85  void startController();
86  void stopController();
87  void restartController();
88  void pauseController();
89  void resumeController();
90 
91  void onDefaultDeviceChanged(int dev);
92 
93  void startRampSoakCool();
94  void cancelRampSoakCool();
95 
96 private slots:
97  void onRampSoakTimer();
98 
99 public:
100  void writeSettings(QPidSettings *settings);
101  void readSettings(QPidSettings *settings);
102  QcepSettingsSaverPtr saver();
105 
106  static double nan();
107 
108  Qt::CheckState yChecked(int col);
109  Qt::CheckState y2Checked(int col);
110 
111  void setYChecked(int col, Qt::CheckState state);
112  void setY2Checked(int col, Qt::CheckState state);
113 
114  typedef enum {
123 
124  QString controllerStatusString(int status);
125 
126 private:
129  QcepSettingsSaverPtr m_Saver;
130 
131 public:
132  Q_PROPERTY(int debug READ get_Debug WRITE set_Debug)
133  QCEP_INTEGER_PROPERTY(Debug)
134 
135  Q_PROPERTY(int controllerStatus READ get_ControllerStatus WRITE set_ControllerStatus STORED false)
136  QCEP_INTEGER_PROPERTY(ControllerStatus)
137 
138  Q_PROPERTY(bool connected READ get_Connected WRITE set_Connected)
139  QCEP_BOOLEAN_PROPERTY(Connected)
140 
141  Q_PROPERTY(int defaultDeviceNumber READ get_DefaultDeviceNumber WRITE set_DefaultDeviceNumber)
142  QCEP_INTEGER_PROPERTY(DefaultDeviceNumber)
143 
144  Q_PROPERTY(double temperature READ get_Temperature WRITE set_Temperature STORED false)
145  QCEP_DOUBLE_PROPERTY(Temperature)
146 
147  Q_PROPERTY(double rampPoint READ get_RampPoint WRITE set_RampPoint STORED false)
148  QCEP_DOUBLE_PROPERTY(RampPoint)
149 
150  Q_PROPERTY(double setPoint READ get_SetPoint WRITE set_SetPoint)
151  QCEP_DOUBLE_PROPERTY(SetPoint)
152 
153  Q_PROPERTY(double rampRate READ get_RampRate WRITE set_RampRate)
154  QCEP_DOUBLE_PROPERTY(RampRate)
155 
156  Q_PROPERTY(double heatSetPoint READ get_HeatSetPoint WRITE set_HeatSetPoint)
157  QCEP_DOUBLE_PROPERTY(HeatSetPoint)
158 
159  Q_PROPERTY(double heatRampRate READ get_HeatRampRate WRITE set_HeatRampRate)
160  QCEP_DOUBLE_PROPERTY(HeatRampRate)
161 
162  Q_PROPERTY(double soakTime READ get_SoakTime WRITE set_SoakTime)
163  QCEP_DOUBLE_PROPERTY(SoakTime)
164 
165  Q_PROPERTY(double coolRampRate READ get_CoolRampRate WRITE set_CoolRampRate)
166  QCEP_DOUBLE_PROPERTY(CoolRampRate)
167 
168  Q_PROPERTY(double proportional READ get_Proportional WRITE set_Proportional STORED false)
169  QCEP_DOUBLE_PROPERTY(Proportional)
170 
171  Q_PROPERTY(double integral READ get_Integral WRITE set_Integral STORED false)
172  QCEP_DOUBLE_PROPERTY(Integral)
173 
174  Q_PROPERTY(double derivative READ get_Derivative WRITE set_Derivative STORED false)
175  QCEP_DOUBLE_PROPERTY(Derivative)
176 
177  Q_PROPERTY(double outputLevel READ get_OutputLevel WRITE set_OutputLevel STORED false)
178  QCEP_DOUBLE_PROPERTY(OutputLevel)
179 
180  Q_PROPERTY(bool enabled READ get_Enabled WRITE set_Enabled)
181  QCEP_BOOLEAN_PROPERTY(Enabled)
182 
183  Q_PROPERTY(bool loopEnabled READ get_LoopEnabled WRITE set_LoopEnabled)
184  QCEP_BOOLEAN_PROPERTY(LoopEnabled)
185 
186  Q_PROPERTY(QStringList columnNames READ get_ColumnNames WRITE set_ColumnNames)
187  QCEP_STRING_LIST_PROPERTY(ColumnNames)
188 
189  Q_PROPERTY(int selectionCounter READ get_SelectionCounter WRITE set_SelectionCounter)
190  QCEP_INTEGER_PROPERTY(SelectionCounter)
191 
192  Q_PROPERTY(int graphLength READ get_GraphLength WRITE set_GraphLength)
193  QCEP_INTEGER_PROPERTY(GraphLength)
194 
195  Q_PROPERTY(double graphInterval READ get_GraphInterval WRITE set_GraphInterval)
196  QCEP_DOUBLE_PROPERTY(GraphInterval)
197 
198  Q_PROPERTY(QByteArray windowGeometry READ get_WindowGeometry WRITE set_WindowGeometry)
199  QCEP_BYTE_ARRAY_PROPERTY(WindowGeometry)
200 
201  Q_PROPERTY(QByteArray windowState READ get_WindowState WRITE set_WindowState)
202  QCEP_BYTE_ARRAY_PROPERTY(WindowState)
203 
204  Q_PROPERTY(QString settingsPath READ get_SettingsPath WRITE set_SettingsPath STORED false)
205  QCEP_STRING_PROPERTY(SettingsPath)
206 
207 private:
216  QMap<QString,int> m_ColumnSelections;
218 
219 public:
220  QList<QVector<double> > m_PlottedValues;
221 
223 };
224 
225 #endif // QPIDCONTROLLER_H
void onGraphedChannelNames(QStringList names)
void setYChecked(int col, Qt::CheckState state)
void setSettingsFilePath(QString filePath)
void executeServerCommand(QPidServerSessionWPtr wksess, QString cmd)
QVector< QPidDeviceThreadPtr > m_DeviceThreads
QPidLoggerThreadPtr m_LoggerThread
QSharedPointer< QPidDevice > QPidDevicePtr
Definition: qpiddevice-ptr.h:6
QTimer m_RampSoakTimer
QWeakPointer< QPidController > QPidControllerWPtr
QByteArray windowState
QWeakPointer< QPidServerSession > QPidServerSessionWPtr
void onGraphedChannelValues(QcepDoubleList values)
void executeCommandResult(QScriptValue val)
QPidObjectNamer m_ObjectNamer
QSharedPointer< QPidLogger > QPidLoggerPtr
Definition: qpidlogger-ptr.h:6
QPidMainWindowWPtr m_MainWindow
QcepSettingsSaverPtr saver()
QString settingsFilePath() const
static double nan()
QPidDevicePtr defaultDevice() const
QVector< QPidDevicePtr > m_Devices
void setDefaultDevice(int dev)
QSharedPointer< QPidScriptEngine > QPidScriptEnginePtr
Qt::CheckState yChecked(int col)
void onLoggedChannelValues(QcepDoubleList values)
QSharedPointer< QPidDeviceThread > QPidDeviceThreadPtr
void executeCommand(QString cmd)
void configurationDialog(int dev)
void historyDataChanged()
QString controllerStatusString(int status)
void setDeviceName(int dev, QString name)
QPidServerPtr m_Server
void updateOutputLevel(double newOutputLevel)
QPidLoggerPtr logger()
void deleteDevices(QVector< int > devList)
void deviceListChanged()
QPidDevicePtr getDevice(int dev) const
QString m_SettingsFilePath
QScriptValue device(int i) const
void updateTemperature(double newTemperature)
void start(QPidMainWindowWPtr window, QPidControllerWPtr ctrl)
void onLoggedChannelNames(QStringList names)
void sendCommand(QString cmd)
QcepSettingsSaverPtr m_Saver
virtual ~QPidController()
void appendDevice(int deviceKind, QString deviceName)
QPidScriptEnginePtr m_ScriptEngine
void debugChanged(int dbg)
QSharedPointer< QPidLoggerThread > QPidLoggerThreadPtr
void criticalMessage(QString msg)
void updateRampPoint(double newRampPoint)
void saveSettings(QString filePath)
QMap< QString, int > m_ColumnSelections
QByteArray windowGeometry
QPidLoggerPtr m_Logger
void onDefaultDeviceChanged(int dev)
QString settingsPath
QStringList columnNames
void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime())
void setY2Checked(int col, Qt::CheckState state)
QList< QVector< double > > m_PlottedValues
void loadSettings(QString filePath)
QPidServerPtr server()
void updateConnected(bool newConnected)
QPidController(QObject *parent=0)
int defaultDeviceNumber() const
QPidServerThreadPtr m_ServerThread
QSharedPointer< QPidServer > QPidServerPtr
Definition: qpidserver-ptr.h:6
Qt::CheckState y2Checked(int col)
QSharedPointer< QPidServerThread > QPidServerThreadPtr