6 changed files with 180 additions and 2 deletions
-
31components/step_motor_ctrl_module/step_motor_ctrl_module.cpp
-
8components/step_motor_ctrl_module/step_motor_ctrl_module.hpp
-
7components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp
-
118components/zcancmder_module/zcan_step_motor_ctrl_module.cpp
-
16components/zcancmder_module/zcan_step_motor_ctrl_module.hpp
-
2components/zprotocols/zcancmder
@ -0,0 +1,118 @@ |
|||
#include "zcan_step_motor_ctrl_module.hpp"
|
|||
using namespace iflytop; |
|||
|
|||
#define TAG "ZCanStepMotorCtrlModule"
|
|||
#if 1
|
|||
void ZCanStepMotorCtrlModule::initialize(ZCanCmder* cancmder, int id, I_StepMotorCtrlModule* module) { |
|||
m_cancmder = cancmder; |
|||
m_id = id; |
|||
m_module = module; |
|||
cancmder->registerListener(this); |
|||
} |
|||
void ZCanStepMotorCtrlModule::onRceivePacket(CanPacketRxBuffer* rxcmd) { |
|||
// printf("ZCanStepMotorCtrlModule::onRceivePacket %d %d\n", rxcmd->get_cmdheader()->cmdid, rxcmd->get_cmdheader()->subcmdid);
|
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_enable, m_id) { errorcode = m_module->enable(cmd->enable); } |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_stop, m_id) { errorcode = m_module->stop(cmd->stop_type); } |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_move_to_zero, m_id) { |
|||
errorcode = m_module->move_to_zero([this, cmdheader](I_StepMotorCtrlModule::move_to_zero_cb_status_t& status) { |
|||
osDelay(5); // 用来保证回执消息在前面
|
|||
kcmd_step_motor_ctrl_move_to_zero_report_t report = {0}; |
|||
ZLOGI(TAG, "kcmd_step_motor_ctrl_move_to_zero exec_status:%d", status.exec_status); |
|||
|
|||
report.id = m_id; |
|||
report.status = status; |
|||
m_cancmder->sendExecStatusReport(cmdheader, (uint8_t*)&report, sizeof(report)); |
|||
}); |
|||
} |
|||
END_PP(); |
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_move_to_zero_with_calibrate, m_id) { |
|||
errorcode = m_module->move_to_zero_with_calibrate(cmd->nowx, [this, cmdheader](I_StepMotorCtrlModule::move_to_zero_with_calibrate_cb_status_t& status) { |
|||
osDelay(5); // 用来保证回执消息在前面
|
|||
kcmd_step_motor_ctrl_move_to_zero_with_calibrate_report_t report = {0}; |
|||
ZLOGI(TAG, "kcmd_step_motor_ctrl_move_to_zero_with_calibrate exec_status:%d %d", status.exec_status, status.zero_shift_x); |
|||
|
|||
report.id = m_id; |
|||
report.status = status; |
|||
m_cancmder->sendExecStatusReport(cmdheader, (uint8_t*)&report, sizeof(report)); |
|||
}); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_move_to, m_id) { |
|||
errorcode = m_module->move_to(cmd->x, [this, cmdheader](I_StepMotorCtrlModule::move_to_cb_status_t& status) { |
|||
osDelay(5); // 用来保证回执消息在前面
|
|||
kcmd_step_motor_ctrl_move_to_report_t report = {0}; |
|||
ZLOGI(TAG, "kcmd_step_motor_ctrl_move_to exec_status:%d %d", status.exec_status, status.tox); |
|||
|
|||
report.id = m_id; |
|||
report.status = status; |
|||
m_cancmder->sendExecStatusReport(cmdheader, (uint8_t*)&report, sizeof(report)); |
|||
}); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_move_by, m_id) { |
|||
errorcode = m_module->move_by(cmd->dx, [this, cmdheader](I_StepMotorCtrlModule::move_by_cb_status_t& status) { |
|||
osDelay(5); // 用来保证回执消息在前面
|
|||
kcmd_step_motor_ctrl_move_by_report_t report = {0}; |
|||
ZLOGI(TAG, "kcmd_step_motor_ctrl_move_by exec_status:%d %d", status.exec_status, status.dx); |
|||
|
|||
report.id = m_id; |
|||
report.status = status; |
|||
m_cancmder->sendExecStatusReport(cmdheader, (uint8_t*)&report, sizeof(report)); |
|||
}); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_force_change_current_pos, m_id) { errorcode = m_module->force_change_current_pos(cmd->x); } |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_rotate, m_id) { |
|||
errorcode = m_module->rotate(cmd->speed, cmd->run_time, [this, cmdheader](I_StepMotorCtrlModule::rotate_cb_status_t& status) { |
|||
osDelay(5); // 用来保证回执消息在前面
|
|||
kcmd_step_motor_ctrl_rotate_report_t report = {0}; |
|||
ZLOGI(TAG, "kcmd_step_motor_ctrl_rotate exec_status:%d %d", status.exec_status, status.lastforms); |
|||
|
|||
report.id = m_id; |
|||
report.status = status; |
|||
m_cancmder->sendExecStatusReport(cmdheader, (uint8_t*)&report, sizeof(report)); |
|||
}); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_read_version, m_id) { //
|
|||
errorcode = m_module->read_version(ack->ack); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_read_status, m_id) { //
|
|||
errorcode = m_module->read_status(ack->ack); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_read_debug_info, m_id) { //
|
|||
errorcode = m_module->read_debug_info(ack->ack); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_set_run_param, m_id) { //
|
|||
errorcode = m_module->set_run_param(cmd->opt_type, cmd->param, ack->ack); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_set_warning_limit_param, m_id) { //
|
|||
errorcode = m_module->set_warning_limit_param(cmd->opt_type, cmd->param, ack->ack); |
|||
} |
|||
END_PP(); |
|||
|
|||
PROCESS_PACKET(kcmd_step_motor_ctrl_set_run_to_zero_param, m_id) { //
|
|||
errorcode = m_module->set_run_to_zero_param(cmd->opt_type, cmd->param, ack->ack); |
|||
} |
|||
END_PP(); |
|||
} |
|||
#endif
|
@ -0,0 +1,16 @@ |
|||
#pragma once
|
|||
#include "sdk/components/zprotocols/zcancmder/api/i_step_motor_ctrl_module.hpp"
|
|||
#include "sdk\components\zcancmder\zcanreceiver.hpp"
|
|||
namespace iflytop { |
|||
class ZCanStepMotorCtrlModule : public ZCanCmderListener { |
|||
ZCanCmder* m_cancmder = nullptr; |
|||
int m_id = 0; |
|||
I_StepMotorCtrlModule* m_module; |
|||
|
|||
uint8_t m_txbuf[128] = {0}; |
|||
|
|||
public: |
|||
void initialize(ZCanCmder* cancmder, int id, I_StepMotorCtrlModule* m_module); |
|||
virtual void onRceivePacket(CanPacketRxBuffer* rxcmd); |
|||
}; |
|||
} // namespace iflytop
|
@ -1 +1 @@ |
|||
Subproject commit ba0b50468b776c0bf4182300d80d5d973ebea058 |
|||
Subproject commit 614d8b811b4737c5b2e08e9abc3e10a5fd6cb11c |
Write
Preview
Loading…
Cancel
Save
Reference in new issue