zcancmder_v2
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.

58 lines
2.2 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 stop();
virtual int32_t brake();
virtual int32_t get_last_exec_status(int32_t *status);
virtual int32_t get_status(int32_t *status);
virtual int32_t set_param(int32_t param_id, int32_t param_value);
virtual int32_t get_param(int32_t param_id, int32_t *param_value);
virtual int32_t readio(int32_t *io);
virtual int32_t writeio(int32_t io);
virtual int32_t read_adc(int adcindex, int32_t *adc);
/*******************************************************************************
* ZIMotor *
*******************************************************************************/
virtual int32_t motor_enable(int32_t enable);
virtual int32_t motor_rotate(int32_t direction, int32_t velocitylevel);
virtual int32_t motor_move_by(int32_t distance, int32_t velocitylevel);
virtual int32_t motor_move_to(int32_t position, int32_t velocitylevel);
virtual int32_t motor_move_to_with_torque(int32_t pos, int32_t torque);
/*******************************************************************************
* ZIXYMotor *
*******************************************************************************/
virtual int32_t xymotor_enable(int32_t enable);
virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t velocitylevel);
virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t velocitylevel);
};
} // namespace iflytop