Browse Source

update

master
zhaohe 2 years ago
parent
commit
9199515dfc
  1. 33
      api/i_xyrobot_ctrl_module.hpp
  2. 11
      zcancmder_protocol.hpp

33
api/i_xyrobot_ctrl_module.hpp

@ -73,11 +73,39 @@ class I_XYRobotCtrlModule {
uint8_t pad; uint8_t pad;
} warning_limit_param_t; } warning_limit_param_t;
typedef struct {
s32 robot_type;
s32 x_shaft;
s32 y_shaft;
s32 ihold;
s32 irun;
s32 iholddelay;
s32 distance_scale; // 0.001
s32 shift_x;
s32 shift_y;
// limit
s32 acc;
s32 dec;
s32 breakdec;
s32 maxspeed;
s32 min_x;
s32 max_x;
s32 min_y;
s32 max_y;
s32 run_to_zero_max_d;
s32 leave_from_zero_max_d;
s32 run_to_zero_speed;
s32 run_to_zero_dec;
} flash_config_t;
#pragma pack() #pragma pack()
public: public:
virtual int32_t move_to(int32_t x, int32_t y, int speed, action_cb_status_t status_cb) = 0; virtual int32_t move_to(int32_t x, int32_t y, int speed, action_cb_status_t status_cb) = 0;
virtual int32_t move_by(int32_t dx, int32_t dy, action_cb_status_t status_cb) = 0;
virtual int32_t move_by(int32_t dx, int32_t dy, int speed, action_cb_status_t status_cb) = 0;
virtual int32_t move_by_no_limit(int32_t dx, int32_t dy, int speed, action_cb_status_t status_cb) = 0;
virtual int32_t move_to_zero(action_cb_status_t status_cb) = 0; virtual int32_t move_to_zero(action_cb_status_t status_cb) = 0;
virtual int32_t move_to_zero_with_calibrate(int32_t nowx, int32_t nowxy, action_cb_status_t status_cb) = 0; virtual int32_t move_to_zero_with_calibrate(int32_t nowx, int32_t nowxy, action_cb_status_t status_cb) = 0;
@ -92,6 +120,9 @@ class I_XYRobotCtrlModule {
virtual int32_t set_base_param(const base_param_t& param) = 0; virtual int32_t set_base_param(const base_param_t& param) = 0;
virtual int32_t get_base_param(base_param_t& ack) = 0; virtual int32_t get_base_param(base_param_t& ack) = 0;
virtual int32_t flush() = 0;
virtual int32_t factory_reset() = 0;
virtual ~I_XYRobotCtrlModule() {} virtual ~I_XYRobotCtrlModule() {}
}; };
} // namespace iflytop } // namespace iflytop

11
zcancmder_protocol.hpp

@ -34,13 +34,18 @@ typedef enum {
kcmd_xy_robot_ctrl_move_to = CMDID(1006, 4), // 机器人移动到指定位置 kcmd_xy_robot_ctrl_move_to = CMDID(1006, 4), // 机器人移动到指定位置
kcmd_xy_robot_ctrl_move_by = CMDID(1006, 5), // 机器人移动指定距离 kcmd_xy_robot_ctrl_move_by = CMDID(1006, 5), // 机器人移动指定距离
kcmd_xy_robot_ctrl_force_change_current_pos = CMDID(1006, 6), // 强制修改当前位置 kcmd_xy_robot_ctrl_force_change_current_pos = CMDID(1006, 6), // 强制修改当前位置
kcmd_xy_robot_ctrl_move_by_no_limit = CMDID(1006, 7), // 机器人相对移动,没有限制
// kcmd_xy_robot_ctrl_read_pos_by_move2zero = CMDID(1006, 8), // 机器人先执行归零动作,然后读取位置偏差,计算出来时候的坐标,然后再移动回一开始的位置。
kcmd_xy_robot_ctrl_read_version = CMDID(1006, 50), // 读取模块型号版本信息 kcmd_xy_robot_ctrl_read_version = CMDID(1006, 50), // 读取模块型号版本信息
kcmd_xy_robot_ctrl_read_status = CMDID(1006, 51), // 读取模块精简状态信息 kcmd_xy_robot_ctrl_read_status = CMDID(1006, 51), // 读取模块精简状态信息
kcmd_xy_robot_ctrl_read_detailed_status = CMDID(1006, 52), // 读取模块详细状态信息 kcmd_xy_robot_ctrl_read_detailed_status = CMDID(1006, 52), // 读取模块详细状态信息
// kcmd_xy_robot_ctrl_read_read_pos_by_move2zero_exec_state = CMDID(1006, 53), // 机器人先执行归零动作,然后读取位置偏差,计算出来时候的坐标,然后再移动回一开始的位置。
kcmd_xy_robot_ctrl_set_base_param = CMDID(1006, 100), // 设置运行参数 kcmd_xy_robot_ctrl_set_base_param = CMDID(1006, 100), // 设置运行参数
kcmd_xy_robot_ctrl_get_base_param = CMDID(1006, 101), // 设置运行参数 kcmd_xy_robot_ctrl_get_base_param = CMDID(1006, 101), // 设置运行参数
kcmd_xy_robot_ctrl_flush = CMDID(1006, 110), // 存储参数到flash中
kcmd_xy_robot_ctrl_factory_reset = CMDID(1006, 111), // 恢复出厂设置
// kcmd_xy_robot_ctrl_set_warning_limit_param = CMDID(1006, 101), // 设置控制限制参数 // kcmd_xy_robot_ctrl_set_warning_limit_param = CMDID(1006, 101), // 设置控制限制参数
// kcmd_xy_robot_ctrl_set_run_to_zero_param = CMDID(1006, 102), // 设置归零参数 // kcmd_xy_robot_ctrl_set_run_to_zero_param = CMDID(1006, 102), // 设置归零参数
@ -199,6 +204,8 @@ ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero, CMD(u16 id;), ACK(u8
ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero_with_calibrate, CMD(u16 id; s32 nowx; s32 nowy;), ACK(u8 pad;), REPORT(int32_t exec_status;)); ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero_with_calibrate, CMD(u16 id; s32 nowx; s32 nowy;), ACK(u8 pad;), REPORT(int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to, CMD(u16 id; s32 x; s32 y; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;)); ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to, CMD(u16 id; s32 x; s32 y; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by, CMD(u16 id; s32 dx; s32 dy; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;)); ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by, CMD(u16 id; s32 dx; s32 dy; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by_no_limit, CMD(u16 id; s32 dx; s32 dy; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_force_change_current_pos, CMD(u16 id; s32 x; s32 y;), ACK(u8 pad;)); ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_force_change_current_pos, CMD(u16 id; s32 x; s32 y;), ACK(u8 pad;));
// READ // READ
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_version, CMD(u16 id;), ACK(I_XYRobotCtrlModule::version_t ack;)); ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_version, CMD(u16 id;), ACK(I_XYRobotCtrlModule::version_t ack;));
@ -207,6 +214,10 @@ ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_detailed_status, CMD(u16 id;), ACK(I_XYR
// SET // SET
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_base_param, CMD(u16 id; I_XYRobotCtrlModule::base_param_t param;), ACK(u8 pad;)); ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_base_param, CMD(u16 id; I_XYRobotCtrlModule::base_param_t param;), ACK(u8 pad;));
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_get_base_param, CMD(u16 id;), ACK(I_XYRobotCtrlModule::base_param_t ack;)); ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_get_base_param, CMD(u16 id;), ACK(I_XYRobotCtrlModule::base_param_t ack;));
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_flush, CMD(u16 id;), ACK(u8 pad;));
ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_factory_reset, CMD(u16 id;), ACK(u8 pad;));
// ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_warning_limit_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::warning_limit_param_t param;), ACK( I_XYRobotCtrlModule::warning_limit_param_t ack;)); // ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_warning_limit_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::warning_limit_param_t param;), ACK( I_XYRobotCtrlModule::warning_limit_param_t ack;));
// ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_to_zero_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::run_to_zero_param_t param;), ACK( I_XYRobotCtrlModule::run_to_zero_param_t ack;)); // ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_to_zero_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::run_to_zero_param_t param;), ACK( I_XYRobotCtrlModule::run_to_zero_param_t ack;));

Loading…
Cancel
Save