2 changed files with 128 additions and 45 deletions
@ -0,0 +1,108 @@ |
|||
#pragma once
|
|||
#include <stdint.h>
|
|||
|
|||
#include <functional>
|
|||
|
|||
#include "basic_type.hpp"
|
|||
//
|
|||
|
|||
namespace iflytop { |
|||
using namespace std; |
|||
class I_StepMotorCtrlModule { |
|||
public: |
|||
typedef enum { hbot, corexy } RobotType_t; |
|||
typedef enum { kNormalStop, kBreakStop } StopType_t; |
|||
|
|||
/*******************************************************************************
|
|||
* ACTION * |
|||
*******************************************************************************/ |
|||
|
|||
typedef struct { |
|||
int32_t exec_status; |
|||
int32_t tox; |
|||
} move_to_cb_status_t; |
|||
|
|||
typedef struct { |
|||
int32_t exec_status; |
|||
int32_t dx; |
|||
} move_by_cb_status_t; |
|||
|
|||
typedef struct { |
|||
int32_t exec_status; |
|||
} move_to_zero_cb_status_t; |
|||
|
|||
typedef struct { |
|||
int32_t exec_status; |
|||
int32_t zero_shift_x; |
|||
} move_to_zero_with_calibrate_cb_status_t; |
|||
|
|||
typedef struct { |
|||
int32_t exec_status; |
|||
int32_t lastforms; |
|||
} rotate_cb_status_t; |
|||
|
|||
/*******************************************************************************
|
|||
* READ * |
|||
*******************************************************************************/ |
|||
typedef struct { |
|||
int32_t version; |
|||
} version_t; |
|||
|
|||
typedef struct { |
|||
uint8_t status; |
|||
int32_t x; |
|||
} status_t; |
|||
|
|||
typedef struct { |
|||
uint8_t status; |
|||
int32_t x; |
|||
} debug_info_t; |
|||
|
|||
/*******************************************************************************
|
|||
* CFG * |
|||
*******************************************************************************/ |
|||
|
|||
typedef struct { |
|||
u8 x_shaft; |
|||
u8 ihold; |
|||
u8 irun; |
|||
u16 iholddelay; |
|||
s32 distance_scale; // 0.001
|
|||
s32 shift_x; |
|||
s32 acc; |
|||
s32 dec; |
|||
s32 maxspeed; |
|||
s32 min_x; |
|||
s32 max_x; |
|||
} run_param_t; |
|||
|
|||
typedef struct { |
|||
uint8_t pad; |
|||
} warning_limit_param_t; |
|||
|
|||
typedef struct { |
|||
u32 move_to_zero_max_d; |
|||
u32 leave_from_zero_max_d; |
|||
u32 speed; |
|||
u32 dec; |
|||
} run_to_zero_param_t; |
|||
|
|||
public: |
|||
virtual int32_t move_to(int32_t x, function<void(move_to_cb_status_t& status)> status_cb) = 0; |
|||
virtual int32_t move_by(int32_t dx, function<void(move_by_cb_status_t& status)> status_cb) = 0; |
|||
virtual int32_t move_to_zero(function<void(move_to_zero_cb_status_t& status)> status_cb) = 0; |
|||
virtual int32_t move_to_zero_with_calibrate(int32_t x, function<void(move_to_zero_with_calibrate_cb_status_t& status)> status_cb) = 0; |
|||
virtual int32_t enable(bool venable) = 0; |
|||
virtual int32_t stop(uint8_t stopType) = 0; |
|||
virtual int32_t force_change_current_pos(int32_t x) = 0; |
|||
virtual int32_t rotate(int32_t speed, int32_t lastforms, function<void(rotate_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(uint8_t operation, const run_param_t& param, run_param_t& ack) = 0; |
|||
virtual int32_t set_run_to_zero_param(uint8_t operation, const run_to_zero_param_t& param, run_to_zero_param_t& ack) = 0; |
|||
virtual int32_t set_warning_limit_param(uint8_t operation, const warning_limit_param_t& param, warning_limit_param_t& ack) = 0; |
|||
}; |
|||
} // namespace iflytop
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue