From 7fb1116dc6988423fd5131a18ccdb88ed4fb3efb Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 21 Oct 2023 14:38:50 +0800 Subject: [PATCH] update --- components/cmdscheduler/cmd_scheduler_v2.cpp | 6 ++-- components/cmdscheduler/cmd_scheduler_v2.hpp | 38 +++----------------------- components/eq_20_asb_motor/eq20_servomotor.cpp | 2 +- components/eq_20_asb_motor/eq20_servomotor.hpp | 2 +- components/zcancmder/basic.cpp | 1 - 5 files changed, 9 insertions(+), 40 deletions(-) diff --git a/components/cmdscheduler/cmd_scheduler_v2.cpp b/components/cmdscheduler/cmd_scheduler_v2.cpp index 5b3f2a3..0da0aa8 100644 --- a/components/cmdscheduler/cmd_scheduler_v2.cpp +++ b/components/cmdscheduler/cmd_scheduler_v2.cpp @@ -102,7 +102,7 @@ void CmdSchedulerV2::dumpack(ICmdParserACK* ack) { printf("\n"); } else if (ack->acktype == ack->kAckType_int32) { for (int i = 0; i < ack->getAckInt32Num(); i++) { - printf(" %d", ack->getAckInt32Val(i)); + printf(" %d", (int)ack->getAckInt32Val(i)); } printf("\n"); } else if (ack->acktype == ack->kAckType_buf) { @@ -114,7 +114,7 @@ void CmdSchedulerV2::dumpack(ICmdParserACK* ack) { printf("\n"); } } else { - printf("\tfailed:%s(%d)\n", err::error2str(ack->ecode), ack->ecode); + printf("\tfailed:%s(%d)\n", err::error2str(ack->ecode),(int) ack->ecode); } } @@ -166,7 +166,7 @@ void CmdSchedulerV2::remove_note(char* input, int inputlen) { } } -void CmdSchedulerV2::prase_cmd(char* input, int inputlen, int& argc, char* argv[]) { +void CmdSchedulerV2::prase_cmd(char* input, int inputlen, int32_t& argc, char* argv[]) { for (int i = 0; input[i] == 0 || i < inputlen; i++) { if (input[i] == ' ' || input[i] == '\r' || input[i] == '\n') { input[i] = 0; diff --git a/components/cmdscheduler/cmd_scheduler_v2.hpp b/components/cmdscheduler/cmd_scheduler_v2.hpp index 23be313..1075455 100644 --- a/components/cmdscheduler/cmd_scheduler_v2.hpp +++ b/components/cmdscheduler/cmd_scheduler_v2.hpp @@ -32,48 +32,18 @@ class CmdSchedulerV2 : public ICmdParser { char cmdcache[1024] = {0}; public: - void initialize(UART_HandleTypeDef* huart, uint32_t rxbufsize); - void registerCmd(const char* cmdname, const char* helpinfo, int paraNum, ICmdFunction_t cmdimpl); + void initialize(UART_HandleTypeDef* huart, uint32_t rxbufsize); + virtual void regCMD(const char* cmdname, const char* helpinfo, int paraNum, ICmdFunction_t cmdimpl) override { registerCmd(cmdname, helpinfo, paraNum, cmdimpl); } + void registerCmd(const char* cmdname, const char* helpinfo, int paraNum, ICmdFunction_t cmdimpl); // void tx(const char* data, int len); void schedule(); private: void regbasiccmd(); int32_t callcmd(const char* cmd, ICmdParserACK* ack); - void prase_cmd(char* input, int inputlen, int& argc, char* argv[]); + void prase_cmd(char* input, int inputlen, int32_t& argc, char* argv[]); void remove_note(char* input, int inputlen); void dumpack(ICmdParserACK* ack); }; -#if 0 - -#define DO_CMD(cond) \ - { \ - int32_t ret = cond; \ - if (ret != 0) { \ - return ret; \ - } \ - } -#define IMPL_CMD(cmd, ...) \ - DO_CMD(findmodule(con->getInt(1), &module)); \ - DO_CMD(module->cmd(__VA_ARGS__)); \ - return (int32_t)0; - -#define IMPL_READ_STATE(cmd, ...) \ - DO_CMD(findmodule(con->getInt(1), &module)); \ - DO_CMD(module->cmd(__VA_ARGS__)); \ - cmd_dump_ack(ack); \ - return (int32_t)0; - -#define REG_CMD___NO_ACK(prefix, cmd, para, npara, ...) /**/ \ - m_cmdScheduler->registerCmd(prefix #cmd, para, npara, [this](CmdSchedulerV2::Context* con) { /**/ \ - IMPL_CMD(cmd, __VA_ARGS__); /**/ \ - }); - -#define REG_CMD_WITH_ACK(prefix, cmd, para, npara, acktype, ...) /**/ \ - m_cmdScheduler->registerCmd(prefix #cmd, para, npara, [this](CmdSchedulerV2::Context* con) { /**/ \ - acktype ack; /**/ \ - IMPL_READ_STATE(cmd, __VA_ARGS__); /**/ \ - }); -#endif } // namespace iflytop \ No newline at end of file diff --git a/components/eq_20_asb_motor/eq20_servomotor.cpp b/components/eq_20_asb_motor/eq20_servomotor.cpp index 4dd16fe..b25556d 100644 --- a/components/eq_20_asb_motor/eq20_servomotor.cpp +++ b/components/eq_20_asb_motor/eq20_servomotor.cpp @@ -9,7 +9,7 @@ using namespace iflytop; #define TAG "Eq20ServoMotor" -void Eq20ServoMotor::init(ModbusBlockHost *modbusBlockHost, int moduleid, int motorid) { +void Eq20ServoMotor::init(int moduleid, ModbusBlockHost *modbusBlockHost, int motorid ) { // this->com = com; m_modbusBlockHost = modbusBlockHost; m_deviceId = motorid; diff --git a/components/eq_20_asb_motor/eq20_servomotor.hpp b/components/eq_20_asb_motor/eq20_servomotor.hpp index 5d89053..a7df57b 100644 --- a/components/eq_20_asb_motor/eq20_servomotor.hpp +++ b/components/eq_20_asb_motor/eq20_servomotor.hpp @@ -72,7 +72,7 @@ class Eq20ServoMotor : public ZIModule, public ZIMotor { Eq20ServoMotor(/* args */){}; ~Eq20ServoMotor(){}; - void init(ModbusBlockHost *modbusBlockHost, int moduleid, int motorid = 1); + void init(int moduleid, ModbusBlockHost *modbusBlockHost, int motorid); int32_t enable(int32_t enable); diff --git a/components/zcancmder/basic.cpp b/components/zcancmder/basic.cpp index a41f201..6c006c6 100644 --- a/components/zcancmder/basic.cpp +++ b/components/zcancmder/basic.cpp @@ -24,7 +24,6 @@ uint8_t *CanPacketRxBuffer::get_data() { return cmdheader->data; } uint16_t CanPacketRxBuffer::get_datalen() { - zcr_cmd_header_t *cmdheader = (zcr_cmd_header_t *)rxdata; return rxdataSize - sizeof(zcr_cmd_header_t); } bool CanPacketRxBuffer::iscmd(int32_t id) {