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.

78 lines
2.2 KiB

1 year ago
  1. #include "reg_index.hpp"
  2. #include <stdint.h>
  3. namespace iflytop {
  4. #define REG_ITERM(enum) \
  5. { enum, #enum }
  6. static reginfo_t table[] = {
  7. REG_ITERM(kreg_module_version),
  8. REG_ITERM(kreg_module_type),
  9. REG_ITERM(kreg_module_status),
  10. REG_ITERM(kreg_module_errorcode),
  11. REG_ITERM(kreg_opt_module_do_action0),
  12. REG_ITERM(kreg_opt_module_action_param1),
  13. REG_ITERM(kreg_opt_module_action_param2),
  14. REG_ITERM(kreg_opt_module_action_param3),
  15. REG_ITERM(kreg_opt_module_action_ack1),
  16. REG_ITERM(kreg_opt_module_action_ack2),
  17. REG_ITERM(kreg_step_motor_pos),
  18. REG_ITERM(kreg_step_motor_dpos),
  19. REG_ITERM(kreg_step_motor_shift),
  20. REG_ITERM(kreg_step_motor_shaft),
  21. REG_ITERM(kreg_step_motor_one_circle_pulse),
  22. REG_ITERM(kreg_step_motor_one_circle_pulse_denominator),
  23. REG_ITERM(kreg_step_motor_default_velocity),
  24. REG_ITERM(kreg_step_motor_ihold),
  25. REG_ITERM(kreg_step_motor_irun),
  26. REG_ITERM(kreg_step_motor_iholddelay),
  27. REG_ITERM(kreg_step_motor_iglobalscaler),
  28. REG_ITERM(kreg_step_motor_run_to_zero_speed),
  29. REG_ITERM(kreg_step_motor_look_zero_edge_speed),
  30. REG_ITERM(kreg_step_motor_max_d),
  31. REG_ITERM(kreg_step_motor_min_d),
  32. REG_ITERM(kreg_step_motor_in_debug_mode),
  33. REG_ITERM(kreg_step_motor_vstart),
  34. REG_ITERM(kreg_step_motor_a1),
  35. REG_ITERM(kreg_step_motor_amax),
  36. REG_ITERM(kreg_step_motor_v1),
  37. REG_ITERM(kreg_step_motor_dmax),
  38. REG_ITERM(kreg_step_motor_d1),
  39. REG_ITERM(kreg_step_motor_vstop),
  40. REG_ITERM(kreg_step_motor_tzerowait),
  41. REG_ITERM(kreg_mini_servo_pos),
  42. REG_ITERM(kreg_mini_servo_limit_velocity),
  43. REG_ITERM(kreg_mini_servo_limit_torque),
  44. REG_ITERM(kreg_mini_servo_protective_torque),
  45. };
  46. reginfo_t *get_reginfo_by_index(int32_t index) {
  47. for (int i = 0; i < sizeof(table) / sizeof(table[0]); i++) {
  48. if (table[i].index == index) {
  49. return &table[i];
  50. }
  51. }
  52. return nullptr;
  53. }
  54. const char *regindex2str(int32_t index) {
  55. for (int i = 0; i < sizeof(table) / sizeof(table[0]); i++) {
  56. if (table[i].index == index) {
  57. return table[i].regname;
  58. }
  59. }
  60. return "unknown reg";
  61. }
  62. reginfo_t *reg_get_table() { return table; }
  63. int reg_get_table_size() { return sizeof(table) / sizeof(table[0]); }
  64. } // namespace iflytop