?? optickettopo.h
字號:
#ifndef COpticketTopo_H
#define COpticketTopo_H
#include "opt_include.h"
#include "opt_struct.h"
#include "opt_define.h"
#include "opt_global.h"
#include "opticket_api/flow_report.h"
using namespace ODB;
using namespace NM_PSNTP;
class COpticketTopo
{
public:
COpticketTopo(int app_no=AP_SCADA);
~COpticketTopo();
private:
bool is_on_duty;
private:
CMsgBus *m_optTopoBus;
MESSAGE_HEADER m_RecvMsgHeader;
CBuffer m_BufBase; CTableOp *m_scadaOp;
int m_SendMsgType;
char *m_SendMsgBuf;
int m_SendMsgLen;
IFlow m_flow;
private:
int *m_model_time_shm;
int *m_yx_change_time_shm;
time_t m_last_model_time;
time_t m_last_yx_change_time;
private:
CScadaApi scada_api;
private:
string m_stepGraphName;
string m_machinename;
string m_procname;
string m_username;
public:
int Init();
int Free();
private:
int SetGraphInfo();//初始化IPsntp
int ReadDevice(AllDeviceStru &alldev);//讀取所有設備信息
int FreeDevice(AllDeviceStru &alldev);//讀取所有設備信息
int SetRunMode(vector<int> &open_dev_vec,vector<int> &close_dev_vec,bool update_mode = true);//設定初始的運行方式
private:
sql_sp_client_base *m_sql_sp_client;
CSqlResultAlignClient m_sql_align;//數據庫結構對齊
public:
int RecvReport(int time=100);
int GetRecvReportType();
private:
int SendToChannel(int channel_id);
int SendToHost(const char *machinename,const char *processname,const char* instancename = NULL);
void SendMsgToGraph(int appno);//add by xuxianfeng1202
int SendDownModelMsgToHost(QString msg,int finished = RETURN_FAILED);//xxf080311
public:
void SetAppNo(int app);
int GetAppNo();
public:
int CopyModeFromSCADA(int dutyflag);//從SCADA拷貝方式數據
void CopyModeFromSCADA();//從SCADA拷貝方式數據
int DownloadModel(int dutyflag);//下裝模型
//#ifdef _WINDOWS32
int SaveModelBase(const int copyfromapp,const int copytoapp);//處理pc平臺的拷貝方式
//#endif
private:
int DownloadBase(TDownloadAppRequest download_app_request);//基礎的發送消息函數,完成download/copy mode
int ReceiveDownloadAppAnswer(int requestID);//下裝模型/拷貝方式數據應答
int ReceiveFlowVerifyAnswer(SEQOpStepVerFlowRpt &verFlowSeq,string &msg);
int SendMsgToFlow(deque<OpPair> opVec,int caltype);
public:
int ReadDevRunMode(int dutyflag);//通知opticket_topo_srver更新指定設備的運行方式
private:
int InsertDev(int dev_id,vector<DevType_T> &mapDev);
int InsertDev(vector<int> dev_vec,vector<DevType_T > &mapDev);
private:
int SynDevMode();//實時同步模型
int SynRunMode();//實時同步運行方式
public:
void SyncMode();//根據參數設定同步運行方式以及模型
int ModelChange();//模型變化
int YxValueChange();//遙信變化
private:
void SetAcDotPower();
int ReadOptPara(); int PrintErrors(const SEQDBErrorStru_var & seq_db_err);
string GetLocalTime();
};
class devQcolor_T
{
enum{DB_BASE_NO = 1000000};
int c_app_no;
int c_table_id;
int c_qcolor_field_id;
ODB::CTableOp c_table_op;
vector<int> c_key_vec;
vector<unsigned char> c_qcolor_vec;
public:
devQcolor_T(int table_id, int app_no = AP_SCADA):c_table_id(table_id),c_app_no(app_no),c_table_op(app_no,table_id)
{
c_table_op.GetFieldNoByName(c_qcolor_field_id, "qcolor");
};
int TableId()const{return c_table_id;};
void Reset();
inline void AddQcolorInfo(const int key_id, const unsigned char qcolor);
void UpdateQcolor();
};
#endif //COpticketTopo_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -