?? mpbase.h
字號:
// MPBase.h: interface for the CMPBase class.
//
//////////////////////////////////////////////////////////////////////
#if !defined CMPBASE_H
#define CMPBASE_H
//#include "protocol.h"
#include <time.h>
/*
定義電表規(guī)約的解析函數(shù),為基類的接口函數(shù)
虛函數(shù)FormCheckClock:
生成設(shè)置電表時鐘的數(shù)據(jù)幀,
time_t &m_time為輸入?yún)?shù),BYTE *buff為數(shù)據(jù)幀的內(nèi)容,
返回數(shù)據(jù)幀長度
虛函數(shù)FormReadDataFrame:
生成讀電表數(shù)據(jù)幀,
BYTE * addr為電表地址數(shù),int item為采集數(shù)據(jù)項目,
BYTE *buff為數(shù)據(jù)幀的內(nèi)容,返回數(shù)據(jù)幀長度
虛函數(shù)FormSetAddress:
生成設(shè)置電表地址的數(shù)據(jù)幀,
BYTE *addr為設(shè)置電表的地址內(nèi)容
BYTE *buff為數(shù)據(jù)幀的內(nèi)容,返回數(shù)據(jù)幀長度
虛函數(shù)ProcReturnedFrame:
返回數(shù)據(jù)的解析,返回為0表示數(shù)據(jù)返回正確,其他為錯誤代碼
BYTE *inbuff為要解析數(shù)據(jù)幀的內(nèi)容,int inLen數(shù)據(jù)幀的長度,
int item為電表采集數(shù)據(jù)項目,BYTE *addr為電表地址
BYTE *outbuff為解析后的數(shù)據(jù)輸出,int &outlen解析后的數(shù)據(jù)輸出長度
*/
class CMPBase
{
public:
CMPBase();
virtual ~CMPBase();
public:
virtual int GetCheckSum(BYTE *info, int info_len);//計算校驗和,在子類中可以更改函數(shù)體
virtual int FormCheckClock(BYTE *buff,time_t *m_time = NULL,BYTE *addr = NULL) = 0;//設(shè)置電表時鐘
virtual int FormReadDataFrame(BYTE *buff, int item , BYTE * addr) = 0;
virtual int FormSetAddress(BYTE *buff, BYTE *addr) = 0;//設(shè)置電表地址
virtual int ProcReturnedFrame(BYTE *inbuff, int inLen,int item, BYTE *outbuff,int &outlen,BYTE *addr) = 0;
//返回數(shù)據(jù)的處理
public:
BYTE TranHexToBcd(BYTE data);//十六進(jìn)制數(shù)轉(zhuǎn)換為組合BCD碼
BYTE TranBcdToHex(BYTE data);//組合BCD碼轉(zhuǎn)換為十六進(jìn)制數(shù)
};
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -