#ifndef REMOTE_CTRL_H #define REMOTE_CTRL_H #include "Common/app_define.h" #include "work_thread.h" class Remote_Ctrl { public: Remote_Ctrl(Work_Thread *wt); Work_Thread *workThread; static quint8 devAddr; static const quint16 Heartbeat = 0x0A01; static const quint16 ExitSlave = 0x0A02; static const quint16 EnterSlave = 0x0A03; static const quint16 GetDischargeParam = 0x0A04; static const quint16 SetDischargeParam = 0x0A05; static const quint16 GetCellData = 0x0A06; static const quint16 GetFileInfo = 0x0A07; static const quint16 GetFile = 0x0A08; static const quint16 SetChargeParam = 0x0A09; static const quint16 GetChargeParam = 0x0A0A; static const quint16 StartDischarge = 0x0A0B; static const quint16 PausetDischarge = 0x0A0C; static const quint16 GetDischargeData = 0x0A0D; static const quint16 StartCharge = 0x0A0E; static const quint16 PauseCharge = 0x0A0F; static const quint16 GetChargeData = 0x0A10; static const quint16 StopDischarge = 0x0A1C; static const quint16 StopCharge = 0x0A1D; static const quint16 GetVersion = 0x0A2A; static const quint16 EnterPackPassthrough = 0x0A2B; static const quint16 GetPackData = 0x0A2C; static const quint16 GetPackParam = 0x0A2D; static const quint16 SetPackParam = 0x0A2E; static const quint16 SetPackClock = 0x0A2F; static const quint16 ExitPackPassthrough = 0x0A30; static const quint16 GetPackBarcode = 0x0A31; static const quint16 SetPackBarcode = 0x0A32; static const quint16 ActivePack = 0x0A33; static const quint16 EasyPackPassthrough = 0x0A34; enum RTN_TYPE { SUCCEED = 0, LEN_ERR, CRC_ERR, SLAVEMODE_ERR, FILE_DATA_ERR, START_ERR, SYSTEM_WORKING, //透传模式,不响应其它命令 PASSTHROUGH_ERR, //仪表测试中,无法进行透传 PACK_COMM_ERR, OTHER_ERR = 0xFF }; public: bool processRxData(FRAME_DATA *recv, FRAME_DATA *sent, const quint8 contype); static void setRemoteDevAddr(const quint8 addr); private: REMOTE_STATE remote_state; PASSTHROUGH_ST passthrough_Stat; private: bool CheckLen(FRAME_DATA *recv); bool CheckSYNCode(FRAME_DATA *recv); bool CheckCRC(FRAME_DATA *recv); bool ReadFrameHead(FRAME_DATA *recv, FRAME_DATA *sent); bool ReadFrameData(FRAME_DATA *recv, FRAME_DATA *sent); void prepareSendData(FRAME_DATA *recv,FRAME_DATA *sent); quint16 getVersion(FRAME_DATA *recv,FRAME_DATA *sent); quint16 getMonData(FRAME_DATA *sent); quint16 getTestData(FRAME_DATA *sent); quint16 getCommTestParam(FRAME_DATA *sent); quint16 getCommPackParam(FRAME_DATA *sent); quint16 getPackBarcode(FRAME_DATA *sent); quint16 exePassthroughData(FRAME_DATA *recv,FRAME_DATA *sent); quint16 getPackDataModbus(FRAME_DATA *recv,FRAME_DATA *sent); void setCommTestParam(FRAME_DATA *recv); void setCommPackParam(FRAME_DATA *recv); void setPackBarcode(FRAME_DATA *recv); }; #endif // REMOTE_CTRL_H