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++

#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