diff --git a/components/zcancmder/zcan_protocol_parser.cpp b/components/zcancmder/zcan_protocol_parser.cpp index 4923af5..987c6bf 100644 --- a/components/zcancmder/zcan_protocol_parser.cpp +++ b/components/zcancmder/zcan_protocol_parser.cpp @@ -1,6 +1,7 @@ #include "zcan_protocol_parser.hpp" #include +#include #include "sdk/os/zos.hpp" @@ -133,6 +134,8 @@ void ZCanProtocolParser::_onRceivePacket(ZIModule* module, zcr_cmd_header_t* rxc cxt.acklen = 0; cxt.ackbuf = ackbuf; + memset(ackbuf, 0, sizeof(ackbuf)); + int32_t ecode = fn->cb(&cxt); if (ecode != 0) { m_cancmder->sendErrorAck(rxcmd, ecode); @@ -147,9 +150,9 @@ void ZCanProtocolParser::_onRceivePacket(ZIModule* module, zcr_cmd_header_t* rxc if (module == nullptr) return err::koperation_not_support; \ if (paraNum >= 0 && paraNum != cxt->paramlen / 4) return err::kcmd_param_num_error; - #define GET_MODULE(paraNum) \ - auto* module = dynamic_cast(cxt->module); \ - if (module == nullptr) return err::koperation_not_support; +#define GET_MODULE(paraNum) \ + auto* module = dynamic_cast(cxt->module); \ + if (module == nullptr) return err::koperation_not_support; #define MODULE_CLASS ZIModule int32_t ZCanProtocolParser::module_ping(cmdcontxt_t* cxt) { diff --git a/components/zcancmder/zcan_protocol_parser.hpp b/components/zcancmder/zcan_protocol_parser.hpp index e096023..c7da80e 100644 --- a/components/zcancmder/zcan_protocol_parser.hpp +++ b/components/zcancmder/zcan_protocol_parser.hpp @@ -29,7 +29,7 @@ class ZCanProtocolParser : public IZCanReceiverListener { IZCanReceiver* m_cancmder = nullptr; map m_modulers; - uint8_t ackbuf[ZCANCMD_READ_BUF_MAX_SIZE + 100]; + uint8_t ackbuf[ZCANCMD_READ_BUF_MAX_SIZE + 10]; int32_t acklen = 0; cmdfn_t cmdfnlist[100];