|
|
|
|
#ifndef _CDCFrameCkCmdFrame_
|
|
|
|
|
#define _CDCFrameCkCmdFrame_
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ָ<EFBFBD><D6B8><EFBFBD>ӿط<D3BF><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
//#include "framelib/basetype.h"
|
|
|
|
|
//#include "framelib/DataInject.h"
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
|
|
typedef struct struProtocalDataInject_DC
|
|
|
|
|
{
|
|
|
|
|
UINT8 DCtype; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
union
|
|
|
|
|
{
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
UINT8 SwitchCmd; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
INT16 param1; //<2F><><EFBFBD><EFBFBD>1
|
|
|
|
|
INT16 param2; //<2F><><EFBFBD><EFBFBD>2
|
|
|
|
|
UINT8 reserve[9]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}DC_13Ins;//13<31><33><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><D5BF><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
BYTE param; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param3; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param4; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param5; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param6; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param7; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param8; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param9; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param10; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param11; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param12; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param13; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param14; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}DC_WHTJ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><D5BF><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
BYTE DataIn[14];//14<31><34><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
}ProtocalDataInject_DC;
|
|
|
|
|
|
|
|
|
|
typedef struct struDataInject_DC
|
|
|
|
|
{
|
|
|
|
|
UINT8 DCtype; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
union
|
|
|
|
|
{
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
UINT8 SwitchCmd; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
double param1; //<2F><><EFBFBD><EFBFBD>1
|
|
|
|
|
double param2; //<2F><><EFBFBD><EFBFBD>2
|
|
|
|
|
UINT8 reserve[9]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}DC_13Ins;//13<31><33><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><D5BF><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
BYTE param; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param2; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param3; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param4; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param5; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param6; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param7; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param8; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param9; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param10; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param11; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param12; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param13; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
BYTE param14; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
}DC_WHTJ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><D5BF><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
BYTE DC_Data[14];//14<31><34><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
}DataInject_DC;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ָ<EFBFBD><D6B8><EFBFBD>ӿط<D3BF><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡---13<31><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct struDCFrameCkCmd
|
|
|
|
|
{
|
|
|
|
|
UINT8 FrameHead[2]; //֡ͷEB 90
|
|
|
|
|
UINT8 fcode; //<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
|
|
|
|
|
ProtocalDataInject_DC protocalDataInject_DC;
|
|
|
|
|
UINT16 crc16; //У<><D0A3>λ
|
|
|
|
|
}DCFrameCkCmd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma pack()
|
|
|
|
|
//<2F><><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
typedef struct struDCFrameCkCmdData
|
|
|
|
|
{
|
|
|
|
|
UINT8 fcode; //<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
|
|
|
|
|
DataInject_DC dataInject_DC;
|
|
|
|
|
UINT16 crc16; //У<><D0A3>λ
|
|
|
|
|
}DCFrameCkCmdData;
|
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
|
|
|
class CDCFrameCkCmdFrame : public CFrameAbstract
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DCFrameCkCmdData Data;
|
|
|
|
|
public:
|
|
|
|
|
CDCFrameCkCmdFrame()
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|
|
|
|
_tcscpy(Name, _T("DateInject_CK_DC"));//<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2> <20>ӿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
FrameLength = 20;
|
|
|
|
|
HeadLength = 2;
|
|
|
|
|
Head[0] = 0xEB;
|
|
|
|
|
Head[1] = 0x90;
|
|
|
|
|
memcpy(Addr(), Head, HeadLength);//<2F><>Head<61>ĵ<EFBFBD>һλ<D2BB><CEBB>HeadLengthλ<68><CEBB>ֵ<EFBFBD><D6B5>ֵ<EFBFBD><D6B5>Addr()
|
|
|
|
|
CheckLength = 2;
|
|
|
|
|
CheckPos = FrameLength - 2;
|
|
|
|
|
FrameType = ftFKu;
|
|
|
|
|
memset(&Data,0,sizeof(DCFrameCkCmdData));//<2F><>Data<74>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
virtual ~CDCFrameCkCmdFrame(){}
|
|
|
|
|
virtual void Encode()
|
|
|
|
|
{
|
|
|
|
|
DCFrameCkCmd *pBuff = (DCFrameCkCmd*) Addr();
|
|
|
|
|
pBuff->fcode = Data.fcode;
|
|
|
|
|
pBuff->protocalDataInject_DC.DCtype = Data.dataInject_DC.DCtype;
|
|
|
|
|
switch(Data.dataInject_DC.DCtype)
|
|
|
|
|
{
|
|
|
|
|
case 0x01:
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_13Ins.SwitchCmd = Data.dataInject_DC.DC_13Ins.SwitchCmd;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_13Ins.param1 = Data.dataInject_DC.DC_13Ins.param1;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_13Ins.param2 = Data.dataInject_DC.DC_13Ins.param2;
|
|
|
|
|
memset(&(pBuff->protocalDataInject_DC.DC_13Ins.reserve),0,sizeof(pBuff->protocalDataInject_DC.DC_13Ins.reserve));
|
|
|
|
|
break;
|
|
|
|
|
case 0x02:
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param = Data.dataInject_DC.DC_WHTJ.param;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param2 = Data.dataInject_DC.DC_WHTJ.param2;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param3 = Data.dataInject_DC.DC_WHTJ.param3;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param4 = Data.dataInject_DC.DC_WHTJ.param4;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param5 = Data.dataInject_DC.DC_WHTJ.param5;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param6 = Data.dataInject_DC.DC_WHTJ.param6;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param7 = Data.dataInject_DC.DC_WHTJ.param7;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param8 = Data.dataInject_DC.DC_WHTJ.param8;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param9 = Data.dataInject_DC.DC_WHTJ.param9;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param10 = Data.dataInject_DC.DC_WHTJ.param10;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param11 = Data.dataInject_DC.DC_WHTJ.param11;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param12 = Data.dataInject_DC.DC_WHTJ.param12;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param13 = Data.dataInject_DC.DC_WHTJ.param13;
|
|
|
|
|
pBuff->protocalDataInject_DC.DC_WHTJ.param14 = Data.dataInject_DC.DC_WHTJ.param14;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
switch(Data.fcode)
|
|
|
|
|
{
|
|
|
|
|
case 0x70:
|
|
|
|
|
if(Data.details.DataZ70.DCtype == 0x01){
|
|
|
|
|
EncodeUZ70( &( pBuff->details ),&( Data.details ));
|
|
|
|
|
}
|
|
|
|
|
if(Data.details.DataZ70_TJDC.DCTpye == 0x02){
|
|
|
|
|
EncodeUZ70_TJDC( &( pBuff->details ),&( Data.details ));
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
}
|
|
|
|
|
virtual void Decode()
|
|
|
|
|
{
|
|
|
|
|
DCFrameCkCmd *pBuff = (DCFrameCkCmd*) Addr();
|
|
|
|
|
Data.fcode = pBuff->fcode;
|
|
|
|
|
Data.dataInject_DC.DCtype = pBuff->protocalDataInject_DC.DCtype;
|
|
|
|
|
switch(pBuff->protocalDataInject_DC.DCtype)
|
|
|
|
|
{
|
|
|
|
|
case 0x01:
|
|
|
|
|
Data.dataInject_DC.DC_13Ins.SwitchCmd = pBuff->protocalDataInject_DC.DC_13Ins.SwitchCmd;
|
|
|
|
|
Data.dataInject_DC.DC_13Ins.param1 = pBuff->protocalDataInject_DC.DC_13Ins.param1;
|
|
|
|
|
Data.dataInject_DC.DC_13Ins.param2 = pBuff->protocalDataInject_DC.DC_13Ins.param2;
|
|
|
|
|
memset(&(Data.dataInject_DC.DC_13Ins.reserve),0,sizeof(Data.dataInject_DC.DC_13Ins.reserve));
|
|
|
|
|
break;
|
|
|
|
|
case 0x02:
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param = pBuff->protocalDataInject_DC.DC_WHTJ.param;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param2 = pBuff->protocalDataInject_DC.DC_WHTJ.param2;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param3 = pBuff->protocalDataInject_DC.DC_WHTJ.param3;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param4 = pBuff->protocalDataInject_DC.DC_WHTJ.param4;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param5 = pBuff->protocalDataInject_DC.DC_WHTJ.param5;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param6 = pBuff->protocalDataInject_DC.DC_WHTJ.param6;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param7 = pBuff->protocalDataInject_DC.DC_WHTJ.param7;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param8 = pBuff->protocalDataInject_DC.DC_WHTJ.param8;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param9 = pBuff->protocalDataInject_DC.DC_WHTJ.param9;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param10 = pBuff->protocalDataInject_DC.DC_WHTJ.param10;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param11 = pBuff->protocalDataInject_DC.DC_WHTJ.param11;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param12 = pBuff->protocalDataInject_DC.DC_WHTJ.param12;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param13 = pBuff->protocalDataInject_DC.DC_WHTJ.param13;
|
|
|
|
|
Data.dataInject_DC.DC_WHTJ.param14 = pBuff->protocalDataInject_DC.DC_WHTJ.param14;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
Data.crc16 = pBuff->crc16;
|
|
|
|
|
}
|
|
|
|
|
//void Phrase(const BYTE* Src, const UINT32 Count)
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
virtual struCHECK CheckCRC(BYTE* const p)
|
|
|
|
|
{
|
|
|
|
|
//return MakeCheckSum_WuHanTJDC(p,31);
|
|
|
|
|
return MakeCheckCRC(p+2,16);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif//_CDCFrameCkCmdFrame_
|