PunchHMI/machine/lotmachine.h
2024-02-06 14:58:57 +08:00

74 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef LOTMACHINE_H
#define LOTMACHINE_H
#include "gatewaytcpclient.h"
#include "comport.h"
#include "comm/typedef.h"
#include <QThread>
#include <QTimer>
#include <QDebug>
#include <QStringList>
#define USE_TCP_COMM 0
#define USE_SERIAL_COMM 1
class LotMachine: public QObject
{
Q_OBJECT
public:
explicit LotMachine(QObject *parent = NULL);
virtual ~LotMachine();
public:
void initConnectMode(s16 val = 0);//初始化通讯连接方式
void setConfigFileName(QString configfilename);
void setComportName(QString portName);//设置串口名称
QString getConfigFileName();
int startCommunication();
private:
QString m_configFileName;
QByteArray m_receiveBuff;//接收到的buf
QByteArray m_keyBuff;//键值对buf
s16 m_reFlag;
private:
s16 m_connectMode; //通讯连接方式 0:网口1:串口
// 通讯线程和网络连接
QThread * m_pTcpThread;
GatewayTcpClient * m_pTcpClient;
QThread * m_pComThread;
ComPort * m_pComPort;
// 连接
public:
inline int isConnected() const { return m_connected; }
private:
int m_startComm;
int m_connected; // 机器连接状态. 0, 未连接; 1, 连接中; 2,
signals: // 发送数据到机器的信号
void siSendData(QByteArray dat);
void siRunLotDataAction(QString cmd);//执行物联网数据动作
void siConnectToMqtt();//与网关已连接
private slots: // 和线程通讯的槽
void slotConnectSta(int sta); // 连接状态改变的槽函数
void slotConnectErr(QString errinfo); // 接收到通讯错误槽函数
void slotReceiveData(QByteArray dat); // 接收到数据的槽函数
void slotIfOpenSerialPort(int val);//串口是否打开
private:
QString getJsonValue(QString name1,QString name2 = NULL);//获取键值对属性值
public:
void sendLotDataToGateway(QString str);//发送物联数据到网关
};
#endif // LOTMACHINE_H