⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_template.h

📁 104规约从站库源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
	
	
	void ME_TC_SetDataIndex(_WORD index);
		

	void ME_TC_SetData(TP_ME_NC *value);//Note: index-->infobodyaddr 
	void ME_TC_SetCOT(_BYTE cot);//Note: index-->infobodyaddr 
	void ME_TC_SetTimeTag(TIME_STRU *value);//Note: index-->infobodyaddr 
	void ME_TC_SetQuality(_BYTE IV=255,_BYTE NT=255,_BYTE SB=255,_BYTE BL=255,_BYTE OV=255);
	
	void ME_TC_ResetDataflag();
	_int ME_TC_GetEventFrame(_BYTE* buff);//
	_int ME_TF_GetEventFrame(_BYTE* buff);//
	bool ME_TC_ScanEventSpontFlag();

	typedef struct ME_TC_Seqstru
	{
		_BYTE SpecialCOT;
		_WORD		index;//
		TIME_STRU	timetag;
		TP_ME_NC		data_val;
		_BYTE		data_quality;
	} 	ME_TC_SEQ_STRU;
	void ME_TC_dispStore(ME_TC_SEQ_STRU *soe);
public:
	ME_TC_SEQ_STRU ME_TC_SeqNode;
	ME_TC_SEQ_STRU ME_TC_dispBuf[Data_ME_TC_dispCOUNTS];
	_int ME_TC_dispPtr;
	ME_TC_SEQ_STRU ME_TC_seqlist[Data_ME_TC_COUNTS];
	_WORD ME_TC_counter;
	






//==============================================================================

//================================================================================
public:	

	void IT_NA_ResetDataflag();
	void IT_NA_Freeze();
	_int IT_NA_GetEventFrame(_BYTE* buff);//
	_int IT_TA_GetReqcallFrame(_BYTE* buff,_BYTE group);
	_int IT_TB_GetReqcallFrame(_BYTE* buff,_BYTE group);

	void IT_NA_SetData(_int index, TP_IT_NA * value);
	void IT_NA_SetQuality(_int index,_BYTE IV,_BYTE CA,_BYTE CY);
//	void IT_NA_GetQuality(_int index,_BYTE *IV,_BYTE *CA,_BYTE *CY);
	_BYTE IT_NA_GetByteQuality(_int index);
	bool IT_NA_ScanReqcallFlag(_BYTE group);
	TP_IT_NA	IT_NA_GetData(_int index);
	TP_IT_NA	IT_NA_GetFreezeData(_int index);
	void GetLocalDataTime(TIME_STRU *lt);
public:
	ASDU_ATTRI	IT_NA_asdu_attri[Data_IT_NA_COUNTS_MAX ];
	TP_IT_NA	IT_NA_deadband[Data_IT_NA_COUNTS_MAX ];
	_BYTE		IT_NA_quality[Data_IT_NA_COUNTS_MAX ];
	_int		IT_NA_ReqcallPtr;
	bool		IT_NA_Reqcallflag;
	_BYTE		IT_NA_group;

	TP_IT_NA	IT_NA_data_val[Data_IT_NA_COUNTS_MAX ];
	TP_IT_NA	IT_NA_data_Freeze_val[Data_IT_NA_COUNTS_MAX ];
	TIME_STRU	freezetime;
//================================================================================

public:	
	void P_ME_NA_ResetDataflag();
	_int P_ME_NA_GetReqcallFrame(_BYTE* buff,_BYTE group);
	void P_ME_NA_SetData(_int index, TP_ME_NA * value);
	TP_ME_NA P_ME_NA_GetData(_int index,_BYTE kpa);
	bool P_ME_NA_ScanReqcallFlag(_BYTE group);
