You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.4 KiB
C++
122 lines
2.4 KiB
C++
#ifndef CLIENT_H
|
|
#define CLIENT_H
|
|
|
|
#define CPPHTTPLIB_OPENSSL_SUPPORT
|
|
#include <httplib.h>
|
|
#include <json.hpp>
|
|
|
|
#include <codecvt>
|
|
#include <string>
|
|
#include <iostream>
|
|
#include <httplib.h>
|
|
#include <QString>
|
|
|
|
using namespace std;
|
|
|
|
void delNameFromList(QString element);
|
|
|
|
class FlangeClass // 法兰类
|
|
{
|
|
public:
|
|
int errorCode;
|
|
QString flangeId;
|
|
QString errorInfo;
|
|
QString fanCode;
|
|
QString flangeState;
|
|
std::map<QString, QString> features;
|
|
};
|
|
|
|
class HeadroomClass // 净空类
|
|
{
|
|
public:
|
|
int errorCode;
|
|
int flangeId;
|
|
QString errorInfo;
|
|
QString fanCode;
|
|
QString featureName;
|
|
double featureValue = 0;
|
|
};
|
|
|
|
class GyroClass // 陀螺仪类
|
|
{
|
|
public:
|
|
int errorCode;
|
|
int flangeId;
|
|
QString errorInfo;
|
|
QString fanCode;
|
|
QString featureName;
|
|
double featureValue;
|
|
};
|
|
|
|
class FanClass // 风机类
|
|
{
|
|
public:
|
|
int errorCode;
|
|
int fanId;
|
|
double angle = 0; // 角度
|
|
double distance = 0; // 相对距离
|
|
QString errorInfo;
|
|
QString fanCode;
|
|
QString flangeState;
|
|
QString headroomState;
|
|
QString gyroState;
|
|
std::map<QString, FlangeClass> flanges;
|
|
std::vector<GyroClass> gyros;
|
|
std::vector<HeadroomClass> headrooms;
|
|
};
|
|
|
|
|
|
|
|
|
|
class FanManage // 所有风机管理类
|
|
{
|
|
public:
|
|
std::map<QString, FanClass> allFans; // 所有风机
|
|
std::map<int, FanClass> idMaps; // 根据ID获取风机
|
|
std::map<QString, QString> states; // 风机状态
|
|
std::vector<QString> interruptedFans; // 通讯中断
|
|
std::vector<QString> standbyFans; // 待机等风
|
|
std::vector<QString> normalFans; // 正常运行
|
|
std::vector<QString> hutdownFans; // 停机维护
|
|
std::vector<QString> failureFans; // 故障停机
|
|
std::vector<QString> runFans; // 启动
|
|
};
|
|
|
|
|
|
|
|
class HTTPClient
|
|
{
|
|
private:
|
|
httplib::Headers header;
|
|
string loginIndex;
|
|
string fanListIndex;
|
|
string headroomDetailIndex;
|
|
string gyroDetailIndex;
|
|
string featureHistoryIndex;
|
|
string flangeIndex;
|
|
|
|
public:
|
|
int curFanId;
|
|
QString curFlangeId;
|
|
httplib::Client client;
|
|
HTTPClient();
|
|
void getFanList();
|
|
void getFlangeList(int fanId);
|
|
void getHeadroomList(int fanId);
|
|
void getGyroList(int fanId);
|
|
QString getHistoryList(int fanId);
|
|
};
|
|
|
|
extern HTTPClient httpClient;
|
|
extern FanManage fans;
|
|
|
|
|
|
|
|
|
|
|
|
#endif // CLIENT_H
|
|
|
|
|
|
|
|
|