51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
|
|
#ifndef BELTTEARINGPRESENTER_H
|
||
|
|
#define BELTTEARINGPRESENTER_H
|
||
|
|
|
||
|
|
#include "IVrBeltTearingConfig.h"
|
||
|
|
#include "VrTcpClient.h"
|
||
|
|
#include <QObject>
|
||
|
|
#include <QString>
|
||
|
|
#include "widgets/DeviceStatusWidget.h"
|
||
|
|
|
||
|
|
class BeltTearingPresenter : public QWidget
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
public:
|
||
|
|
explicit BeltTearingPresenter(QWidget* parent = nullptr);
|
||
|
|
~BeltTearingPresenter();
|
||
|
|
|
||
|
|
void Init();
|
||
|
|
|
||
|
|
QStringList getServerNames() const;
|
||
|
|
QString getServerIp(const QString &serverName) const ;
|
||
|
|
quint16 getServerPort(const QString &serverName) const ;
|
||
|
|
QString getServerDisplayName(const QString &serverName) const ;
|
||
|
|
|
||
|
|
// 设置设备状态控件
|
||
|
|
void setDeviceStatusWidget(DeviceStatusWidget* widget) { m_deviceStatusWidget = widget; }
|
||
|
|
|
||
|
|
private:
|
||
|
|
// IBeltTearingPresenter interface implementation
|
||
|
|
bool initializeConfig(const QString &configPath);
|
||
|
|
bool connectToServer(const ServerInfo &serverInfo, const QString &serverName = QString());
|
||
|
|
void disconnectFromServer(const QString &serverName = QString()) ;
|
||
|
|
bool isConnected(const QString &serverName = QString()) const ;
|
||
|
|
bool sendData(const QByteArray &data, const QString &serverName = QString());
|
||
|
|
|
||
|
|
|
||
|
|
private slots:
|
||
|
|
void onConnected(const QString &serverName);
|
||
|
|
void onDisconnected(const QString &serverName);
|
||
|
|
void onDataReceived(const QString &serverName, const QByteArray &data);
|
||
|
|
void onTcpError(const QString &serverName, const QString &error);
|
||
|
|
|
||
|
|
private:
|
||
|
|
|
||
|
|
IVrBeltTearingConfig * m_config;
|
||
|
|
DeviceStatusWidget* m_deviceStatusWidget; // 设备状态控件
|
||
|
|
QMap<QString, VrTcpClient*> m_tcpClients; // 服务器名称 -> TCP客户端映射
|
||
|
|
QMap<QString, ServerInfo> m_serverInfos; // 服务器名称 -> 服务器信息映射
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // BELTTEARINGPRESENTER_H
|