|
|
#pragma once
#include <stdint.h>
namespace iflytop { using namespace std;
#define REG_INDEX(type, offset, subconfigindex) (type * 100 + offset + subconfigindex)
typedef enum { /*******************************************************************************
* ģ��ͨ�����ú�״̬ * *******************************************************************************/ kreg_module_version = REG_INDEX(0, 0, 0), // ģ���汾
kreg_module_type = REG_INDEX(0, 0, 1), // �����
kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error
kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag
/*******************************************************************************
* SENSOR * *******************************************************************************/ kreg_sensor_temperature0 = REG_INDEX(2, 0, 0), // �¶�1
kreg_sensor_temperature1 = REG_INDEX(2, 0, 1), // �¶�2
kreg_sensor_temperature2 = REG_INDEX(2, 0, 2), // �¶�3
kreg_sensor_temperature3 = REG_INDEX(2, 0, 3), // �¶�4
/*******************************************************************************
* ��е��ͨ������ * *******************************************************************************/
/*******************************************************************************
* MOTOR_X * *******************************************************************************/
/*******************************************************************************
* PID������(3000->4000) * *******************************************************************************/ kreg_pid_target = REG_INDEX(30, 0, 0), // Ŀ����ֵ
kreg_pid_nowoutput = REG_INDEX(30, 0, 1), // ��ǰ����
kreg_pid_feedbackval = REG_INDEX(30, 0, 2), // ��ǰ����
kreg_pid_kp = REG_INDEX(30, 50, 0), // kp
kreg_pid_ki = REG_INDEX(30, 50, 1), // ki
kreg_pid_kd = REG_INDEX(30, 50, 2), // kd
kreg_pid_max_output = REG_INDEX(30, 50, 3), // ��������
kreg_pid_min_output = REG_INDEX(30, 50, 4), // ������
kreg_pid_max_integral = REG_INDEX(30, 50, 5), // ��������
kreg_pid_min_integral = REG_INDEX(30, 50, 6), // ������
kreg_error_limit = REG_INDEX(30, 50, 7), // ��������
kreg_compute_interval = REG_INDEX(30, 50, 8), // ��������
/*******************************************************************************
* ���ȿ��� * *******************************************************************************/ kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0), // ����ת��0,1,2,3
kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1), // ����ת��0,1,2,3
kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2), // ����ת��0,1,2,3
kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3), // ����ת��0,1,2,3
kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4), // ����ת��0,1,2,3
kreg_fan0_speed_level = REG_INDEX(31, 10, 0), // ����ʵʱת��0,1,2,3
kreg_fan1_speed_level = REG_INDEX(31, 10, 1), // ����ʵʱת��0,1,2,3
kreg_fan2_speed_level = REG_INDEX(31, 10, 2), // ����ʵʱת��0,1,2,3
kreg_fan3_speed_level = REG_INDEX(31, 10, 3), // ����ʵʱת��0,1,2,3
kreg_fan4_speed_level = REG_INDEX(31, 10, 4), // ����ʵʱת��0,1,2,3
kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0), // PWMˮ��0,1,2,3
kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1), // PWMˮ��0,1,2,3
kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2), // PWMˮ��0,1,2,3
kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3), // PWMˮ��0,1,2,3
kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4), // PWMˮ��0,1,2,3
kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0), // PWMˮ��0,1,2,3
kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1), // PWMˮ��0,1,2,3
kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2), // PWMˮ��0,1,2,3
kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3), // PWMˮ��0,1,2,3
kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4), // PWMˮ��0,1,2,3
/*******************************************************************************
* ��Һǹ״̬ * *******************************************************************************/ kreg_pipette_pos_ul = REG_INDEX(40, 0, 0), // ��Һǹλ��
kreg_pipette_capactitance_val = REG_INDEX(40, 0, 1), // ��Һǹ����ֵ
kreg_pipette_tip_state = REG_INDEX(40, 0, 2), // �ƶ�Һǹtip״̬
kreg_pipette_limit_ul = REG_INDEX(40, 50, 0), // ��Һǹul����
/*******************************************************************************
* smartADC * *******************************************************************************/ kreg_self_reflecting_laser_sensor_transmitting_power = REG_INDEX(41, 0, 0), // ���书��
kreg_self_reflecting_laser_sensor_receiving_tube_gain = REG_INDEX(41, 0, 1), // ���չܷŴ�����
kreg_self_reflecting_laser_sensor_sample_interval_ms = REG_INDEX(41, 0, 2), // ������
kreg_self_reflecting_laser_sensor_num_samples = REG_INDEX(41, 0, 3), // ��������
// scan action
kreg_boditech_optical_scan_type = REG_INDEX(42, 0, 0), // 0 t��ѧ��1 f��ѧ
kreg_boditech_optical_scan_start_pos = REG_INDEX(42, 0, 1), kreg_boditech_optical_scan_direction = REG_INDEX(42, 0, 2), kreg_boditech_optical_scan_step_interval = REG_INDEX(42, 0, 3), kreg_boditech_optical_scan_pointnum = REG_INDEX(42, 0, 4), kreg_boditech_optical_channel_select_num = REG_INDEX(42, 0, 5), kreg_boditech_optical_laster_gain = REG_INDEX(42, 0, 6), kreg_boditech_optical_scan_gain = REG_INDEX(42, 0, 7), kreg_boditech_optical_trf_uvled_on_duration_us = REG_INDEX(42, 0, 8), kreg_boditech_optical_trf_uvled_off_duration_us = REG_INDEX(42, 0, 9), kreg_boditech_optical_trf_scan_delay_us = REG_INDEX(42, 0, 10), kreg_boditech_optical_trf_scan_duration_us = REG_INDEX(42, 0, 11), kreg_boditech_optical_scan_gain_adjust_suggestion = REG_INDEX(42, 0, 12), kreg_boditech_optical_adc_result_overflow = REG_INDEX(42, 0, 13), kreg_boditech_optical_laster_intensity = REG_INDEX(42, 0, 14),
//
kreg_laster_scaner_scan_type = REG_INDEX(43, 0, 0), // 0 t��ѧ��1 f��ѧ
kreg_laster_scaner_scan_start_pos = REG_INDEX(43, 0, 1), kreg_laster_scaner_scan_direction = REG_INDEX(43, 0, 2), kreg_laster_scaner_scan_step_interval = REG_INDEX(43, 0, 3), kreg_laster_scaner_scan_pointnum = REG_INDEX(43, 0, 4), kreg_laster_scaner_laster_gain = REG_INDEX(43, 0, 5), kreg_laster_scaner_scan_gain = REG_INDEX(43, 0, 6),
kreg_laster_scaner_scan_gain_adjust_suggestion = REG_INDEX(43, 0, 12), kreg_laster_scaner_adc_result_overflow = REG_INDEX(43, 0, 13), kreg_laster_scaner_laster_intensity = REG_INDEX(43, 0, 14),
/***********************************************************************************************************************
* XYROBOT * ***********************************************************************************************************************/
kreg_xyrobot_default_velocity = REG_INDEX(100, 0, 0), kreg_xyrobot_default_acc = REG_INDEX(100, 0, 1), kreg_xyrobot_default_dec = REG_INDEX(100, 0, 2), kreg_xyrobot_default_break_dec = REG_INDEX(100, 0, 3), kreg_xyrobot_run_to_zero_speed = REG_INDEX(100, 0, 4), kreg_xyrobot_run_to_zero_dec = REG_INDEX(100, 0, 5), kreg_xyrobot_look_zero_edge_speed = REG_INDEX(100, 0, 6), kreg_xyrobot_look_zero_edge_dec = REG_INDEX(100, 0, 7), kreg_xyrobot_ihold = REG_INDEX(100, 0, 8), kreg_xyrobot_irun = REG_INDEX(100, 0, 9), kreg_xyrobot_iholddelay = REG_INDEX(100, 0, 10),
kreg_xyrobot_robot_type = REG_INDEX(100, 50, 0), // ���������� 0:hbot 1:corexy
kreg_xyrobot_x_shift = REG_INDEX(100, 50, 1), // xƫ��
kreg_xyrobot_y_shift = REG_INDEX(100, 50, 2), // yƫ��
kreg_xyrobot_x_shaft = REG_INDEX(100, 50, 3), // x���Ƿ���ת
kreg_xyrobot_y_shaft = REG_INDEX(100, 50, 4), // y���Ƿ���ת
kreg_xyrobot_x_one_circle_pulse = REG_INDEX(100, 50, 5), // x��һȦ������
kreg_xyrobot_y_one_circle_pulse = REG_INDEX(100, 50, 6), // y��һȦ������
kreg_xyrobot_run_to_zero_max_x_d = REG_INDEX(100, 50, 7), // x��������������
kreg_xyrobot_run_to_zero_max_y_d = REG_INDEX(100, 50, 8), // y��������������
kreg_xyrobot_look_zero_edge_max_x_d = REG_INDEX(100, 50, 9), // x��������Ե��������
kreg_xyrobot_look_zero_edge_max_y_d = REG_INDEX(100, 50, 10), // y��������Ե��������
kreg_xyrobot_io_state0 = REG_INDEX(100, 50, 11), // IO״̬
kreg_xyrobot_io_state1 = REG_INDEX(100, 50, 12), // IO״̬
/***********************************************************************************************************************
* step_motor * ***********************************************************************************************************************/ kreg_step_motor_pos = REG_INDEX(101, 0, 1), // ������x����
kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // ִ������һ��ָ����������λ��
kreg_step_motor_shift = REG_INDEX(101, 50, 0), // xƫ��
kreg_step_motor_shaft = REG_INDEX(101, 50, 1), // x���Ƿ���ת
kreg_step_motor_one_circle_pulse = REG_INDEX(101, 50, 2), // x��һȦ������
kreg_step_motor_one_circle_pulse_denominator = REG_INDEX(101, 50, 3), // ����һȦ�������ķ�ĸ
kreg_step_motor_default_velocity = REG_INDEX(101, 50, 4), // Ĭ���ٶ�
kreg_step_motor_default_acc = REG_INDEX(101, 50, 5), // Ĭ�ϼ��ٶ�
kreg_step_motor_default_dec = REG_INDEX(101, 50, 6), // Ĭ�ϼ��ٶ�
kreg_step_motor_default_break_dec = REG_INDEX(101, 50, 7), // Ĭ�ϼ��ٶ�
kreg_step_motor_ihold = REG_INDEX(101, 50, 8), // ����������������
kreg_step_motor_irun = REG_INDEX(101, 50, 9), // ����������������
kreg_step_motor_iholddelay = REG_INDEX(101, 50, 10), // ����������������
kreg_step_motor_iglobalscaler = REG_INDEX(101, 50, 11), // ����������������
kreg_step_motor_run_to_zero_max_d = REG_INDEX(101, 50, 21), // x��������������
kreg_step_motor_look_zero_edge_max_d = REG_INDEX(101, 50, 22), // x��������Ե��������
kreg_step_motor_run_to_zero_speed = REG_INDEX(101, 50, 23), // �����ٶ�
kreg_step_motor_run_to_zero_dec = REG_INDEX(101, 50, 24), // �������ٶ�
kreg_step_motor_look_zero_edge_speed = REG_INDEX(101, 50, 25), // ������Ե�ٶ�
kreg_step_motor_look_zero_edge_dec = REG_INDEX(101, 50, 26), // ������Ե���ٶ�
kreg_step_motor_max_d = REG_INDEX(101, 50, 28), // �������ƾ���
kreg_step_motor_min_d = REG_INDEX(101, 50, 29), // ��С���ƾ���
/***********************************************************************************************************************
* MINI_STEP_MOTOR * ***********************************************************************************************************************/
kreg_mini_servo_pos = REG_INDEX(102, 0, 1), // �
kreg_mini_servo_limit_velocity = REG_INDEX(102, 50, 1), // �����ٶ�
kreg_mini_servo_limit_torque = REG_INDEX(102, 50, 2), // ����Ť��
kreg_mini_servo_protective_torque = REG_INDEX(102, 50, 3), // ����Ť��
/***********************************************************************************************************************
* BOARD * ***********************************************************************************************************************/ } reg_index_t;
} // namespace iflytop
|