#include "reg_index.hpp" #include namespace iflytop { #define REG_ITERM(enum) \ { enum, #enum } static reginfo_t table[] = { REG_ITERM(kreg_module_version), REG_ITERM(kreg_module_type), REG_ITERM(kreg_module_status), REG_ITERM(kreg_module_errorcode), REG_ITERM(kreg_sensor_temperature0), REG_ITERM(kreg_sensor_temperature1), REG_ITERM(kreg_sensor_temperature2), REG_ITERM(kreg_sensor_temperature3), REG_ITERM(kreg_pid_target), REG_ITERM(kreg_pid_nowoutput), REG_ITERM(kreg_pid_feedbackval), REG_ITERM(kreg_pid_kp), REG_ITERM(kreg_pid_ki), REG_ITERM(kreg_pid_kd), REG_ITERM(kreg_pid_max_output), REG_ITERM(kreg_pid_min_output), REG_ITERM(kreg_pid_max_integral), REG_ITERM(kreg_pid_min_integral), REG_ITERM(kreg_error_limit), REG_ITERM(kreg_compute_interval), REG_ITERM(kreg_fan0_ctrl_speed_level), REG_ITERM(kreg_fan1_ctrl_speed_level), REG_ITERM(kreg_fan2_ctrl_speed_level), REG_ITERM(kreg_fan3_ctrl_speed_level), REG_ITERM(kreg_fan4_ctrl_speed_level), REG_ITERM(kreg_fan0_speed_level), REG_ITERM(kreg_fan1_speed_level), REG_ITERM(kreg_fan2_speed_level), REG_ITERM(kreg_fan3_speed_level), REG_ITERM(kreg_fan4_speed_level), REG_ITERM(kreg_pwm_pump0_ctrl_speed_level), REG_ITERM(kreg_pwm_pump1_ctrl_speed_level), REG_ITERM(kreg_pwm_pump2_ctrl_speed_level), REG_ITERM(kreg_pwm_pump3_ctrl_speed_level), REG_ITERM(kreg_pwm_pump4_ctrl_speed_level), REG_ITERM(kreg_pwm_pump0_speed_level), REG_ITERM(kreg_pwm_pump1_speed_level), REG_ITERM(kreg_pwm_pump2_speed_level), REG_ITERM(kreg_pwm_pump3_speed_level), REG_ITERM(kreg_pwm_pump4_speed_level), REG_ITERM(kreg_pipette_pos_ul), REG_ITERM(kreg_pipette_capactitance_val), REG_ITERM(kreg_pipette_tip_state), REG_ITERM(kreg_pipette_limit_ul), REG_ITERM(kreg_self_reflecting_laser_sensor_transmitting_power), REG_ITERM(kreg_self_reflecting_laser_sensor_receiving_tube_gain), REG_ITERM(kreg_self_reflecting_laser_sensor_sample_interval_ms), REG_ITERM(kreg_self_reflecting_laser_sensor_num_samples), REG_ITERM(kreg_boditech_optical_scan_type), REG_ITERM(kreg_boditech_optical_scan_start_pos), REG_ITERM(kreg_boditech_optical_scan_direction), REG_ITERM(kreg_boditech_optical_scan_step_interval), REG_ITERM(kreg_boditech_optical_scan_pointnum), REG_ITERM(kreg_boditech_optical_channel_select_num), REG_ITERM(kreg_boditech_optical_laster_gain), REG_ITERM(kreg_boditech_optical_scan_gain), REG_ITERM(kreg_boditech_optical_trf_uvled_on_duration_us), REG_ITERM(kreg_boditech_optical_trf_uvled_off_duration_us), REG_ITERM(kreg_boditech_optical_trf_scan_delay_us), REG_ITERM(kreg_boditech_optical_trf_scan_duration_us), REG_ITERM(kreg_boditech_optical_scan_gain_adjust_suggestion), REG_ITERM(kreg_boditech_optical_adc_result_overflow), REG_ITERM(kreg_boditech_optical_laster_intensity), REG_ITERM(kreg_laster_scaner_scan_type), REG_ITERM(kreg_laster_scaner_scan_start_pos), REG_ITERM(kreg_laster_scaner_scan_direction), REG_ITERM(kreg_laster_scaner_scan_step_interval), REG_ITERM(kreg_laster_scaner_scan_pointnum), REG_ITERM(kreg_laster_scaner_laster_gain), REG_ITERM(kreg_laster_scaner_scan_gain), REG_ITERM(kreg_laster_scaner_scan_gain_adjust_suggestion), REG_ITERM(kreg_laster_scaner_adc_result_overflow), REG_ITERM(kreg_laster_scaner_laster_intensity), REG_ITERM(kreg_xyrobot_default_velocity), REG_ITERM(kreg_xyrobot_default_acc), REG_ITERM(kreg_xyrobot_default_dec), REG_ITERM(kreg_xyrobot_default_break_dec), REG_ITERM(kreg_xyrobot_run_to_zero_speed), REG_ITERM(kreg_xyrobot_run_to_zero_dec), REG_ITERM(kreg_xyrobot_look_zero_edge_speed), REG_ITERM(kreg_xyrobot_look_zero_edge_dec), REG_ITERM(kreg_xyrobot_ihold), REG_ITERM(kreg_xyrobot_irun), REG_ITERM(kreg_xyrobot_iholddelay), REG_ITERM(kreg_xyrobot_robot_type), REG_ITERM(kreg_xyrobot_x_shift), REG_ITERM(kreg_xyrobot_y_shift), REG_ITERM(kreg_xyrobot_x_shaft), REG_ITERM(kreg_xyrobot_y_shaft), REG_ITERM(kreg_xyrobot_x_one_circle_pulse), REG_ITERM(kreg_xyrobot_y_one_circle_pulse), REG_ITERM(kreg_xyrobot_run_to_zero_max_x_d), REG_ITERM(kreg_xyrobot_run_to_zero_max_y_d), REG_ITERM(kreg_xyrobot_look_zero_edge_max_x_d), REG_ITERM(kreg_xyrobot_look_zero_edge_max_y_d), REG_ITERM(kreg_xyrobot_io_state0), REG_ITERM(kreg_xyrobot_io_state1), REG_ITERM(kreg_step_motor_pos), REG_ITERM(kreg_step_motor_dpos), REG_ITERM(kreg_step_motor_shift), REG_ITERM(kreg_step_motor_shaft), REG_ITERM(kreg_step_motor_one_circle_pulse), REG_ITERM(kreg_step_motor_one_circle_pulse_denominator), REG_ITERM(kreg_step_motor_default_velocity), REG_ITERM(kreg_step_motor_default_acc), REG_ITERM(kreg_step_motor_default_dec), REG_ITERM(kreg_step_motor_default_break_dec), REG_ITERM(kreg_step_motor_ihold), REG_ITERM(kreg_step_motor_irun), REG_ITERM(kreg_step_motor_iholddelay), REG_ITERM(kreg_step_motor_iglobalscaler), REG_ITERM(kreg_step_motor_run_to_zero_max_d), REG_ITERM(kreg_step_motor_look_zero_edge_max_d), REG_ITERM(kreg_step_motor_run_to_zero_speed), REG_ITERM(kreg_step_motor_run_to_zero_dec), REG_ITERM(kreg_step_motor_look_zero_edge_speed), REG_ITERM(kreg_step_motor_look_zero_edge_dec), REG_ITERM(kreg_step_motor_max_d), REG_ITERM(kreg_step_motor_min_d), REG_ITERM(kreg_mini_servo_pos), REG_ITERM(kreg_mini_servo_limit_velocity), REG_ITERM(kreg_mini_servo_limit_torque), REG_ITERM(kreg_mini_servo_protective_torque), }; reginfo_t *get_reginfo_by_index(uint32_t index) { for (int i = 0; i < sizeof(table) / sizeof(table[0]); i++) { if (table[i].index == index) { return &table[i]; } } return nullptr; } const char *regindex2str(uint32_t index) { for (int i = 0; i < sizeof(table) / sizeof(table[0]); i++) { if (table[i].index == index) { return table[i].regname; } } return "unknown reg"; } reginfo_t *reg_get_table() { return table; } int reg_get_table_size() { return sizeof(table) / sizeof(table[0]); } } // namespace iflytop