You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.6 KiB
61 lines
2.6 KiB
#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;
|
|
|
|
/*******************************************************************************
|
|
* 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;
|
|
|
|
/*******************************************************************************
|
|
* 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
|