|
|
|
|
|
|
|
|
|
#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)
|
|
|
|
|
//<2F><><EFBFBD>Ӿ<EFBFBD>ͨ<EFBFBD><CDA8>Э<EFBFBD><D0AD>֡
|
|
|
|
|
typedef struct struProtocalIMPDown{
|
|
|
|
|
UINT8 head; //֡ͷ0x
|
|
|
|
|
UINT8 Bytes; //<2F>ֽ<EFBFBD><D6BD><EFBFBD>
|
|
|
|
|
UINT8 StatusWord; //״̬<D7B4><CCAC>
|
|
|
|
|
UINT8 FaultWord; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UINT8 CHKSUM; //У<><D0A3><EFBFBD><EFBFBD>
|
|
|
|
|
UINT8 EndFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
}ProtocalIMPDown;
|
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>Ӿ<EFBFBD>ͨ<EFBFBD><CDA8>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct struDataIMPDown{
|
|
|
|
|
UINT8 head; //֡ͷ0x
|
|
|
|
|
UINT8 Bytes; //Ԥ<><D4A4>
|
|
|
|
|
UINT8 StatusWord; //״̬<D7B4><CCAC>
|
|
|
|
|
UINT8 FaultWord; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UINT8 CHKSUM; //У<><D0A3><EFBFBD><EFBFBD>
|
|
|
|
|
UINT8 EndFlag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|
|
|
|
}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<4D><50><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
float LimitedValueF(float val,float minimum, float maximum)
|
|
|
|
|
{
|
|
|
|
|
val = val>maximum?maximum:val;
|
|
|
|
|
val = val<minimum?minimum:val;
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int LimitedValueI(int val,int minimum, int maximum)
|
|
|
|
|
{
|
|
|
|
|
val = val>maximum?maximum:val;
|
|
|
|
|
val = val<minimum?minimum:val;
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double LimitedValueD(double val,double minimum, double maximum)
|
|
|
|
|
{
|
|
|
|
|
val = val>maximum?maximum:val;
|
|
|
|
|
val = val<minimum?minimum:val;
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|