|
@ -4,18 +4,20 @@ |
|
|
//
|
|
|
//
|
|
|
#include "feite_servo_motor.hpp"
|
|
|
#include "feite_servo_motor.hpp"
|
|
|
#include "sdk/components/zprotocols/zcancmder/api/i_mini_servo_module.hpp"
|
|
|
#include "sdk/components/zprotocols/zcancmder/api/i_mini_servo_module.hpp"
|
|
|
|
|
|
#include "sdk\components\zprotocols\zcancmder_v2\api\api.hpp"
|
|
|
|
|
|
|
|
|
namespace iflytop { |
|
|
namespace iflytop { |
|
|
class MiniRobotCtrlModule : public I_MiniServoModule { |
|
|
|
|
|
|
|
|
class MiniRobotCtrlModule : public I_MiniServoModule, public ZIModule, public ZIMotor { |
|
|
FeiTeServoMotor *m_bus; |
|
|
FeiTeServoMotor *m_bus; |
|
|
uint8_t m_id; |
|
|
uint8_t m_id; |
|
|
|
|
|
uint16_t m_module_id; |
|
|
ZThread m_thread; |
|
|
ZThread m_thread; |
|
|
s32 m_pos_shift; |
|
|
s32 m_pos_shift; |
|
|
|
|
|
|
|
|
s32 m_last_exec_status = 0; |
|
|
s32 m_last_exec_status = 0; |
|
|
|
|
|
|
|
|
public: |
|
|
public: |
|
|
void initialize(FeiTeServoMotor* bus, uint8_t id); |
|
|
|
|
|
|
|
|
void initialize(uint16_t module_id, FeiTeServoMotor *bus, uint8_t idinbus); |
|
|
|
|
|
|
|
|
virtual int32_t enable(u8 enable) override; |
|
|
virtual int32_t enable(u8 enable) override; |
|
|
virtual int32_t stop(u8 stop_type) override; |
|
|
virtual int32_t stop(u8 stop_type) override; |
|
@ -35,13 +37,46 @@ class MiniRobotCtrlModule : public I_MiniServoModule { |
|
|
virtual int32_t read_status(status_t &status) override; |
|
|
virtual int32_t read_status(status_t &status) override; |
|
|
virtual int32_t read_detailed_status(detailed_status_t &debug_info) override; |
|
|
virtual int32_t read_detailed_status(detailed_status_t &debug_info) override; |
|
|
|
|
|
|
|
|
// virtual int32_t set_run_param(run_param_t& param) override;
|
|
|
|
|
|
virtual int32_t set_basic_param(basic_param_t ¶m) override; |
|
|
virtual int32_t set_basic_param(basic_param_t ¶m) override; |
|
|
// virtual int32_t set_warning_limit_param(warning_limit_param_t& param) override;
|
|
|
|
|
|
|
|
|
|
|
|
// virtual int32_t get_run_param(run_param_t& param) override;
|
|
|
|
|
|
virtual int32_t get_basic_param(basic_param_t ¶m) override; |
|
|
virtual int32_t get_basic_param(basic_param_t ¶m) override; |
|
|
// virtual int32_t get_warning_limit_param(warning_limit_param_t& param) override;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
|
* OVERRIDE MODULE * |
|
|
|
|
|
*******************************************************************************/ |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t getid(int32_t *id) override; |
|
|
|
|
|
virtual int32_t module_stop() override; |
|
|
|
|
|
virtual int32_t module_break() override; |
|
|
|
|
|
virtual int32_t module_get_last_exec_status(int32_t *status) override; |
|
|
|
|
|
virtual int32_t module_get_status(int32_t *status) override; |
|
|
|
|
|
virtual int32_t module_get_error(int32_t *iserror) override; |
|
|
|
|
|
virtual int32_t module_clear_error() override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t module_set_param(int32_t param_id, int32_t param_value) override; |
|
|
|
|
|
virtual int32_t module_get_param(int32_t param_id, int32_t *param_value) override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t module_readio(int32_t *io) override; |
|
|
|
|
|
virtual int32_t module_writeio(int32_t io) override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) override; |
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
|
* Motor * |
|
|
|
|
|
*******************************************************************************/ |
|
|
|
|
|
virtual int32_t motor_enable(int32_t enable) override; |
|
|
|
|
|
virtual int32_t motor_rotate(int32_t direction, int32_t motor_velocity, int32_t acc) override; |
|
|
|
|
|
virtual int32_t motor_move_by(int32_t distance, int32_t motor_velocity, int32_t acc) override; |
|
|
|
|
|
virtual int32_t motor_move_to(int32_t position, int32_t motor_velocity, int32_t acc) override; |
|
|
|
|
|
virtual int32_t motor_move_to_with_torque(int32_t pos, int32_t torque) override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t motor_rotate_acctime(int32_t direction, int32_t motor_velocity, int32_t acctime) override; |
|
|
|
|
|
virtual int32_t motor_move_by_acctime(int32_t distance, int32_t motor_velocity, int32_t acctime) override; |
|
|
|
|
|
virtual int32_t motor_move_to_acctime(int32_t position, int32_t motor_velocity, int32_t acctime) override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t motor_move_to_zero_forward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override; |
|
|
|
|
|
virtual int32_t motor_move_to_zero_backward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override; |
|
|
|
|
|
|
|
|
|
|
|
virtual int32_t motor_read_pos(int32_t *pos); |
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
|
void call_status_cb(action_cb_status_t cb, int32_t status); |
|
|
void call_status_cb(action_cb_status_t cb, int32_t status); |
|
|