Browse Source

update

master
zhaohe 2 years ago
parent
commit
7fb1116dc6
  1. 6
      components/cmdscheduler/cmd_scheduler_v2.cpp
  2. 38
      components/cmdscheduler/cmd_scheduler_v2.hpp
  3. 2
      components/eq_20_asb_motor/eq20_servomotor.cpp
  4. 2
      components/eq_20_asb_motor/eq20_servomotor.hpp
  5. 1
      components/zcancmder/basic.cpp

6
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;

38
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

2
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;

2
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);

1
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) {

Loading…
Cancel
Save