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.

209 lines
12 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #pragma once
  2. #include <stdint.h>
  3. namespace iflytop {
  4. using namespace std;
  5. #define REG_INDEX(type, offset, subconfigindex) (type * 100 + offset + subconfigindex)
  6. typedef enum {
  7. /*******************************************************************************
  8. * ģͨú״̬ *
  9. *******************************************************************************/
  10. kreg_module_version = REG_INDEX(0, 0, 0), // ģ���汾
  11. kreg_module_type = REG_INDEX(0, 0, 1), // �����
  12. kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
  13. kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
  14. kreg_module_initflag = REG_INDEX(0, 0, 4), // inited_flag
  15. kreg_module_enableflag = REG_INDEX(0, 0, 5), // 0idle,1busy,2error
  16. kreg_module_errorbitflag0 = REG_INDEX(0, 0, 6), // ģ���쳣��־��bit��ÿ��ģ���Զ���
  17. kreg_module_input_state = REG_INDEX(0, 0, 8), //
  18. kreg_module_output_state = REG_INDEX(0, 0, 9), //
  19. kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size
  20. kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), //
  21. /*******************************************************************************
  22. * SENSOR *
  23. *******************************************************************************/
  24. kreg_sensor_temperature0 = REG_INDEX(2, 0, 0), // �¶�1
  25. kreg_sensor_temperature1 = REG_INDEX(2, 0, 1), // �¶�2
  26. kreg_sensor_temperature2 = REG_INDEX(2, 0, 2), // �¶�3
  27. kreg_sensor_temperature3 = REG_INDEX(2, 0, 3), // �¶�4
  28. /*******************************************************************************
  29. * 򵥿 *
  30. *******************************************************************************/
  31. kreg_pwm0_ctrl = REG_INDEX(3, 0, 0), //
  32. kreg_pwm0_duty = REG_INDEX(3, 0, 1), //
  33. kreg_pwm0_freq = REG_INDEX(3, 0, 2), //
  34. kreg_pwm1_ctrl = REG_INDEX(3, 10, 0), //
  35. kreg_pwm1_duty = REG_INDEX(3, 10, 1), //
  36. kreg_pwm1_freq = REG_INDEX(3, 10, 2), //
  37. kreg_pwm2_ctrl = REG_INDEX(3, 20, 0), //
  38. kreg_pwm2_duty = REG_INDEX(3, 20, 1), //
  39. kreg_pwm2_freq = REG_INDEX(3, 20, 2), //
  40. kreg_pwm3_ctrl = REG_INDEX(3, 30, 0), //
  41. kreg_pwm3_duty = REG_INDEX(3, 30, 1), //
  42. kreg_pwm3_freq = REG_INDEX(3, 30, 2), //
  43. kreg_pwm4_ctrl = REG_INDEX(3, 40, 0), //
  44. kreg_pwm4_duty = REG_INDEX(3, 40, 1), //
  45. kreg_pwm4_freq = REG_INDEX(3, 40, 2), //
  46. kreg_pwm5_ctrl = REG_INDEX(3, 50, 0), //
  47. kreg_pwm5_duty = REG_INDEX(3, 50, 1), //
  48. kreg_pwm5_freq = REG_INDEX(3, 50, 2), //
  49. kreg_pwm6_ctrl = REG_INDEX(3, 60, 0), //
  50. kreg_pwm6_duty = REG_INDEX(3, 60, 1), //
  51. kreg_pwm6_freq = REG_INDEX(3, 60, 2), //
  52. kreg_pwm7_ctrl = REG_INDEX(3, 70, 0), //
  53. kreg_pwm7_duty = REG_INDEX(3, 70, 1), //
  54. kreg_pwm7_freq = REG_INDEX(3, 70, 2), //
  55. /*******************************************************************************
  56. * еͨ *
  57. *******************************************************************************/
  58. /*******************************************************************************
  59. * MOTOR_DEFAULT *
  60. *******************************************************************************/
  61. kreg_robot_pos = REG_INDEX(10, 0, 1), // ������x����
  62. kreg_motor_shift = REG_INDEX(10, 50, 0), // xƫ��
  63. kreg_motor_shaft = REG_INDEX(10, 50, 1), // x���Ƿ���ת
  64. kreg_motor_one_circle_pulse = REG_INDEX(10, 50, 2), // x��һȦ������
  65. kreg_motor_one_circle_pulse_denominator = REG_INDEX(10, 50, 3), // ����һȦ�������ķ�ĸ
  66. kreg_motor_default_velocity = REG_INDEX(10, 50, 4), // Ĭ���ٶ�
  67. kreg_motor_default_acc = REG_INDEX(10, 50, 5), // Ĭ�ϼ��ٶ�
  68. kreg_motor_default_dec = REG_INDEX(10, 50, 6), // Ĭ�ϼ��ٶ�
  69. kreg_motor_default_break_dec = REG_INDEX(10, 50, 7), // Ĭ�ϼ��ٶ�
  70. kreg_motor_ihold = REG_INDEX(10, 50, 8), // ����������������
  71. kreg_motor_irun = REG_INDEX(10, 50, 9), // ����������������
  72. kreg_motor_iholddelay = REG_INDEX(10, 50, 10), // ����������������
  73. kreg_motor_iglobalscaler = REG_INDEX(10, 50, 11), // ����������������
  74. kreg_motor_run_to_zero_max_d = REG_INDEX(10, 50, 21), // x��������������
  75. kreg_motor_look_zero_edge_max_d = REG_INDEX(10, 50, 22), // x��������Ե��������
  76. kreg_motor_run_to_zero_speed = REG_INDEX(10, 50, 23), // �����ٶ�
  77. kreg_motor_run_to_zero_dec = REG_INDEX(10, 50, 24), // �������ٶ�
  78. kreg_motor_look_zero_edge_speed = REG_INDEX(10, 50, 25), // ������Ե�ٶ�
  79. kreg_motor_look_zero_edge_dec = REG_INDEX(10, 50, 26), // ������Ե���ٶ�
  80. kreg_motor_default_torque = REG_INDEX(10, 50, 27), // Ĭ��Ť��
  81. kreg_motor_max_d = REG_INDEX(10, 50, 28), // �������ƾ���
  82. kreg_motor_min_d = REG_INDEX(10, 50, 29), // ��С���ƾ���
  83. /*******************************************************************************
  84. * MOTOR_X *
  85. *******************************************************************************/
  86. kreg_xyrobot_x_pos = REG_INDEX(11, 0, 1), // ������x����
  87. kreg_xyrobot_y_pos = REG_INDEX(12, 0, 1), // ������x����
  88. kreg_xyrobot_x_shift = REG_INDEX(11, 50, 0), // xƫ��
  89. kreg_xyrobot_y_shift = REG_INDEX(12, 50, 0), // yƫ��
  90. kreg_xyrobot_x_shaft = REG_INDEX(11, 50, 1), // x���Ƿ���ת
  91. kreg_xyrobot_y_shaft = REG_INDEX(12, 50, 1), // y���Ƿ���ת
  92. kreg_xyrobot_x_one_circle_pulse = REG_INDEX(11, 50, 2), // x��һȦ������
  93. kreg_xyrobot_y_one_circle_pulse = REG_INDEX(12, 50, 2), // y��һȦ������
  94. kreg_xyrobot_run_to_zero_max_x_d = REG_INDEX(11, 50, 20), // x��������������
  95. kreg_xyrobot_run_to_zero_max_y_d = REG_INDEX(12, 50, 20), // y��������������
  96. kreg_xyrobot_look_zero_edge_max_x_d = REG_INDEX(11, 50, 21), // x��������Ե��������
  97. kreg_xyrobot_look_zero_edge_max_y_d = REG_INDEX(12, 50, 21), // y��������Ե��������
  98. kreg_xyrobot_robot_type = REG_INDEX(20, 50, 0), // ���������� 0:hbot 1:corexy
  99. /*******************************************************************************
  100. * PID(3000->4000) *
  101. *******************************************************************************/
  102. kreg_pid_target = REG_INDEX(30, 0, 0), // Ŀ����ֵ
  103. kreg_pid_nowoutput = REG_INDEX(30, 0, 1), // ��ǰ����
  104. kreg_pid_feedbackval = REG_INDEX(30, 0, 2), // ��ǰ����
  105. kreg_pid_kp = REG_INDEX(30, 50, 0), // kp
  106. kreg_pid_ki = REG_INDEX(30, 50, 1), // ki
  107. kreg_pid_kd = REG_INDEX(30, 50, 2), // kd
  108. kreg_pid_max_output = REG_INDEX(30, 50, 3), // ��������
  109. kreg_pid_min_output = REG_INDEX(30, 50, 4), // ������
  110. kreg_pid_max_integral = REG_INDEX(30, 50, 5), // ��������
  111. kreg_pid_min_integral = REG_INDEX(30, 50, 6), // ������
  112. kreg_error_limit = REG_INDEX(30, 50, 7), // ��������
  113. kreg_compute_interval = REG_INDEX(30, 50, 8), // ��������
  114. /*******************************************************************************
  115. * ȿ *
  116. *******************************************************************************/
  117. kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0), // ����ת��0,1,2,3
  118. kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1), // ����ת��0,1,2,3
  119. kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2), // ����ת��0,1,2,3
  120. kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3), // ����ת��0,1,2,3
  121. kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4), // ����ת��0,1,2,3
  122. kreg_fan0_speed_level = REG_INDEX(31, 10, 0), // ����ʵʱת��0,1,2,3
  123. kreg_fan1_speed_level = REG_INDEX(31, 10, 1), // ����ʵʱת��0,1,2,3
  124. kreg_fan2_speed_level = REG_INDEX(31, 10, 2), // ����ʵʱת��0,1,2,3
  125. kreg_fan3_speed_level = REG_INDEX(31, 10, 3), // ����ʵʱת��0,1,2,3
  126. kreg_fan4_speed_level = REG_INDEX(31, 10, 4), // ����ʵʱת��0,1,2,3
  127. kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0), // PWMˮ��0,1,2,3
  128. kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1), // PWMˮ��0,1,2,3
  129. kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2), // PWMˮ��0,1,2,3
  130. kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3), // PWMˮ��0,1,2,3
  131. kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4), // PWMˮ��0,1,2,3
  132. kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0), // PWMˮ��0,1,2,3
  133. kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1), // PWMˮ��0,1,2,3
  134. kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2), // PWMˮ��0,1,2,3
  135. kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3), // PWMˮ��0,1,2,3
  136. kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4), // PWMˮ��0,1,2,3
  137. /*******************************************************************************
  138. * Һǹ״̬ *
  139. *******************************************************************************/
  140. kreg_pipette_pos_ul = REG_INDEX(40, 0, 0), // ��Һǹλ��
  141. kreg_pipette_capactitance_val = REG_INDEX(40, 0, 1), // ��Һǹ����ֵ
  142. kreg_pipette_tip_state = REG_INDEX(40, 0, 2), // �ƶ�Һǹtip״̬
  143. kreg_pipette_limit_ul = REG_INDEX(40, 50, 0), // ��Һǹul����
  144. /*******************************************************************************
  145. * smartADC *
  146. *******************************************************************************/
  147. kreg_self_reflecting_laser_sensor_transmitting_power = REG_INDEX(41, 0, 0), // ���书��
  148. kreg_self_reflecting_laser_sensor_receiving_tube_gain = REG_INDEX(41, 0, 1), // ���չܷŴ�����
  149. kreg_self_reflecting_laser_sensor_sample_interval_ms = REG_INDEX(41, 0, 2), // ������
  150. kreg_self_reflecting_laser_sensor_num_samples = REG_INDEX(41, 0, 3), // ��������
  151. // scan action
  152. kreg_boditech_optical_scan_type = REG_INDEX(42, 0, 0), // 0 t��ѧ��1 f��ѧ
  153. kreg_boditech_optical_scan_start_pos = REG_INDEX(42, 0, 1),
  154. kreg_boditech_optical_scan_direction = REG_INDEX(42, 0, 2),
  155. kreg_boditech_optical_scan_step_interval = REG_INDEX(42, 0, 3),
  156. kreg_boditech_optical_scan_pointnum = REG_INDEX(42, 0, 4),
  157. kreg_boditech_optical_channel_select_num = REG_INDEX(42, 0, 5),
  158. kreg_boditech_optical_laster_gain = REG_INDEX(42, 0, 6),
  159. kreg_boditech_optical_scan_gain = REG_INDEX(42, 0, 7),
  160. kreg_boditech_optical_trf_uvled_on_duration_us = REG_INDEX(42, 0, 8),
  161. kreg_boditech_optical_trf_uvled_off_duration_us = REG_INDEX(42, 0, 9),
  162. kreg_boditech_optical_trf_scan_delay_us = REG_INDEX(42, 0, 10),
  163. kreg_boditech_optical_trf_scan_duration_us = REG_INDEX(42, 0, 11),
  164. kreg_boditech_optical_scan_gain_adjust_suggestion = REG_INDEX(42, 0, 12),
  165. kreg_boditech_optical_adc_result_overflow = REG_INDEX(42, 0, 13),
  166. kreg_boditech_optical_laster_intensity = REG_INDEX(42, 0, 14),
  167. //
  168. kreg_laster_scaner_scan_type = REG_INDEX(43, 0, 0), // 0 t��ѧ��1 f��ѧ
  169. kreg_laster_scaner_scan_start_pos = REG_INDEX(43, 0, 1),
  170. kreg_laster_scaner_scan_direction = REG_INDEX(43, 0, 2),
  171. kreg_laster_scaner_scan_step_interval = REG_INDEX(43, 0, 3),
  172. kreg_laster_scaner_scan_pointnum = REG_INDEX(43, 0, 4),
  173. kreg_laster_scaner_laster_gain = REG_INDEX(43, 0, 5),
  174. kreg_laster_scaner_scan_gain = REG_INDEX(43, 0, 6),
  175. kreg_laster_scaner_scan_gain_adjust_suggestion = REG_INDEX(43, 0, 12),
  176. kreg_laster_scaner_adc_result_overflow = REG_INDEX(43, 0, 13),
  177. kreg_laster_scaner_laster_intensity = REG_INDEX(43, 0, 14),
  178. } reg_index_t;
  179. } // namespace iflytop