public:
	ASDU_ATTRI	P_ME_NA_asdu_attri[Data_P_ME_NA_COUNTS_MAX ];
	_int		P_ME_NA_ReqcallPtr;
	bool		P_ME_NA_Reqcallflag;
	//_BYTE		P_ME_NA_group;

	TP_ME_NA	P_ME_NA_data[Data_P_ME_NA_COUNTS_MAX ];//KPA:1
	//_BYTE	P_ME_NA_QPM[Data_P_ME_NA_COUNTS];
	TP_ME_NA	P_ME_NA_toplimit[Data_P_ME_NA_COUNTS_MAX ];//KPA:4
	TP_ME_NA	P_ME_NA_lowlimit[Data_P_ME_NA_COUNTS_MAX ];//KPA:3
	TP_ME_NA	P_ME_NA_filter[Data_P_ME_NA_COUNTS_MAX ];//KPA:2
	//_BYTE		P_ME_NA_LPC[Data_P_ME_NA_COUNTS];//P_ME_NA_localSetData
	//_BYTE		P_ME_NA_POP[Data_P_ME_NA_COUNTS];//P_ME_NA_localGetData

////////////////////////////////////////////////////////////////////////////

public:	
	void P_ME_NB_ResetDataflag();
	_int P_ME_NB_GetReqcallFrame(_BYTE* buff,_BYTE group);
	void P_ME_NB_SetData(_int index, TP_ME_NB * value);
	TP_ME_NB P_ME_NB_GetData(_int index,_BYTE kpa);
	bool P_ME_NB_ScanReqcallFlag(_BYTE group);
public:
	ASDU_ATTRI	P_ME_NB_asdu_attri[Data_P_ME_NB_COUNTS_MAX ];
	_int		P_ME_NB_ReqcallPtr;
	bool		P_ME_NB_Reqcallflag;
	//_BYTE		P_ME_NB_group;

	TP_ME_NB	P_ME_NB_data[Data_P_ME_NB_COUNTS_MAX ];//KPA:1
	//_BYTE	P_ME_NB_QPM[Data_P_ME_NB_COUNTS];
	TP_ME_NB	P_ME_NB_toplimit[Data_P_ME_NB_COUNTS_MAX ];//KPA:4
	TP_ME_NB	P_ME_NB_lowlimit[Data_P_ME_NB_COUNTS_MAX ];//KPA:3
	TP_ME_NB	P_ME_NB_filter[Data_P_ME_NB_COUNTS_MAX ];//KPA:2
	//_BYTE		P_ME_NB_LPC[Data_P_ME_NB_COUNTS];//P_ME_NB_localSetData
	//_BYTE		P_ME_NB_POP[Data_P_ME_NB_COUNTS];//P_ME_NB_localGetData

////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

public:	
	void P_ME_NC_ResetDataflag();
	_int P_ME_NC_GetReqcallFrame(_BYTE* buff,_BYTE group);
	void P_ME_NC_SetData(_int index, TP_ME_NC * value);
	TP_ME_NC P_ME_NC_GetData(_int index,_BYTE kpa);
	bool P_ME_NC_ScanReqcallFlag(_BYTE group);
public:
	ASDU_ATTRI	P_ME_NC_asdu_attri[Data_P_ME_NC_COUNTS_MAX ];
	_int		P_ME_NC_ReqcallPtr;
	bool		P_ME_NC_Reqcallflag;
	//_BYTE		P_ME_NC_group;

	TP_ME_NC	P_ME_NC_data[Data_P_ME_NC_COUNTS_MAX ];//KPA:1
	//_BYTE	P_ME_NC_QPM[Data_P_ME_NC_COUNTS];
	TP_ME_NC	P_ME_NC_toplimit[Data_P_ME_NC_COUNTS_MAX ];//KPA:4
	TP_ME_NC	P_ME_NC_lowlimit[Data_P_ME_NC_COUNTS_MAX ];//KPA:3
	TP_ME_NC	P_ME_NC_filter[Data_P_ME_NC_COUNTS_MAX ];//KPA:2
	//_BYTE		P_ME_NC_LPC[Data_P_ME_NC_COUNTS];//P_ME_NC_localSetData
	//_BYTE		P_ME_NC_POP[Data_P_ME_NC_COUNTS];//P_ME_NC_localGetData

////////////////////////////////////////////////////////////////////////////

public:	
	bool C_SC_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,_BYTE *pYKstatus);
	bool C_SC_SetYK(_BYTE pYKtype,	_WORD pYKpoint,_BYTE pYKstatus);
	bool C_SC_GetYKrt(_BYTE *pYKrt);
	bool C_SC_SetYKrt(_BYTE pYKrt);


