-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.h
100 lines (74 loc) · 2.29 KB
/
controller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <stdint.h>
#include <QObject>
#include <QtSerialPort/QSerialPort>
#include <QTcpSocket>
#include "ip_connection.h"
#include "tests.h"
#include "collimatorsset.h"
#include "trajectory.h"
class Tests;
class IP_Connection;
class Controller : public QObject
{
Q_OBJECT
public:
explicit Controller(QObject *parent = 0);
~Controller();
Tests *TestObject;
int IsConnected();
int Connect();
void Disconnect();
void SetIPAddress(const QString &ipaddress);
void TalkToBoard(const QString &sendPhrase);
void ResetMotorsData(int setID);
void SetMotorCoordinate(int setID, int motorID, const QString &coord_mm);
void GetMotorCoordinate(int setID, int motorID);
void Reset(int setID, int motorID);
void ResetAll(int setID);
void SetPulses(int setID, int motorID, const QString &width, const QString &period);
uint16_t ShowMotorCoordinate(int setID, int motorID);
QStringList GetSerialPorts();
bool ConnectHV(const QString& name, int baud);
bool HVConnented();
void DisconnectHV();
QByteArray GetHV();
QByteArray GetHVCurrent();
bool IsMagnetConnected();
bool ConnectMagnet();
void SetMagnetIPAddress(const QString &ipaddress);
bool MagnetOutputStatus();
void MagnetOutputOn();
void MagnetOutputOff();
private:
IP_Connection* PCB;
CollimatorsSet** colSets;
QString GenerateCoordinate(const QString &coord_mm, int setID, int motorID);
int ValidateResponse(const QByteArray &response);
QByteArray InitResponse();
Trajectory* traj;
QSerialPort* HighVoltage;
QTcpSocket* magnet;
QString magnetIP;
int magnetPort;
QTimer* magnetTimer;
private slots:
void UpdateHighVoltageData();
void UpdateMagnetData();
signals:
void MotorCoordinateChanged(int setID, int motorID, uint16_t newCoordinate);
void Connected();
void Disconnected();
void WriteToTerminal(QString data);
void HighVoltageDataUpdated(float voltage, float current);
void MagnetConnected();
void MagnetDataReceived(float u, float i);
public slots:
void dataReceived();
void SetHV(int voltage);
void SetHVPolarity(QChar p);
void SetMagnetVoltage(float u);
void SetMagnetCurrent(float i);
};
#endif // CONTROLLER_H