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.

105 lines
2.0 KiB
C++

#ifndef HOTCAMERAMODULE_H
#define HOTCAMERAMODULE_H
#include <QObject>
#include <QByteArray>
#include <QNetworkAccessManager>
struct HotCameraPara
{
QString IP_Adress;
int month;
int week;
int day;
int start_hour;
int start_minute;
int end_hour;
int end_minute;
int reflectivetemperature ;
float emissivity ;
int distant ;
int alert ;
int alarm ;
int alarm_time;
uint32_t nominal_capacity;
uint32_t calculated_capacity;
};
class MyNetManager;
class QTimer;
class HotCameraModule : public QObject
{
Q_OBJECT
typedef void (*ModuleNetProcess)();
public:
explicit HotCameraModule(int id, QObject *parent = nullptr);
virtual ~HotCameraModule();
signals:
void sigRunTimeChanged();
public slots:
/**
* @brief 手动热成像抓图
*/
void onSavePicture(QByteArray & d);
/**
* @brief 获取实时温度解析存储
*/
void onSaveTemperature(QByteArray & d);
/**
* @brief 温度告警处理
* @param temp
*/
void onTempAlarm(float temp);
/**
* @brief 通信终端告警
*/
void onConnectBrokeAlarm();
private slots:
void appTimerProcess();
private:
//热成像开启或关闭
int id;
bool module_enabled = false;
bool TempAlarmFlag = false;
MyNetManager * net;
HotCameraPara para;
//QString SaveTempPictureFileName;//最近存储的温度图片文件名
//热成像参数初始化
void moduleParaReadFromFile(HotCameraPara *p);
//通知抓图完成
void notifyCapPictureFinished(const QString &pic_name);
QTimer *appTimer;
bool eventParaChangedCheck();
bool eventCapPictureCheck();
bool eventGetTemperatureCheck(); //获取实时温度
bool eventTimeChangeCheck();
bool eventConnectTimeCheck();
bool eventConnectBrokeAlarmCheck();
bool eventConnectSwitch();
void moduleConnect();
void modleDisConnect();
bool removeTempAlarmFile();
};
#endif // HOTCAMERAMODULE_H