📄 cdt.h
字号:
/******************************************************************
* Copyright (c) 2004-2005, 许继日立公司
* All rights reserved.
*
* 文件名称:cdt.h
* 文件标识:
* 摘 要:CDT规约类。主要有部颁CDT规约的应用层解析。
*
* 当前版本:1.0
* 作 者:李龙伟 <lilongwei1@hotmail.com>
* 完成日期:2004年11月03日
*
* 取代版本:1.0
* 原作者 :李龙伟
* 完成日期:2004年11月24日
******************************************************************/
#ifndef _CCDT_H
#define _CCDT_H
#include <vector>
#include "baserule.h"
using namespace std;
class CCDT : public BaseRule
{
public:
CCDT(BYTE no, short rlen, short slen);
virtual ~CCDT();
private:
//同步字类型
enum CdtType
{
FIND_HEAD = 0x00,
SYN_HEAD,
PACK_DATA
};
unsigned char m_bHeadEB; //字节eb个数
unsigned char m_bHead90; //字节90个数
unsigned char m_bSerial; //解包数据序号
enum CdtType m_bSyncFlag; //同步字类型
unsigned char m_bInfoBuf[6]; //解包数据信息
unsigned char m_bControl; //控制字节
unsigned char m_bFrameType; //帧类别
unsigned char m_bInfoNumber; //信息字数
unsigned char m_bBchTable[256]; //中间余式表
enum FUNC_TYPE m_ePreFuncType; //上一包功能码类型
unsigned char m_bSoe80; //soe事件的第一个功能码
unsigned char m_bSoeBuf[12]; //soe信息
unsigned long m_lTimeBegin; //开始时刻
unsigned int m_nCtrlNumber; //控制号
unsigned char m_bCtrlType; //控分控合
//??测试使用
unsigned long m_begin; //装置遥信状态测试时钟开始
// vector <unsigned char> bCommSendVec; //发送缓冲
// vector <unsigned char> bCommReceiveVec; //接收缓冲
private:
//循环发送接收函数
virtual void RuleLoop(void);
//处理收到的数据,防止有接收的数据分两次传送的情况
void PreUnpackData(BYTE bRead);
//验证接收数据校验码
bool CheckRevCode(void);
//计算发送数据校验码
void CheckSendCode(int no);
//解包,整理数据
void UnpackData(void);
//打包函数
void PackData(void);
//区分功能码代号
int GetFunType(enum FUNC_TYPE &eFunc);
//存储遥测数值,按照60870系列格式。
void PutYC(void);
//存储遥信值
void PutYX(void);
//存储事件进队列
void PutSOE(void);
//存储电度值
void PutDD(void);
//存储遥控返校信息。
void PutYK(enum INFO_TYPE eType, bool bFailFlag = false);
//存储频率值
void PutHZ(void);
//16进制数转换成BCD码
int HexToBCD(unsigned char bHex);
//超时检测
int TimeCheck(void);
//??测试使用,模拟遥信信息
void TestPutYX(void);
//??测试使用,模拟SOE
void TestPutSOE(void);
//??测试使用,间隔一段时间送遥信信息
int TimeTest();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -