105 lines
3.4 KiB
C
Raw Normal View History

2025-03-12 11:08:50 +08:00
/**
@file AiProcess.h
@brief
@author
*/
#pragma once
#include "MixStructDefine.h"
#include "CommStructDefine.h"
#include "service/common/RdbTableDefine.h"
#include "service/common/CommonDefine.h"
#include "rdb_api/RdbTableMng.h"
#include "data_process_api/DataProcessApi.h"
#include "PointBase.h"
2025-03-12 14:17:01 +08:00
namespace iot_service
2025-03-12 11:08:50 +08:00
{
class CMixProcess :public CPointBase
{
public:
2025-03-12 14:17:01 +08:00
CMixProcess(iot_public::SRunAppInfo stRunAppInfo,\
2025-03-12 11:08:50 +08:00
CDataProcessApiPtr ptrDataProcApi,\
CSrvDataPublishPtr ptrDataPublish);
~CMixProcess();
private:
SSysInfo m_stSysInfo;
int64 m_lCurTime;
std::string m_strSourceTagLocal;
std::string m_strSrcTagRecv;
std::string m_strSourceTag;
SChangeMixInfo m_stChangeMixInfo;
bool m_bIsMiGkOff ;
public:
/**
@brief ANN
@param
@return true false
@retval
*/
bool initialize();
/**
@brief
@param
@return true false
@retval
*/
int initPara();
/**
@brief
@param chgAiPkg
@return true false
@retval
*/
2025-03-12 14:17:01 +08:00
int procMixChange(const iot_idl::SFesChangeMiPkg &stFesChgMixPkg);
2025-03-12 11:08:50 +08:00
/**
@brief
@param chgAiPkg
@return true false
@retval
*/
2025-03-12 14:17:01 +08:00
int procMixUpdate(const iot_idl::SFesUpdateMiPkg &stFesUpMixPkg);
2025-03-12 11:08:50 +08:00
/**
@brief
@param stOptSetDataPkg OPT设置结构体
@return true false
*/
2025-03-12 14:17:01 +08:00
int processOperate(const iot_idl::SOptSetDataPkg &stOptSetDataPkg,const int nOperateType);
2025-03-12 11:08:50 +08:00
private:
//AI/AO
//==========================================================================================
void initChangeMixInfo();
bool checkNewValue(const int &newValue);
//bool findAoCtrl(const char *strPointName, const float &fCurValue, const int &nReportType);
//Mix
//==========================================================================================
int getMixAlarmDesc(std::string &strAlarm,const std::string &strTagName,const std::string& strDevTagName,\
const std::string& strStatusText,const int nDescFlag= ALARM_DESC_POINT_FLAG);
int procOneMixChange( SChangeMixData &stChangeMixData, const int nUpdataType, const int nOptType,
SMiOldValueStatus &stMiOldValueStatus, SMiNewValueStatus &stMiNewValueStatus,const bool bInit = false);
int writeMixRtdb(const SChangeMixData &stChangeMixData,\
SMiOldValueStatus &stMiOldValueStatus, SMiNewValueStatus &stMiNewValueStatus,\
int nRawValue, time_t occurTime, char updateType, SDigAlarmPara &stDigAlmPara, int nDomain);
int doMixMethod(const std::string &method, const int &nRawValue, int &fTransValue);
//Other;
//==========================================================================================
int writeRdbAndSendMsg(const SChangeMixData &stChangeMixData , int nStyle);
void initMixValueStatus(SMiOldValueStatus &stMiOldValueStatus, SMiNewValueStatus &stMiNewValueStatus);
};
typedef boost::shared_ptr<CMixProcess> CMixProcessPtr;
}