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.

89 lines
4.2 KiB

1 year ago
  1. #pragma once
  2. #include <stdint.h>
  3. #define CMDID(cmdid, cmdSubId) ((cmdid << 8) + cmdSubId)
  4. #define NEW_CMDID(cmdid, cmdSubId) ((cmdid * 100) + cmdSubId)
  5. namespace iflytop {
  6. namespace zcr {
  7. typedef enum {
  8. #if 0
  9. virtual int32_t board_reset() = 0;
  10. #endif
  11. kboard_reset = CMDID(0, 0), // para:{}, ack:{}
  12. kevent_bus_reg_change_report = CMDID(0, 100), // val{regindex, oldval, toval}
  13. kmodule_ping = CMDID(1, 0),
  14. kmodule_get_status = CMDID(1, 4),
  15. kmodule_stop = CMDID(1, 1),
  16. kmodule_set_reg = CMDID(1, 5),
  17. kmodule_get_reg = CMDID(1, 6),
  18. kmodule_get_error = CMDID(1, 10),
  19. kmodule_clear_error = CMDID(1, 11),
  20. kmodule_active_cfg = CMDID(1, 16),
  21. /***********************************************************************************************************************
  22. * STEP_MOTOR *
  23. ***********************************************************************************************************************/
  24. kstep_motor_enable = CMDID(2, 1), // para:{1}, ack:{}
  25. kstep_motor_read_pos = CMDID(2, 11), // para:{}, ack:{4}
  26. kstep_motor_easy_rotate = CMDID(2, 17), // para:{4}, ack:{}
  27. kstep_motor_easy_move_by = CMDID(2, 18), // para:{4}, ack:{}
  28. kstep_motor_easy_move_to = CMDID(2, 19), // para:{4}, ack:{}
  29. kstep_motor_easy_move_to_zero = CMDID(2, 20), // para:{1}, ack:{}
  30. kstep_motor_easy_set_current_pos = CMDID(2, 21), // para:{4}, ack:{}
  31. kstep_motor_easy_move_to_io = CMDID(2, 22), // para:{4,4}, ack:{}
  32. kstep_motor_stop = CMDID(2, 40), // para:{4}, ack:{}
  33. kstep_motor_active_cfg = CMDID(2, 41), // para:{4}, ack:{}
  34. kstep_motor_read_io_state = CMDID(2, 42), // para:{4}, ack:{}
  35. kstep_motor_easy_move_to_end_point = CMDID(2, 44), //
  36. kstep_motor_read_tmc5130_status = CMDID(2, 50), //
  37. kstep_motor_read_tmc5130_state = CMDID(2, 51), // 调试使用
  38. kstep_motor_read_tmc4361a_status = CMDID(2, 52), // 调试使用
  39. kstep_motor_read_tmc4361a_state = CMDID(2, 53), // 调试使用
  40. kstep_motor_read_tmc2160_status = CMDID(2, 54), // 调试使用
  41. kstep_motor_read_tmc2160_state = CMDID(2, 55), // 调试使用
  42. kstep_motor_read_io_index_in_stm32 = CMDID(2, 56), // 调试使用
  43. /***********************************************************************************************************************
  44. * MINI_SERVO *
  45. ***********************************************************************************************************************/
  46. kmini_servo_enable = CMDID(102, 1),
  47. kmini_servo_read_pos = CMDID(102, 2),
  48. kmini_servo_active_cfg = CMDID(102, 3),
  49. kmini_servo_stop = CMDID(102, 4),
  50. kmini_servo_set_mid_point = CMDID(102, 7),
  51. kmini_servo_read_io_state = CMDID(102, 8),
  52. kmini_servo_move_to = CMDID(102, 9),
  53. kmini_servo_rotate = CMDID(102, 10),
  54. kmini_servo_rotate_with_torque = CMDID(102, 11),
  55. /***********************************************************************************************************************
  56. * BOARD *
  57. ***********************************************************************************************************************/
  58. kextboard_read_inio = CMDID(103, 1), // para:{index}, ack:{state}
  59. kextboard_write_outio = CMDID(103, 2), // para:{index,state}, ack:{}
  60. kextboard_read_muti_inio = CMDID(103, 3), // para:{}, ack:{states}
  61. kextboard_read_inio_index_in_stm32 = CMDID(103, 4), // para:{index}, ack:{index_in_stm32}
  62. kextboard_read_outio_index_in_stm32 = CMDID(103, 5), // para:{index}, ack:{index_in_stm32}
  63. kextboard_read_outio = CMDID(103, 6), // para:{index}, ack:{state}
  64. } cmdid_t;
  65. typedef struct {
  66. int index;
  67. const char* fnname;
  68. } cmdinfo_t;
  69. const char* cmdid2str(int32_t code);
  70. cmdinfo_t* cmdid_get_table();
  71. int cmdid_get_table_size();
  72. } // namespace zcr
  73. } // namespace iflytop