use crate::generate_servo;
generate_servo!(
XL430, v2,
reg: (model_number, r, 0, u16, None),
reg: (model_information, r, 2, u32, None),
reg: (firmware_version, r, 6, u8, None),
reg: (id, rw, 7, u8, None),
reg: (buad_rate, rw, 8, u8, None),
reg: (return_delay_time, rw, 9, u8, None),
reg: (drive_mode, rw, 10, u8, None),
reg: (operating_mode, rw, 11, u8, None),
reg: (secondary_id, rw, 12, u8, None),
reg: (protocol_type, rw, 13, u8, None),
reg: (homing_offset, rw, 20, i32, None),
reg: (moving_threshold, rw, 24, u32, None),
reg: (temperature_limit, rw, 31, u8, None),
reg: (max_voltage_limit, rw, 32, u16, None),
reg: (min_voltage_limit, rw, 34, u16, None),
reg: (pwm_limit, rw, 36, u16, None),
reg: (current_limit, rw, 38, u16, None),
reg: (velocity_limit, rw, 44, u32, None),
reg: (max_position_limit, rw, 48, u32, None),
reg: (min_position_limit, rw, 52, u32, None),
reg: (startup_configuration, rw, 60, u8, None),
reg: (shutdown, rw, 63, u8, None),
reg: (torque_enable, rw, 64, u8, None),
reg: (led, rw, 65, u8, None),
reg: (status_return_level, rw, 68, u8, None),
reg: (registered_instruction, r, 69, u8, None),
reg: (hardware_error_status, r, 70, u8, None),
reg: (velocity_i_gain, rw, 76, u16, None),
reg: (velocity_p_gain, rw, 78, u16, None),
reg: (position_d_gain, rw, 80, u16, None),
reg: (position_i_gain, rw, 82, u16, None),
reg: (position_p_gain, rw, 84, u16, None),
reg: (feedforward_2nd_gain, rw, 88, u16, None),
reg: (feedforward_1st_gain, rw, 90, u16, None),
reg: (bus_watchdog, rw, 98, u8, None),
reg: (goal_pwm, rw, 100, u16, None),
reg: (goal_current, rw, 102, u16, None),
reg: (goal_velocity, rw, 104, u32, None),
reg: (profile_acceleration, rw, 108, u32, None),
reg: (profile_velocity, rw, 112, u32, None),
reg: (goal_position, rw, 116, u32, None),
reg: (realtime_tick, r, 120, u16, None),
reg: (moving, r, 122, u8, None),
reg: (moving_status, r, 123, u8, None),
reg: (present_pwm, r, 124, u16, None),
reg: (present_current, r, 126, u16, None),
reg: (present_velocity, r, 128, u32, None),
reg: (present_position, r, 132, u32, None),
reg: (velocity_trajectory, r, 136, u32, None),
reg: (position_trajectory, r, 140, u32, None),
reg: (present_input_voltage, r, 144, u16, None),
reg: (present_temperature, r, 146, u8, None),
reg: (backup_ready, r, 147, u8, None),
reg: (indirect_address_1, rw, 168, u16, None),
reg: (indirect_address_2, rw, 170, u16, None),
reg: (indirect_address_3, rw, 172, u16, None),
reg: (indirect_address_4, rw, 174, u16, None),
reg: (indirect_address_5, rw, 176, u16, None),
reg: (indirect_address_6, rw, 178, u16, None),
reg: (indirect_data_1, rw, 224, u8, None),
reg: (indirect_data_2, rw, 225, u8, None),
reg: (indirect_data_3, rw, 226, u8, None),
reg: (indirect_data_4, rw, 227, u8, None),
reg: (indirect_data_5, rw, 228, u8, None),
reg: (indirect_data_6, rw, 229, u8, None),
);