|
|
#pragma once
#include <map>
#include "api/api.hpp"
#include "api\i_zcan_cmder_master.hpp"
#include "cmdid.hpp"
namespace iflytop { class ZIProtocolProxy : public ZIMotor, //
public ZIXYMotor, //
public ZIModule { private: IZcanCmderMaster *m_cancmder; int32_t m_id = 0;
public: void initialize(IZCanCmder *cancmder, int32_t id);
virtual int32_t getid(int32_t *id) { *id = m_id; return 0; };
/*******************************************************************************
* ZIModule * *******************************************************************************/ 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_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;
virtual int32_t module_get_error(int32_t *iserror) override; virtual int32_t module_clear_error() override;
virtual int32_t module_set_inited_flag(int32_t flag) override; virtual int32_t module_get_inited_flag(int32_t *flag) override;
/*******************************************************************************
* ZIMotor * *******************************************************************************/
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 direction, int32_t motor_velocity, int32_t acc) override; virtual int32_t motor_move_to(int32_t direction, 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) override; virtual int32_t motor_set_current_pos_by_change_shift(int32_t pos) override;
/*******************************************************************************
* ZIXYMotor * *******************************************************************************/ virtual int32_t xymotor_enable(int32_t enable) override; virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t motor_velocity) override; virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t motor_velocity) override; };
} // namespace iflytop
|