private:
	
	bool C_SC_YKflag;
	_BYTE C_SC_YKtype;
	_WORD C_SC_YKpoint;
	_BYTE C_SC_YKstatus;
	_BYTE C_SC_YKrtflag;
	_BYTE C_SC_YKrtresult;
public:	
	bool C_DC_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,_BYTE *pYKstatus);
	bool C_DC_SetYK(_BYTE pYKtype,	_WORD pYKpoint,_BYTE pYKstatus);
	bool C_DC_GetYKrt(_BYTE *pYKrt);
	bool C_DC_SetYKrt(_BYTE pYKrt);
private:
	bool C_DC_YKflag;
	_BYTE C_DC_YKtype;
	_WORD C_DC_YKpoint;
	_BYTE C_DC_YKstatus;
	_BYTE C_DC_YKrtflag;
	_BYTE C_DC_YKrtresult;

public:	
	bool C_RC_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,_BYTE *pYKstatus);
	bool C_RC_SetYK(_BYTE pYKtype,	_WORD pYKpoint,_BYTE pYKstatus);
	bool C_RC_GetYKrt(_BYTE *pYKrt);
	bool C_RC_SetYKrt(_BYTE pYKrt);
private:
	bool C_RC_YKflag;
	_BYTE C_RC_YKtype;
	_WORD C_RC_YKpoint;
	_BYTE C_RC_YKstatus;
	_BYTE C_RC_YKrtflag;
	_BYTE C_RC_YKrtresult;

public:	
	bool C_SE_NA_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,TP_ME_NA *pYKstatus);
	bool C_SE_NA_SetYK(_BYTE pYKtype,	_WORD pYKpoint,TP_ME_NA pYKstatus);
	bool C_SE_NA_GetYKrt(_BYTE *pYKrt);
	bool C_SE_NA_SetYKrt(_BYTE pYKrt);
private:
	bool C_SE_NA_YKflag;
	_BYTE C_SE_NA_YKtype;
	_WORD C_SE_NA_YKpoint;
	TP_ME_NA C_SE_NA_YKstatus;
	_BYTE C_SE_NA_YKrtflag;
	_BYTE C_SE_NA_YKrtresult;

public:	
	bool C_SE_NB_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,TP_ME_NB *pYKstatus);
	bool C_SE_NB_SetYK(_BYTE pYKtype,	_WORD pYKpoint,TP_ME_NB pYKstatus);
	bool C_SE_NB_GetYKrt(_BYTE *pYKrt);
	bool C_SE_NB_SetYKrt(_BYTE pYKrt);
private:
	bool C_SE_NB_YKflag;
	_BYTE C_SE_NB_YKtype;
	_WORD C_SE_NB_YKpoint;
	TP_ME_NB C_SE_NB_YKstatus;
	_BYTE C_SE_NB_YKrtflag;
	_BYTE C_SE_NB_YKrtresult;
public:	
	bool C_SE_NC_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,TP_ME_NC *pYKstatus);
	bool C_SE_NC_SetYK(_BYTE pYKtype,	_WORD pYKpoint,TP_ME_NC pYKstatus);
	bool C_SE_NC_GetYKrt(_BYTE *pYKrt);
	bool C_SE_NC_SetYKrt(_BYTE pYKrt);
private:
	bool C_SE_NC_YKflag;
	_BYTE C_SE_NC_YKtype;
	_WORD C_SE_NC_YKpoint;
	TP_ME_NC C_SE_NC_YKstatus;
	_BYTE C_SE_NC_YKrtflag;
	_BYTE C_SE_NC_YKrtresult;
#define C_SE_ND_MaxCounts 32
public:	
	bool C_SE_ND_GetCounts(_int *counts);
	void C_SE_ND_SetTerm();
	void C_SE_ND_GetTerm();
	bool C_SE_ND_GetYK(_BYTE *pYKtype,_int ind,	_WORD *pYKpoint,TP_ME_NA *pYKstatus);
	bool C_SE_ND_SetYK(_BYTE pYKtype,_int ind,	_WORD pYKpoint,TP_ME_NA pYKstatus);
	bool C_SE_ND_GetYKrt(_BYTE *pYKrt);
	bool C_SE_ND_SetYKrt(_BYTE pYKrt);
