#ifndef DCFRAMECKCMD_H #define DCFRAMECKCMD_H // //数据注入指令从控发送数据协议 // #pragma once // //#include "framelib/basetype.h" // //#include "framelib/DataInject.h" // #pragma pack(1) // typedef struct struProtocalDataInject_DC // { // UINT8 DCtype; //吊舱类型 // union // { // struct // { // UINT8 SwitchCmd; //开关指令 // INT16 param1; //参数1 // INT16 param2; //参数2 // UINT8 reserve[9]; //保留 // }DC_13Ins;//13所吊舱控制指令 // struct // { // BYTE param; //参数 // BYTE param2; //参数 // BYTE param3; //参数 // BYTE param4; //参数 // BYTE param5; //参数 // BYTE param6; //参数 // BYTE param7; //参数 // BYTE param8; //参数 // BYTE param9; //参数 // BYTE param10; //参数 // BYTE param11; //参数 // BYTE param12; //参数 // BYTE param13; //参数 // BYTE param14; //参数 // }DC_WHTJ; //天进吊舱控制指令 // BYTE DataIn[14];//14个字节 // }; // }ProtocalDataInject_DC; // typedef struct struDataInject_DC // { // UINT8 DCtype; //吊舱类型 // union // { // struct // { // UINT8 SwitchCmd; //开关指令 // double param1; //参数1 // double param2; //参数2 // UINT8 reserve[9]; //保留 // }DC_13Ins;//13所吊舱控制指令 // struct // { // BYTE param; //参数 // BYTE param2; //参数 // BYTE param3; //参数 // BYTE param4; //参数 // BYTE param5; //参数 // BYTE param6; //参数 // BYTE param7; //参数 // BYTE param8; //参数 // BYTE param9; //参数 // BYTE param10; //参数 // BYTE param11; //参数 // BYTE param12; //参数 // BYTE param13; //参数 // BYTE param14; //参数 // }DC_WHTJ;//天进吊舱控制指令 // BYTE DC_Data[14];//14个字节 // }; // }DataInject_DC; // //数据注入指令从控发送数据帧---13所吊舱 // typedef struct struDCFrameCkCmd // { // UINT8 FrameHead[2]; //帧头EB 90 // UINT8 fcode; //数据注入指令码 // ProtocalDataInject_DC protocalDataInject_DC; // UINT16 crc16; //校验位 // }DCFrameCkCmd; // #pragma pack() // //数据结构体 // typedef struct struDCFrameCkCmdData // { // UINT8 fcode; //数据注入指令码 // DataInject_DC dataInject_DC; // UINT16 crc16; //校验位 // }DCFrameCkCmdData; // #pragma pack() // class CDCFrameCkCmdFrame : public CFrameAbstract // { // public: // DCFrameCkCmdData Data; // public: // CDCFrameCkCmdFrame() // { // //具体数据长度 // _tcscpy(Name, _T("DateInject_CK_DC"));//数据注入 从控 吊舱 // FrameLength = 20; // HeadLength = 2; // Head[0] = 0xEB; // Head[1] = 0x90; // memcpy(Addr(), Head, HeadLength);//把Head的第一位到HeadLength位的值赋值给Addr() // CheckLength = 2; // CheckPos = FrameLength - 2; // FrameType = ftFKu; // memset(&Data,0,sizeof(DCFrameCkCmdData));//将Data中的数据全都初始化为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; // } // } // 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 // DCFRAMECKCMD_H