Browse Source

update

change_pipette_api
zhaohe 2 years ago
parent
commit
57d9eb08b5
  1. 3
      api/errorcode.cpp
  2. 8
      api/packet_interface.hpp
  3. 28
      protocol_parser.cpp
  4. 5
      zmodule_device_script_cmder_paser.cpp

3
api/errorcode.cpp

@ -74,8 +74,9 @@ const char* error2str(int32_t code) {
ERR2STR(kSMTP2_TipAlreadyLoad);
ERR2STR(kSMTP2_TipLoadFail);
default:
return "known";
break;
}
}
} // namespace err
} // namespace iflytop
} // namespace iflytop

8
api/packet_interface.hpp

@ -15,10 +15,10 @@ typedef struct {
#pragma pack(pop)
typedef enum {
kpt_cmd = 0,
kpt_ack = 1,
kpt_error_ack = 2,
} packet_type_t;
kptv2_cmd = 0,
kptv2_ack = 1,
kptv2_error_ack = 2,
} zcan_cmd_packet_type_t;
} // namespace zcr
} // namespace iflytop

28
protocol_parser.cpp

@ -4,14 +4,14 @@ using namespace iflytop;
using namespace std;
#define TAG "ZIProtocolParser"
#define PROCESS_PACKET_BEGIN(var_cmdid, var_moduleType) \
int32_t* param = (int32_t*)data; \
int paramNum = (len - sizeof(cmd_header_t)) / sizeof(int32_t); \
if (cmdid == var_cmdid) { \
auto* mod = dynamic_cast<var_moduleType*>(module); \
if (mod == nullptr) { \
m_cancmder->sendErrorAck(rxcmd, err::kce_operation_not_support); \
return; \
#define PROCESS_PACKET_BEGIN(var_cmdid, var_moduleType) \
int32_t* param __attribute__((__unused__)) = (int32_t*)data; \
int paramNum __attribute__((__unused__)) = (len - sizeof(cmd_header_t)) / sizeof(int32_t); \
if (cmdid == var_cmdid) { \
auto* mod = dynamic_cast<var_moduleType*>(module); \
if (mod == nullptr) { \
m_cancmder->sendErrorAck(rxcmd, err::kce_operation_not_support); \
return; \
}
#define CHECK_PARAM_NUM(num) \
@ -30,11 +30,13 @@ using namespace std;
}
#define PROCESS_PACKET_XX(var_cmdid, var_moduleType, var_funcname, XP, XACK, ...) \
PROCESS_PACKET_BEGIN(var_cmdid, var_moduleType) \
CHECK_PARAM_NUM(XP) \
int32_t ack[XACK + 1] = {0}; \
int32_t ecode = mod->var_funcname(__VA_ARGS__); \
PROCESS_PACKET_XX_END(XACK)
{ \
PROCESS_PACKET_BEGIN(var_cmdid, var_moduleType) \
CHECK_PARAM_NUM(XP) \
int32_t ack[XACK + 1] = {0}; \
int32_t ecode = mod->var_funcname(__VA_ARGS__); \
PROCESS_PACKET_XX_END(XACK) \
}
#define PROCESS_PACKET_00(var_cmdid, var_moduleType, var_funcname) PROCESS_PACKET_XX(var_cmdid, var_moduleType, var_funcname, 0, 0)
#define PROCESS_PACKET_01(var_cmdid, var_moduleType, var_funcname) PROCESS_PACKET_XX(var_cmdid, var_moduleType, var_funcname, 0, 1, &ack[1])

5
zmodule_device_script_cmder_paser.cpp

@ -1,4 +1,7 @@
#include "zmodule_device_script_cmder_paser.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace iflytop;
using namespace std;
@ -9,6 +12,8 @@ using namespace std;
ack->rawlen = XACK * 4; \
});
#define PROCESS_PACKET_00(var_funcname, cmdhelp) PROCESS_PACKET_XX(var_funcname, cmdhelp, 0, 0)
#define PROCESS_PACKET_01(var_funcname, cmdhelp) PROCESS_PACKET_XX(var_funcname, cmdhelp, 0, 1, ack->getAck(0))
#define PROCESS_PACKET_02(var_funcname, cmdhelp) PROCESS_PACKET_XX(var_funcname, cmdhelp, 0, 2, ack->getAck(0), ack->getAck(1))

Loading…
Cancel
Save