#include "FrameRecieve.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifdef __WIN_32_VC__ typedef unsigned char BYTE; typedef unsigned char INT8U; typedef unsigned short INT16U; typedef unsigned int INT32U; typedef char INT8S; typedef short INT16S; typedef int INT32S; #endif #pragma pack(1) //超视距通用协议帧 typedef struct struProtocalIMPDown{ UINT8 head; //帧头0x UINT8 Bytes; //字节数 UINT8 StatusWord; //状态字 UINT8 FaultWord; //故障字 UINT8 CHKSUM; //校验和 UINT8 EndFlag; //结束标志 }ProtocalIMPDown; #pragma pack() //超视距通用帧数据 typedef struct struDataIMPDown{ UINT8 head; //帧头0x UINT8 Bytes; //预留 UINT8 StatusWord; //状态字 UINT8 FaultWord; //故障字 UINT8 CHKSUM; //校验和 UINT8 EndFlag; //结束标志 }DataIMPDown; class CFrameIMPDown_ : public CFrameAbstract { public: CFrameIMPDown_(void); ~CFrameIMPDown_(void); protected: virtual BOOL FullFrame(); virtual BOOL OnCheck(); void DoCheck(); virtual struCHECK CheckCRC(BYTE* const p); virtual void Decode(); BYTE recvDataValue[6]; public: DataIMPDown Data; //IMP下行协议数据 public: float LimitedValueF(float val,float minimum, float maximum) { val = val>maximum?maximum:val; val = valmaximum?maximum:val; val = valmaximum?maximum:val; val = val