private:
	_int C_SE_ND_Counts;
	bool C_SE_ND_YKflag;
	_BYTE C_SE_ND_YKtype;
	_WORD C_SE_ND_YKpoint[C_SE_ND_MaxCounts];
	TP_ME_NA C_SE_ND_YKstatus[C_SE_ND_MaxCounts];
	_BYTE C_SE_ND_YKrtflag;
	_BYTE C_SE_ND_YKrtresult;
public:	
	bool C_BO_NA_GetYK(_BYTE *pYKtype,	_WORD *pYKpoint,TP_BO_NA *pYKstatus);
	bool C_BO_NA_SetYK(_BYTE pYKtype,	_WORD pYKpoint,TP_BO_NA pYKstatus);
	bool C_BO_NA_GetYKrt(_BYTE *pYKrt);
	bool C_BO_NA_SetYKrt(_BYTE pYKrt);
private:
	bool C_BO_NA_YKflag;
	_BYTE C_BO_NA_YKtype;
	_WORD C_BO_NA_YKpoint;
	TP_BO_NA C_BO_NA_YKstatus;
	_BYTE C_BO_NA_YKrtflag;
	_BYTE C_BO_NA_YKrtresult;
//===========================================================================================
public:
	typedef struct serv_node_stru
		{
			_int ID;
			_char serv_name[32];//SpecialPS ,SpontPS,SpecialCOT ,YKterm,PA,Spont,ReqCall,Cycle,BackGround,SubEndinit is class1 data,
								//After SubEndinit, reset process. 
			

			bool priority_bit;
			_BYTE nextTypeTag;
			_BYTE nextCOT;
			

		} SERV_NODE;

		//SERV_NODE serv[MAXASDU_SERVNUM] ;
	_BYTE bakbuf[MAXRXBUF];
	_int baklen;
	SERV_NODE priority[MAXASDU_SERVNUM];//	
	void serv_Init_Priority();
	bool serv_isConfirm(_BYTE pri);
	void serv_SetPriorityBit(_BYTE bit);

	void serv_ResetPriorityBit(_BYTE bit);

	_BYTE serv_GetTopPriority();

	_BYTE serv_GetACDflag();

	_BYTE serv_GetNextTypeTag(_BYTE bit);

	_BYTE serv_GetNextCOT(_BYTE bit);//Cause Of Transfer

	void serv_SetNextTypeTag(_BYTE bit,_BYTE typetag);

	void serv_SetNextCOT(_BYTE bit,_BYTE cot);

	void serv_BackupData(_BYTE bit,_BYTE * buf,_int len);

	_BYTE * serv_RestoreData(_BYTE bit,_int * len);

	_BYTE serv_Does_Have_Class2();

	bool InitConfig()
	{return 1;};// read all of points defination  from the file

	bool InitRtdb();// So many different type classes are created according to the Configuration of File
	
	void SetBit_EndSubInit();
	void ResetDataflag();
	void ResetProcess();
	bool InitASDU();
	bool wdg_threadflag;
	_BYTE datalist[MAX_TPLIST];
	bool IsTaginlist(_BYTE Tag);
	void set_Tag_enable(_BYTE tag,bool enable);

		bool noASDUrunning;
		bool CloseASDU();
		HANDLE wdg_handle;
		HANDLE Timer_handle;
protected:
	
	
private:


	_int SpecialSpontPtr;
	_int SpecialPSPtr;
	_int SpontPtr;
	_int SpontPSPtr;
	_int CyclePtr;
	_int BackPtr;
	_int ReqcallPtr;
	_int ITReqcallPtr;
	_BYTE group;
	static void Timer_thread(void *pp);
	
//	void linkprocess();


	static void wdg_thread(void *pp);
	
	_int wdg_counts;
	void Clear_Watchdog();
	_int Timer_Cycle_counts;
	_int Timer_Back_counts;
	
	
	bool ScanSpecialSpontFlag();
	bool ScanEventSpontFlag();
