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.

57 lines
2.2 KiB

2 years ago
  1. #pragma once
  2. #include <map>
  3. #include "api/api.hpp"
  4. #include "api\i_zcan_cmder_master.hpp"
  5. #include "cmdid.hpp"
  6. namespace iflytop {
  7. class ZIProtocolProxy : public ZIMotor, //
  8. public ZIXYMotor, //
  9. public ZIModule {
  10. private:
  11. IZcanCmderMaster *m_cancmder;
  12. int32_t m_id = 0;
  13. public:
  14. void initialize(IZCanCmder *cancmder, int32_t id);
  15. virtual int32_t getid(int32_t *id) {
  16. *id = m_id;
  17. return 0;
  18. };
  19. /*******************************************************************************
  20. * ZIModule *
  21. *******************************************************************************/
  22. virtual int32_t stop();
  23. virtual int32_t brake();
  24. virtual int32_t get_last_exec_status(int32_t *status);
  25. virtual int32_t get_status(int32_t *status);
  26. virtual int32_t set_param(int32_t param_id, int32_t param_value);
  27. virtual int32_t get_param(int32_t param_id, int32_t *param_value);
  28. virtual int32_t readio(int32_t *io);
  29. virtual int32_t writeio(int32_t io);
  30. virtual int32_t read_adc(int adcindex, int32_t *adc);
  31. /*******************************************************************************
  32. * ZIMotor *
  33. *******************************************************************************/
  34. virtual int32_t motor_enable(int32_t enable);
  35. virtual int32_t motor_rotate(int32_t direction, int32_t velocitylevel);
  36. virtual int32_t motor_move_by(int32_t distance, int32_t velocitylevel);
  37. virtual int32_t motor_move_to(int32_t position, int32_t velocitylevel);
  38. virtual int32_t motor_move_to_with_torque(int32_t pos, int32_t torque);
  39. /*******************************************************************************
  40. * ZIXYMotor *
  41. *******************************************************************************/
  42. virtual int32_t xymotor_enable(int32_t enable);
  43. virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t velocitylevel);
  44. virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t velocitylevel);
  45. };
  46. } // namespace iflytop