From bd78cea8fc9630dd8f6147f95f38986e055a4cdb Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 3 Jun 2024 12:54:38 +0800 Subject: [PATCH] recode --- api/temp_i_mini_servo_module.hpp | 84 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 api/temp_i_mini_servo_module.hpp diff --git a/api/temp_i_mini_servo_module.hpp b/api/temp_i_mini_servo_module.hpp new file mode 100644 index 0000000..26e5a42 --- /dev/null +++ b/api/temp_i_mini_servo_module.hpp @@ -0,0 +1,84 @@ +#pragma once +#include + +#include + +#include "basic_type.hpp" +// + +namespace iflytop { +using namespace std; +class I_MiniServoModule { + public: + typedef enum { kNormalStop, kBreakStop } StopType_t; +#pragma pack(1) + + /******************************************************************************* + * READ * + *******************************************************************************/ + typedef struct { + int32_t version; + } version_t; + + typedef struct { + uint8_t status; // 0:normal 1:运行中 2:offline 3:故障 + uint8_t ioState; // + int16_t torque; // + int16_t speed; // + int16_t pos; // + } status_t; + + typedef struct { + uint8_t status; + uint8_t ioState; + int16_t torque; + int16_t speed; + int16_t pos; + int16_t voltage; + int16_t current; + int16_t temperature; + int16_t error_flag; + } detailed_status_t; + + /******************************************************************************* + * CFG * + *******************************************************************************/ + + typedef struct { + u16 posCalibrate; + u16 minlimit; + u16 maxlimit; + u16 maxtemp; + u16 minvoltage; + u16 maxvoltage; + u16 protectCurrent; + u16 protectTorque; + } basic_param_t; + +#pragma pack() + + 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 torque, s32 run_time, action_cb_status_t status_cb) = 0; + // virtual int32_t move_to(s32 pos, s32 speed, s32 torque, action_cb_status_t status_cb) = 0; + // virtual int32_t move_by(s32 pos, s32 speed, s32 torque, action_cb_status_t status_cb) = 0; + // virtual int32_t run_with_torque(s32 torque, s32 run_time, action_cb_status_t status_cb) = 0; + // virtual int32_t move_by_nolimit(s32 pos, s32 speed, s32 torque, action_cb_status_t status_cb) = 0; + + // virtual int32_t move_forward(s32 torque) = 0; + // virtual int32_t move_backward(s32 torque) = 0; + + // virtual int32_t read_version(version_t& version) = 0; + // virtual int32_t read_status(status_t& status) = 0; + // virtual int32_t read_detailed_status(detailed_status_t& debug_info) = 0; + + // virtual int32_t set_basic_param(basic_param_t& param) = 0; + + // virtual int32_t get_basic_param(basic_param_t& param) = 0; + + virtual ~I_MiniServoModule() {} +}; +} // namespace iflytop