//	bool ScanSpecialPSFlag();
//	bool ScanSpontPSFlag();

	bool ScanCycleFlag();
	bool ScanBackFlag();
	bool ScanReqcallFlag(_BYTE group);
	bool ScanITReqcallFlag(_BYTE group);

	_int TxSubEnd(_BYTE *buf);	

	_int TxYKterm(_BYTE *buf);

	_int TxSpecial(_BYTE *buf);
	
	_int TxEvent(_BYTE *buf);

	_int TxCycle(_BYTE *buf);
	
	_int TxBack(_BYTE *buf);
//	_int TxSpecialPS(BYTE *buf);
//	_int TxSpontPS(BYTE *buf);
	_int TxReqCall(_BYTE *buf,_BYTE group);
	

	_int TxReqPulseAccount(_BYTE *buf);
	


	
	bool ASDUcon_flag;

	_BYTE rxbuf[MAXRXBUF];
	_int rxlen;

	_BYTE txbuf[MAXTXBUF];
	_int txlen;


	void RxNoreply();
	
	void ParseApp(_int counts);
	void RxConfirm();
	void RxNoConfirm();

	_int TxConfirm(_BYTE *buf, _BYTE pri);
	_int Tx_class1data(_BYTE *buf,_BYTE pri);
	_int Tx_class2data(_BYTE *buf,_BYTE pri);
	void testASDUprocess(_BYTE *buff,_int *len,bool *ACD);
	void DumptoLinker(_BYTE *buff,_int len,bool ACD=0);
	void TxResponse(bool *finished);
	virtual void OnApplayer(_int type); 

	_int inputbufsize;
	_int outpubufsize;

	void decodeC_TS_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_RP_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_CD_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_SC_NA_1(_BYTE cot,_BYTE *buf, _int len);
	bool C_SC_select_Ready;
	HANDLE SC_timeout_thread;
	static void SC_timeout_threadfunc(void *pp);
	void decodeC_DC_NA_1(_BYTE cot,_BYTE *buf, _int len);
	bool C_DC_select_Ready;
	HANDLE DC_timeout_thread;
	static void DC_timeout_threadfunc(void *pp);
	
	void decodeC_RC_NA_1(_BYTE cot,_BYTE *buf, _int len);
	bool C_RC_select_Ready;
	HANDLE RC_timeout_thread;
	static void RC_timeout_threadfunc(void *pp);

	void decodeC_SE_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_SE_NB_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_SE_NC_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_SE_ND_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_BO_NA_1(_BYTE cot,_BYTE *buf, _int len);
	bool C_BO_select_Ready;
	HANDLE BO_timeout_thread;
	static void BO_timeout_threadfunc(void *pp);
	
	void decodeC_CS_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_IC_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_CI_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeC_RD_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeP_ME_NA_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeP_ME_NB_1(_BYTE cot,_BYTE *buf, _int len);
	void decodeP_ME_NC_1(_BYTE cot,_BYTE *buf, _int len);
	_int encodeC_res_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);
	_int encodeC_SC_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_DC_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_RC_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_SE_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_SE_NB_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_SE_NC_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_SE_ND_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_BO_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeC_CS_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);//
	_int encodeC_IC_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);//prepare nextreq nextCOT Setbit BackUp Data
	_int encodeC_CI_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);//prepare nextreq nextCOT Setbit BackUp Data
	_int encodeC_TS_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);
	_int encodeC_RP_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);
	_int encodeC_RD_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);
	_int encodeC_CD_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);
	_int encodeSubEnd(_BYTE cot,_BYTE* buf);
	_int encodeC_ICterm_NA_1(_BYTE* buf);
	_int encodeC_CIterm_NA_1(_BYTE* buf);
	_int encodeP_ME_NA_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeP_ME_NB_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.
	_int encodeP_ME_NC_1(_BYTE cot,_BYTE* bakbuf,_int baklen,_BYTE* buf);////if YKexect ,Setbit Ykterm and BackUp Data.According to BackData of TeleCode bit.

	TIME_STRU oldlocaltime;
	struct _timeb  localtime_rxCD;
	_int localdiff_time;//localThreadTime=localTimediff+CDmodifytime+GetLocalTime();
	_int localdiff_milli;
	_int CDtimediff;// recieve a Delay Time;
	_int CDmodifytime;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -