Browse Source

update

master
zhaohe 2 years ago
parent
commit
b85eb03a3b
  1. 118
      api/i_mini_servo_module.hpp
  2. 6
      zcancmder_protocol.hpp

118
api/i_mini_servo_module.hpp

@ -0,0 +1,118 @@
#pragma once
#include <stdint.h>
#include <functional>
#include "basic_type.hpp"
//
namespace iflytop {
using namespace std;
class I_MiniServoModule {
public:
typedef enum { kNormalStop, kBreakStop } StopType_t;
typedef struct {
u8 id;
u8 status;
s32 has_run_time;
} rotate_cb_status_t;
typedef struct {
u8 id;
u8 status;
s32 pos;
} move_to_cb_status_t;
typedef struct {
u8 id;
u8 status;
s32 pos;
} move_by_cb_status_t;
typedef struct {
u8 id;
u8 status;
s32 has_run_time;
} run_with_torque_cb_status_t;
typedef struct {
u8 id;
u8 status;
s32 pos;
} move_by_nolimit_cb_status_t;
/*******************************************************************************
* READ *
*******************************************************************************/
typedef struct {
int32_t version;
} version_t;
typedef struct {
uint8_t status; // 0:normal 1:ÔËÐÐÖÐ 2:offline 3:¹ÊÕÏ
uint8_t io_state; //
int16_t torque; //
int16_t speed; //
int16_t pos; //
} status_t;
typedef struct {
uint8_t status;
uint8_t io_state;
int16_t torque;
int16_t speed;
int16_t pos;
int16_t voltage;
int16_t current;
int16_t temperature;
int16_t error_flag;
} debug_info_t;
/*******************************************************************************
* CFG *
*******************************************************************************/
typedef struct {
s16 pos_calibrate;
} basic_param_t;
typedef struct {
s16 minlimit;
s16 maxlimit;
} run_param_t;
typedef struct {
s16 mintemp;
s16 maxtemp;
s16 minvoltage;
s16 maxvoltage;
s16 mincurrent;
s16 maxcurrent;
} warning_limit_param_t;
public:
virtual int32_t enable(u8 enable) = 0;
virtual int32_t stop(u8 stop_type) = 0;
virtual int32_t position_calibrate(s32 calibrate_pos) = 0;
virtual int32_t rotate(s32 speed, s32 run_time, function<void(rotate_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_to(s32 pos, s32 speed, s32 torque, function<void(move_to_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_by(s32 pos, s32 speed, s32 torque, function<void(move_by_cb_status_t& status)> status_cb) = 0;
virtual int32_t run_with_torque(s32 torque, s32 run_time, function<void(run_with_torque_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_by_nolimit(s32 pos, s32 speed, s32 torque, function<void(move_by_nolimit_cb_status_t& status)> status_cb) = 0;
virtual int32_t read_version(version_t& version) = 0;
virtual int32_t read_status(status_t& status) = 0;
virtual int32_t read_debug_info(debug_info_t& debug_info) = 0;
virtual int32_t set_run_param(run_param_t& param) = 0;
virtual int32_t set_basic_param(basic_param_t& param) = 0;
virtual int32_t set_warning_limit_param(warning_limit_param_t& param) = 0;
virtual int32_t get_run_param(run_param_t& param) = 0;
virtual int32_t get_basic_param(basic_param_t& param) = 0;
virtual int32_t get_warning_limit_param(warning_limit_param_t& param) = 0;
};
} // namespace iflytop

6
zcancmder_protocol.hpp

@ -76,8 +76,10 @@ typedef enum {
kcmd_mini_servo_ctrl_read_status = CMDID(1008, 51), // 读取模块精简状态信息 kcmd_mini_servo_ctrl_read_status = CMDID(1008, 51), // 读取模块精简状态信息
kcmd_mini_servo_ctrl_read_debug_info = CMDID(1008, 52), // 读取模块详细状态信息 kcmd_mini_servo_ctrl_read_debug_info = CMDID(1008, 52), // 读取模块详细状态信息
kcmd_mini_servo_ctrl_set_run_param = CMDID(1008, 100), // 位置限制 最大位置,最小位置
kcmd_mini_servo_ctrl_set_warning_limit_param = CMDID(1008, 101), // 过压保护设置 最大电压 最小电压
kcmd_mini_servo_ctrl_set_run_param = CMDID(1008, 100),
kcmd_mini_servo_ctrl_get_run_param = CMDID(1008, 101),
kcmd_mini_servo_ctrl_set_warning_limit_param = CMDID(1008, 101),
kcmd_mini_servo_ctrl_get_warning_limit_param = CMDID(1008, 102),
/******************************************************************************* /*******************************************************************************
* |Module_1009:EEPROM * * |Module_1009:EEPROM *

Loading…
Cancel
Save