195 lines
4.9 KiB
C++
195 lines
4.9 KiB
C++
#ifndef _BFFTPFILE_ISSMQTT_PROCESS_H_
|
|
#define _BFFTPFILE_ISSMQTT_PROCESS_H_
|
|
|
|
#include "process.h"
|
|
#include "mqtt/mosquitto.h"
|
|
#include "json/json.h"
|
|
|
|
#pragma pack(1)
|
|
typedef struct {
|
|
short iTurbineOperationMode;
|
|
short iBPLevel;
|
|
short iYPLevel;
|
|
BYTE bDQ_NacelleStartYawCCW;
|
|
BYTE bDQ_NacelleStartYawCW;
|
|
float rGenPowerForProcess;
|
|
float rGenPowerForProcess_1sec;
|
|
float rGenPowerForProcess_30sec;
|
|
float rGenSpeedPDM;
|
|
float rGenSpeedPDM_1sec;
|
|
float rGenSpeedPDM_30sec;
|
|
float rPitchAngle;
|
|
float rPitchAngle_1sec;
|
|
float rPitchAngle_30sec;
|
|
float rWindSpeed;
|
|
float rWindSpeed_1sec;
|
|
float rWindSpeed_30sec;
|
|
float rCosPhi_KL3403;
|
|
float rReactivePower_KL3403;
|
|
float rFrequency_690V_KL3403;
|
|
float rUL1_690V_KL3403;
|
|
float rUL2_690V_KL3403;
|
|
float rUL3_690V_KL3403;
|
|
float rIL1_690V_KL3403;
|
|
float rIL2_690V_KL3403;
|
|
float rIL3_690V_KL3403;
|
|
float rActivePowerSetPointValue;
|
|
float rSetValueGenSpeed;
|
|
float rSetValuePitchAngle;
|
|
float rNacellePositionLtd;
|
|
float rCableTwistTotal;
|
|
float rNacellePositionTotal;
|
|
float rVaneDirection_1sec;
|
|
float rAvailabillityToday;
|
|
float rAvailabillityTotal;
|
|
float rCosPhiSetValue;
|
|
LONG iPAR_iKWhOverall;
|
|
LONG iPAR_iKWhThisDay;
|
|
DWORD wOperationHoursOverall;
|
|
DWORD wOperationHoursDay;
|
|
WORD SCW001;
|
|
WORD SCW002;
|
|
WORD SCW003;
|
|
WORD SCW004;
|
|
WORD SCW005;
|
|
WORD SCW006;
|
|
WORD SCW007;
|
|
WORD SCW008;
|
|
WORD SCW009;
|
|
WORD SCW010;
|
|
WORD SCW011;
|
|
WORD SCW012;
|
|
WORD SCW013;
|
|
WORD SCW014;
|
|
WORD SCW015;
|
|
WORD SCW016;
|
|
WORD SCW017;
|
|
WORD SCW018;
|
|
WORD SCW019;
|
|
WORD SCW020;
|
|
WORD SCW021;
|
|
WORD SCW022;
|
|
WORD SCW023;
|
|
WORD SCW024;
|
|
WORD SCW025;
|
|
WORD SCW026;
|
|
WORD SCW027;
|
|
WORD SCW028;
|
|
WORD SCW029;
|
|
WORD SCW030;
|
|
WORD SCW031;
|
|
WORD SCW032;
|
|
WORD SCW033;
|
|
WORD SCW034;
|
|
WORD SCW035;
|
|
WORD SCW036;
|
|
WORD SCW037;
|
|
WORD SCW038;
|
|
WORD SCW039;
|
|
WORD SCW040;
|
|
WORD SCW041;
|
|
DWORD wWecRunContion;
|
|
DWORD wFaultInformation;
|
|
DWORD wTriggerSCAdress;
|
|
float rWindSpeed_IEC;
|
|
float rWindSpeed_IEC_30sec;
|
|
float rWindSpeed_IEC_10min;
|
|
float rRotorSpeedPDM;
|
|
float rCurrentVibrationY_PCH;
|
|
float rCurrentVibrationZ_PCH;
|
|
float rFilteredVibrationY_PCH;
|
|
float rFilteredVibrationZ_PCH;
|
|
float rStandardDensity;
|
|
float rAirDensity;
|
|
float rWindSpeed_Local;
|
|
float rDynamicpowerCalcValue;
|
|
float rPowerSetpoint_flag;
|
|
float rPitchAngleBlade1;
|
|
float rPitchAngleBlade2;
|
|
float rPitchAngleBlade3;
|
|
float iPMMAxis1_Health;
|
|
float iPMMAxis2_Health;
|
|
float iPMMAxis3_Health;
|
|
float rPMMAxis1InternalR;
|
|
float rPMMAxis2InternalR;
|
|
float rPMMAxis3InternalR;
|
|
float rPMMAxis1ActualBatteryVoltage;
|
|
float rPMMAxis2ActualBatteryVoltage;
|
|
float rPMMAxis3ActualBatteryVoltage;
|
|
} struFileData;
|
|
#pragma pack()
|
|
|
|
class CBFFTPFile2ISSMQTTProcessItem : public CProcessItem
|
|
{
|
|
public:
|
|
CBFFTPFile2ISSMQTTProcessItem();
|
|
virtual ~CBFFTPFile2ISSMQTTProcessItem();
|
|
|
|
virtual void Attach(int uid, int sock, BYTE* peer_addr, WORD peer_port);
|
|
virtual void Release(void);
|
|
public:
|
|
BOOLEAN m_bAdded; //设备已经添加
|
|
char nodeId[MAX_ID_LENGTH];
|
|
char deviceId[MAX_ID_LENGTH];
|
|
char manufacturerId[MAX_ID_LENGTH];
|
|
char model[MAX_ID_LENGTH];
|
|
};
|
|
|
|
class CBFFTPFile2ISSMQTTProcess : public CProcess
|
|
{
|
|
private:
|
|
time_t last_sec;
|
|
int m_mid;
|
|
LONG connect_begin;
|
|
DWORD m_nCount;
|
|
DWORD m_last_sec;
|
|
char m_file_dir[MAX_PATH];
|
|
int countFilesInDirectory(const char*);
|
|
int countFilesByTypeInDirectory(const char*, const char*);
|
|
public:
|
|
struct mosquitto* m_mosq;
|
|
struISSMQTTOption issmqttOption;
|
|
|
|
std::string m_deviceID;
|
|
char subscribe_topic[256];
|
|
char publish_topic[256];
|
|
|
|
private:
|
|
BOOLEAN connected;
|
|
|
|
Json::Int64 m_terminalIrn;
|
|
Json::Int64 *m_irns;
|
|
short m_dataCount;
|
|
float *m_dataValues;
|
|
|
|
public:
|
|
CBFFTPFile2ISSMQTTProcess();
|
|
virtual ~CBFFTPFile2ISSMQTTProcess();
|
|
|
|
BOOLEAN OnPreCreate(int id);
|
|
void Destroy(void);
|
|
BOOLEAN Run(void);
|
|
BOOLEAN OnTimer(void);
|
|
|
|
virtual CProcessItem *CreateItem(int ord);
|
|
virtual void DestroyItem(int ord, BOOLEAN bDeleted = FALSE);
|
|
|
|
BOOLEAN OnReceiveSubscribeTopic(Json::Value);
|
|
BOOLEAN OnReceivedDeviceCommand(Json::Value);
|
|
BOOLEAN OnReceivedSystemAction(Json::Value);
|
|
|
|
BOOLEAN publishFrame(const char*, Json::Value);
|
|
BOOLEAN publishRealData(Json::Int64);
|
|
BOOLEAN publishMonHeartBeat(void);
|
|
|
|
void on_connect(int);
|
|
void on_disconnect(int);
|
|
void on_publish(int);
|
|
void on_subscribe(int, int, const int*);
|
|
void on_message(const struct mosquitto_message*);
|
|
void on_log(int, const char*);
|
|
};
|
|
|
|
#endif //_BFFTPFILE_ISSMQTT_PROCESS_H_
|
|
|