Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pi@raspberrypi:~ $ rosrun odrive_ros odrive_basic_node.py
- ConfigurationValue 1
- InterfaceNumber 0,0
- EndpointAddress 130
- InterfaceNumber 1,0
- EndpointAddress 1
- EndpointAddress 129
- InterfaceNumber 2,0
- EndpointAddress 3
- EndpointAddress 131
- Kernel Driver was not attached
- EndpointAddress for writing 3
- EndpointAddress for reading 131
- Connecting to device on USB device bus 1 device 19
- Device reported JSON version ID: 2604684226
- JSON: [
- {'name': '', 'id': 0, 'type': 'json', 'access': 'r'},
- {'name': 'vbus_voltage', 'id': 1, 'type': 'float', 'access': 'r'},
- {'name': 'ibus', 'id': 2, 'type': 'float', 'access': 'r'},
- {'name': 'ibus_report_filter_k', 'id': 3, 'type': 'float', 'access': 'rw'},
- {'name': 'serial_number', 'id': 4, 'type': 'uint64', 'access': 'r'},
- {'name': 'hw_version_major', 'id': 5, 'type': 'uint8', 'access': 'r'},
- {'name': 'hw_version_minor', 'id': 6, 'type': 'uint8', 'access': 'r'},
- {'name': 'hw_version_variant', 'id': 7, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_major', 'id': 8, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_minor', 'id': 9, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_revision', 'id': 10, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_unreleased', 'id': 11, 'type': 'uint8', 'access': 'r'},
- {'name': 'brake_resistor_armed', 'id': 12, 'type': 'bool', 'access': 'r'},
- {'name': 'brake_resistor_saturated', 'id': 13, 'type': 'bool', 'access': 'rw'},
- {'name': 'system_stats', 'type': 'object', 'members': [
- {'name': 'uptime', 'id': 14, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_heap_space', 'id': 15, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_axis0', 'id': 16, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_axis1', 'id': 17, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_comms', 'id': 18, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_usb', 'id': 19, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_uart', 'id': 20, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_can', 'id': 21, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_usb_irq', 'id': 22, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_startup', 'id': 23, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_axis0', 'id': 24, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_axis1', 'id': 25, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_comms', 'id': 26, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_usb', 'id': 27, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_uart', 'id': 28, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_usb_irq', 'id': 29, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_startup', 'id': 30, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_can', 'id': 31, 'type': 'uint32', 'access': 'r'},
- {'name': 'usb', 'type': 'object', 'members': [
- {'name': 'rx_cnt', 'id': 32, 'type': 'uint32', 'access': 'r'},
- {'name': 'tx_cnt', 'id': 33, 'type': 'uint32', 'access': 'r'},
- {'name': 'tx_overrun_cnt', 'id': 34, 'type': 'uint32', 'access': 'r'}]},
- {'name': 'i2c', 'type': 'object', 'members': [
- {'name': 'addr', 'id': 35, 'type': 'uint8', 'access': 'r'},
- {'name': 'addr_match_cnt', 'id': 36, 'type': 'uint32', 'access': 'r'},
- {'name': 'rx_cnt', 'id': 37, 'type': 'uint32', 'access': 'r'},
- {'name': 'error_cnt', 'id': 38, 'type': 'uint32', 'access': 'r'}]}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'enable_uart', 'id': 39, 'type': 'bool', 'access': 'rw'},
- {'name': 'uart_baudrate', 'id': 40, 'type': 'uint32', 'access': 'rw'},
- {'name': 'enable_i2c_instead_of_can', 'id': 41, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_ascii_protocol_on_usb', 'id': 42, 'type': 'bool', 'access': 'rw'},
- {'name': 'max_regen_current', 'id': 43, 'type': 'float', 'access': 'rw'},
- {'name': 'brake_resistance', 'id': 44, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_undervoltage_trip_level', 'id': 45, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_trip_level', 'id': 46, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_dc_bus_overvoltage_ramp', 'id': 47, 'type': 'bool', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_ramp_start', 'id': 48, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_ramp_end', 'id': 49, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_max_positive_current', 'id': 50, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_max_negative_current', 'id': 51, 'type': 'float', 'access': 'rw'},
- {'name': 'gpio1_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 52, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 53, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 54, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio2_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 55, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 56, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 57, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio3_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 58, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 59, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 60, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio4_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 61, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 62, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 63, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio3_analog_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 64, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 65, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 66, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio4_analog_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 67, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 68, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 69, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'user_config_loaded', 'id': 70, 'type': 'bool', 'access': 'r'},
- {'name': 'axis0', 'type': 'object', 'members': [
- {'name': 'error', 'id': 71, 'type': 'int32', 'access': 'rw'},
- {'name': 'step_dir_active', 'id': 72, 'type': 'bool', 'access': 'r'},
- {'name': 'current_state', 'id': 73, 'type': 'int32', 'access': 'r'},
- {'name': 'requested_state', 'id': 74, 'type': 'int32', 'access': 'rw'},
- {'name': 'loop_counter', 'id': 75, 'type': 'uint32', 'access': 'r'},
- {'name': 'lockin_state', 'id': 76, 'type': 'int32', 'access': 'r'},
- {'name': 'is_homed', 'id': 77, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'startup_motor_calibration', 'id': 78, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_index_search', 'id': 79, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_offset_calibration', 'id': 80, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_closed_loop_control', 'id': 81, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_sensorless_control', 'id': 82, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_homing', 'id': 83, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_step_dir', 'id': 84, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_dir_always_on', 'id': 85, 'type': 'bool', 'access': 'rw'},
- {'name': 'turns_per_step', 'id': 86, 'type': 'float', 'access': 'rw'},
- {'name': 'watchdog_timeout', 'id': 87, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_watchdog', 'id': 88, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_gpio_pin', 'id': 89, 'type': 'uint16', 'access': 'rw'},
- {'name': 'dir_gpio_pin', 'id': 90, 'type': 'uint16', 'access': 'rw'},
- {'name': 'calibration_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 91, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 92, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 93, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 94, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 95, 'type': 'float', 'access': 'rw'}]},
- {'name': 'sensorless_ramp', 'type': 'object', 'members': [
- {'name': 'current', 'id': 96, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 97, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 98, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 99, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 100, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 101, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 102, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 103, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 104, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'general_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 105, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 106, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 107, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 108, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 109, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 110, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 111, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 112, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 113, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'can_node_id', 'id': 114, 'type': 'uint32', 'access': 'rw'},
- {'name': 'can_node_id_extended', 'id': 115, 'type': 'bool', 'access': 'rw'},
- {'name': 'can_heartbeat_rate_ms', 'id': 116, 'type': 'uint32', 'access': 'rw'}]},
- {'name': 'fet_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 117, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 118, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'temp_limit_lower', 'id': 119, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 120, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 121, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 122, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 123, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_pin', 'id': 124, 'type': 'uint16', 'access': 'rw'},
- {'name': 'poly_coefficient_0', 'id': 125, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_1', 'id': 126, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_2', 'id': 127, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_3', 'id': 128, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_lower', 'id': 129, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 130, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 131, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 132, 'type': 'int32', 'access': 'rw'},
- {'name': 'armed_state', 'id': 133, 'type': 'int32', 'access': 'r'},
- {'name': 'is_calibrated', 'id': 134, 'type': 'bool', 'access': 'r'},
- {'name': 'current_meas_phB', 'id': 135, 'type': 'float', 'access': 'r'},
- {'name': 'current_meas_phC', 'id': 136, 'type': 'float', 'access': 'r'},
- {'name': 'DC_calib_phB', 'id': 137, 'type': 'float', 'access': 'rw'},
- {'name': 'DC_calib_phC', 'id': 138, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_current_rev_gain', 'id': 139, 'type': 'float', 'access': 'rw'},
- {'name': 'effective_current_lim', 'id': 140, 'type': 'float', 'access': 'r'},
- {'name': 'current_control', 'type': 'object', 'members': [
- {'name': 'p_gain', 'id': 141, 'type': 'float', 'access': 'rw'},
- {'name': 'i_gain', 'id': 142, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_d', 'id': 143, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_q', 'id': 144, 'type': 'float', 'access': 'rw'},
- {'name': 'Ibus', 'id': 145, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_alpha', 'id': 146, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_beta', 'id': 147, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_setpoint', 'id': 148, 'type': 'float', 'access': 'rw'},
- {'name': 'Iq_setpoint', 'id': 149, 'type': 'float', 'access': 'r'},
- {'name': 'Iq_measured', 'id': 150, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_measured', 'id': 151, 'type': 'float', 'access': 'rw'},
- {'name': 'I_measured_report_filter_k', 'id': 152, 'type': 'float', 'access': 'rw'},
- {'name': 'max_allowed_current', 'id': 153, 'type': 'float', 'access': 'r'},
- {'name': 'overcurrent_trip_level', 'id': 154, 'type': 'float', 'access': 'r'},
- {'name': 'acim_rotor_flux', 'id': 155, 'type': 'float', 'access': 'rw'},
- {'name': 'async_phase_vel', 'id': 156, 'type': 'float', 'access': 'r'},
- {'name': 'async_phase_offset', 'id': 157, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gate_driver', 'type': 'object', 'members': [
- {'name': 'drv_fault', 'id': 158, 'type': 'int32', 'access': 'r'}]},
- {'name': 'timing_log', 'type': 'object', 'members': [
- {'name': 'general', 'id': 159, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_i', 'id': 160, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_dc', 'id': 161, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_r', 'id': 162, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_l', 'id': 163, 'type': 'uint16', 'access': 'r'},
- {'name': 'enc_calib', 'id': 164, 'type': 'uint16', 'access': 'r'},
- {'name': 'idx_search', 'id': 165, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_voltage', 'id': 166, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_current', 'id': 167, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_start', 'id': 168, 'type': 'uint16', 'access': 'r'},
- {'name': 'sample_now', 'id': 169, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_end', 'id': 170, 'type': 'uint16', 'access': 'r'}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'pre_calibrated', 'id': 171, 'type': 'bool', 'access': 'rw'},
- {'name': 'pole_pairs', 'id': 172, 'type': 'int32', 'access': 'rw'},
- {'name': 'calibration_current', 'id': 173, 'type': 'float', 'access': 'rw'},
- {'name': 'resistance_calib_max_voltage', 'id': 174, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_inductance', 'id': 175, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_resistance', 'id': 176, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_constant', 'id': 177, 'type': 'float', 'access': 'rw'},
- {'name': 'direction', 'id': 178, 'type': 'int32', 'access': 'rw'},
- {'name': 'motor_type', 'id': 179, 'type': 'int32', 'access': 'rw'},
- {'name': 'current_lim', 'id': 180, 'type': 'float', 'access': 'rw'},
- {'name': 'current_lim_margin', 'id': 181, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_lim', 'id': 182, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_lower', 'id': 183, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_upper', 'id': 184, 'type': 'float', 'access': 'rw'},
- {'name': 'requested_current_range', 'id': 185, 'type': 'float', 'access': 'rw'},
- {'name': 'current_control_bandwidth', 'id': 186, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_slip_velocity', 'id': 187, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_gain_min_flux', 'id': 188, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_min_Id', 'id': 189, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_enable', 'id': 190, 'type': 'bool', 'access': 'rw'},
- {'name': 'acim_autoflux_attack_gain', 'id': 191, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_decay_gain', 'id': 192, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'controller', 'type': 'object', 'members': [
- {'name': 'error', 'id': 193, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_pos', 'id': 194, 'type': 'float', 'access': 'rw'},
- {'name': 'input_vel', 'id': 195, 'type': 'float', 'access': 'rw'},
- {'name': 'input_torque', 'id': 196, 'type': 'float', 'access': 'rw'},
- {'name': 'pos_setpoint', 'id': 197, 'type': 'float', 'access': 'r'},
- {'name': 'vel_setpoint', 'id': 198, 'type': 'float', 'access': 'r'},
- {'name': 'torque_setpoint', 'id': 199, 'type': 'float', 'access': 'r'},
- {'name': 'trajectory_done', 'id': 200, 'type': 'bool', 'access': 'r'},
- {'name': 'vel_integrator_torque', 'id': 201, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging_valid', 'id': 202, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gain_scheduling_width', 'id': 203, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_vel_limit', 'id': 204, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_current_mode_vel_limit', 'id': 205, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_gain_scheduling', 'id': 206, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_overspeed_error', 'id': 207, 'type': 'bool', 'access': 'rw'},
- {'name': 'control_mode', 'id': 208, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_mode', 'id': 209, 'type': 'int32', 'access': 'rw'},
- {'name': 'pos_gain', 'id': 210, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_gain', 'id': 211, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_integrator_gain', 'id': 212, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit', 'id': 213, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit_tolerance', 'id': 214, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_ramp_rate', 'id': 215, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_ramp_rate', 'id': 216, 'type': 'float', 'access': 'rw'},
- {'name': 'circular_setpoints', 'id': 217, 'type': 'bool', 'access': 'rw'},
- {'name': 'circular_setpoint_range', 'id': 218, 'type': 'float', 'access': 'rw'},
- {'name': 'homing_speed', 'id': 219, 'type': 'float', 'access': 'rw'},
- {'name': 'inertia', 'id': 220, 'type': 'float', 'access': 'rw'},
- {'name': 'axis_to_mirror', 'id': 221, 'type': 'uint8', 'access': 'rw'},
- {'name': 'mirror_ratio', 'id': 222, 'type': 'float', 'access': 'rw'},
- {'name': 'load_encoder_axis', 'id': 223, 'type': 'uint8', 'access': 'rw'},
- {'name': 'input_filter_bandwidth', 'id': 224, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging', 'type': 'object', 'members': [
- {'name': 'index', 'id': 225, 'type': 'uint32', 'access': 'r'},
- {'name': 'pre_calibrated', 'id': 226, 'type': 'bool', 'access': 'rw'},
- {'name': 'calib_anticogging', 'id': 227, 'type': 'bool', 'access': 'r'},
- {'name': 'calib_pos_threshold', 'id': 228, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_vel_threshold', 'id': 229, 'type': 'float', 'access': 'rw'},
- {'name': 'cogging_ratio', 'id': 230, 'type': 'float', 'access': 'r'},
- {'name': 'anticogging_enabled', 'id': 231, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'move_incremental', 'id': 232, 'type': 'function', 'inputs': [
- {'name': 'displacement', 'id': 233, 'type': 'float', 'access': 'rw'},
- {'name': 'from_input_pos', 'id': 234, 'type': 'bool', 'access': 'rw'}], 'outputs': []},
- {'name': 'start_anticogging_calibration', 'id': 235, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'encoder', 'type': 'object', 'members': [
- {'name': 'error', 'id': 236, 'type': 'int32', 'access': 'rw'},
- {'name': 'is_ready', 'id': 237, 'type': 'bool', 'access': 'r'},
- {'name': 'index_found', 'id': 238, 'type': 'bool', 'access': 'r'},
- {'name': 'shadow_count', 'id': 239, 'type': 'int32', 'access': 'r'},
- {'name': 'count_in_cpr', 'id': 240, 'type': 'int32', 'access': 'r'},
- {'name': 'interpolation', 'id': 241, 'type': 'float', 'access': 'r'},
- {'name': 'phase', 'id': 242, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate', 'id': 243, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate_counts', 'id': 244, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr', 'id': 245, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr_counts', 'id': 246, 'type': 'float', 'access': 'r'},
- {'name': 'pos_circular', 'id': 247, 'type': 'float', 'access': 'r'},
- {'name': 'hall_state', 'id': 248, 'type': 'uint8', 'access': 'r'},
- {'name': 'vel_estimate', 'id': 249, 'type': 'float', 'access': 'r'},
- {'name': 'vel_estimate_counts', 'id': 250, 'type': 'float', 'access': 'r'},
- {'name': 'calib_scan_response', 'id': 251, 'type': 'float', 'access': 'r'},
- {'name': 'pos_abs', 'id': 252, 'type': 'int32', 'access': 'rw'},
- {'name': 'spi_error_rate', 'id': 253, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'mode', 'id': 254, 'type': 'int32', 'access': 'rw'},
- {'name': 'use_index', 'id': 255, 'type': 'bool', 'access': 'rw'},
- {'name': 'find_idx_on_lockin_only', 'id': 256, 'type': 'bool', 'access': 'rw'},
- {'name': 'abs_spi_cs_gpio_pin', 'id': 257, 'type': 'uint16', 'access': 'rw'},
- {'name': 'zero_count_on_find_idx', 'id': 258, 'type': 'bool', 'access': 'rw'},
- {'name': 'cpr', 'id': 259, 'type': 'int32', 'access': 'rw'},
- {'name': 'offset', 'id': 260, 'type': 'int32', 'access': 'rw'},
- {'name': 'pre_calibrated', 'id': 261, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset_float', 'id': 262, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_phase_interpolation', 'id': 263, 'type': 'bool', 'access': 'rw'},
- {'name': 'bandwidth', 'id': 264, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_range', 'id': 265, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_distance', 'id': 266, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_omega', 'id': 267, 'type': 'float', 'access': 'rw'},
- {'name': 'idx_search_unidirectional', 'id': 268, 'type': 'bool', 'access': 'rw'},
- {'name': 'ignore_illegal_hall_state', 'id': 269, 'type': 'bool', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_sin', 'id': 270, 'type': 'uint16', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_cos', 'id': 271, 'type': 'uint16', 'access': 'rw'}]},
- {'name': 'set_linear_count', 'id': 272, 'type': 'function', 'inputs': [
- {'name': 'count', 'id': 273, 'type': 'int32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'sensorless_estimator', 'type': 'object', 'members': [
- {'name': 'error', 'id': 274, 'type': 'int32', 'access': 'rw'},
- {'name': 'phase', 'id': 275, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_pos', 'id': 276, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_estimate', 'id': 277, 'type': 'float', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'observer_gain', 'id': 278, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_bandwidth', 'id': 279, 'type': 'float', 'access': 'rw'},
- {'name': 'pm_flux_linkage', 'id': 280, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'trap_traj', 'type': 'object', 'members': [
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'vel_limit', 'id': 281, 'type': 'float', 'access': 'rw'},
- {'name': 'accel_limit', 'id': 282, 'type': 'float', 'access': 'rw'},
- {'name': 'decel_limit', 'id': 283, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'min_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 284, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 285, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 286, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 287, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 288, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 289, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 290, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'max_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 291, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 292, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 293, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 294, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 295, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 296, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 297, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'watchdog_feed', 'id': 298, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'clear_errors', 'id': 299, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'axis1', 'type': 'object', 'members': [
- {'name': 'error', 'id': 300, 'type': 'int32', 'access': 'rw'},
- {'name': 'step_dir_active', 'id': 301, 'type': 'bool', 'access': 'r'},
- {'name': 'current_state', 'id': 302, 'type': 'int32', 'access': 'r'},
- {'name': 'requested_state', 'id': 303, 'type': 'int32', 'access': 'rw'},
- {'name': 'loop_counter', 'id': 304, 'type': 'uint32', 'access': 'r'},
- {'name': 'lockin_state', 'id': 305, 'type': 'int32', 'access': 'r'},
- {'name': 'is_homed', 'id': 306, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'startup_motor_calibration', 'id': 307, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_index_search', 'id': 308, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_offset_calibration', 'id': 309, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_closed_loop_control', 'id': 310, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_sensorless_control', 'id': 311, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_homing', 'id': 312, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_step_dir', 'id': 313, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_dir_always_on', 'id': 314, 'type': 'bool', 'access': 'rw'},
- {'name': 'turns_per_step', 'id': 315, 'type': 'float', 'access': 'rw'},
- {'name': 'watchdog_timeout', 'id': 316, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_watchdog', 'id': 317, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_gpio_pin', 'id': 318, 'type': 'uint16', 'access': 'rw'},
- {'name': 'dir_gpio_pin', 'id': 319, 'type': 'uint16', 'access': 'rw'},
- {'name': 'calibration_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 320, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 321, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 322, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 323, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 324, 'type': 'float', 'access': 'rw'}]},
- {'name': 'sensorless_ramp', 'type': 'object', 'members': [
- {'name': 'current', 'id': 325, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 326, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 327, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 328, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 329, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 330, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 331, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 332, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 333, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'general_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 334, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 335, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 336, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 337, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 338, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 339, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 340, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 341, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 342, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'can_node_id', 'id': 343, 'type': 'uint32', 'access': 'rw'},
- {'name': 'can_node_id_extended', 'id': 344, 'type': 'bool', 'access': 'rw'},
- {'name': 'can_heartbeat_rate_ms', 'id': 345, 'type': 'uint32', 'access': 'rw'}]},
- {'name': 'fet_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 346, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 347, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'temp_limit_lower', 'id': 348, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 349, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 350, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 351, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 352, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_pin', 'id': 353, 'type': 'uint16', 'access': 'rw'},
- {'name': 'poly_coefficient_0', 'id': 354, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_1', 'id': 355, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_2', 'id': 356, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_3', 'id': 357, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_lower', 'id': 358, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 359, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 360, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 361, 'type': 'int32', 'access': 'rw'},
- {'name': 'armed_state', 'id': 362, 'type': 'int32', 'access': 'r'},
- {'name': 'is_calibrated', 'id': 363, 'type': 'bool', 'access': 'r'},
- {'name': 'current_meas_phB', 'id': 364, 'type': 'float', 'access': 'r'},
- {'name': 'current_meas_phC', 'id': 365, 'type': 'float', 'access': 'r'},
- {'name': 'DC_calib_phB', 'id': 366, 'type': 'float', 'access': 'rw'},
- {'name': 'DC_calib_phC', 'id': 367, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_current_rev_gain', 'id': 368, 'type': 'float', 'access': 'rw'},
- {'name': 'effective_current_lim', 'id': 369, 'type': 'float', 'access': 'r'},
- {'name': 'current_control', 'type': 'object', 'members': [
- {'name': 'p_gain', 'id': 370, 'type': 'float', 'access': 'rw'},
- {'name': 'i_gain', 'id': 371, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_d', 'id': 372, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_q', 'id': 373, 'type': 'float', 'access': 'rw'},
- {'name': 'Ibus', 'id': 374, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_alpha', 'id': 375, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_beta', 'id': 376, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_setpoint', 'id': 377, 'type': 'float', 'access': 'rw'},
- {'name': 'Iq_setpoint', 'id': 378, 'type': 'float', 'access': 'r'},
- {'name': 'Iq_measured', 'id': 379, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_measured', 'id': 380, 'type': 'float', 'access': 'rw'},
- {'name': 'I_measured_report_filter_k', 'id': 381, 'type': 'float', 'access': 'rw'},
- {'name': 'max_allowed_current', 'id': 382, 'type': 'float', 'access': 'r'},
- {'name': 'overcurrent_trip_level', 'id': 383, 'type': 'float', 'access': 'r'},
- {'name': 'acim_rotor_flux', 'id': 384, 'type': 'float', 'access': 'rw'},
- {'name': 'async_phase_vel', 'id': 385, 'type': 'float', 'access': 'r'},
- {'name': 'async_phase_offset', 'id': 386, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gate_driver', 'type': 'object', 'members': [
- {'name': 'drv_fault', 'id': 387, 'type': 'int32', 'access': 'r'}]},
- {'name': 'timing_log', 'type': 'object', 'members': [
- {'name': 'general', 'id': 388, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_i', 'id': 389, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_dc', 'id': 390, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_r', 'id': 391, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_l', 'id': 392, 'type': 'uint16', 'access': 'r'},
- {'name': 'enc_calib', 'id': 393, 'type': 'uint16', 'access': 'r'},
- {'name': 'idx_search', 'id': 394, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_voltage', 'id': 395, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_current', 'id': 396, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_start', 'id': 397, 'type': 'uint16', 'access': 'r'},
- {'name': 'sample_now', 'id': 398, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_end', 'id': 399, 'type': 'uint16', 'access': 'r'}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'pre_calibrated', 'id': 400, 'type': 'bool', 'access': 'rw'},
- {'name': 'pole_pairs', 'id': 401, 'type': 'int32', 'access': 'rw'},
- {'name': 'calibration_current', 'id': 402, 'type': 'float', 'access': 'rw'},
- {'name': 'resistance_calib_max_voltage', 'id': 403, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_inductance', 'id': 404, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_resistance', 'id': 405, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_constant', 'id': 406, 'type': 'float', 'access': 'rw'},
- {'name': 'direction', 'id': 407, 'type': 'int32', 'access': 'rw'},
- {'name': 'motor_type', 'id': 408, 'type': 'int32', 'access': 'rw'},
- {'name': 'current_lim', 'id': 409, 'type': 'float', 'access': 'rw'},
- {'name': 'current_lim_margin', 'id': 410, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_lim', 'id': 411, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_lower', 'id': 412, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_upper', 'id': 413, 'type': 'float', 'access': 'rw'},
- {'name': 'requested_current_range', 'id': 414, 'type': 'float', 'access': 'rw'},
- {'name': 'current_control_bandwidth', 'id': 415, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_slip_velocity', 'id': 416, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_gain_min_flux', 'id': 417, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_min_Id', 'id': 418, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_enable', 'id': 419, 'type': 'bool', 'access': 'rw'},
- {'name': 'acim_autoflux_attack_gain', 'id': 420, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_decay_gain', 'id': 421, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'controller', 'type': 'object', 'members': [
- {'name': 'error', 'id': 422, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_pos', 'id': 423, 'type': 'float', 'access': 'rw'},
- {'name': 'input_vel', 'id': 424, 'type': 'float', 'access': 'rw'},
- {'name': 'input_torque', 'id': 425, 'type': 'float', 'access': 'rw'},
- {'name': 'pos_setpoint', 'id': 426, 'type': 'float', 'access': 'r'},
- {'name': 'vel_setpoint', 'id': 427, 'type': 'float', 'access': 'r'},
- {'name': 'torque_setpoint', 'id': 428, 'type': 'float', 'access': 'r'},
- {'name': 'trajectory_done', 'id': 429, 'type': 'bool', 'access': 'r'},
- {'name': 'vel_integrator_torque', 'id': 430, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging_valid', 'id': 431, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gain_scheduling_width', 'id': 432, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_vel_limit', 'id': 433, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_current_mode_vel_limit', 'id': 434, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_gain_scheduling', 'id': 435, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_overspeed_error', 'id': 436, 'type': 'bool', 'access': 'rw'},
- {'name': 'control_mode', 'id': 437, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_mode', 'id': 438, 'type': 'int32', 'access': 'rw'},
- {'name': 'pos_gain', 'id': 439, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_gain', 'id': 440, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_integrator_gain', 'id': 441, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit', 'id': 442, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit_tolerance', 'id': 443, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_ramp_rate', 'id': 444, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_ramp_rate', 'id': 445, 'type': 'float', 'access': 'rw'},
- {'name': 'circular_setpoints', 'id': 446, 'type': 'bool', 'access': 'rw'},
- {'name': 'circular_setpoint_range', 'id': 447, 'type': 'float', 'access': 'rw'},
- {'name': 'homing_speed', 'id': 448, 'type': 'float', 'access': 'rw'},
- {'name': 'inertia', 'id': 449, 'type': 'float', 'access': 'rw'},
- {'name': 'axis_to_mirror', 'id': 450, 'type': 'uint8', 'access': 'rw'},
- {'name': 'mirror_ratio', 'id': 451, 'type': 'float', 'access': 'rw'},
- {'name': 'load_encoder_axis', 'id': 452, 'type': 'uint8', 'access': 'rw'},
- {'name': 'input_filter_bandwidth', 'id': 453, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging', 'type': 'object', 'members': [
- {'name': 'index', 'id': 454, 'type': 'uint32', 'access': 'r'},
- {'name': 'pre_calibrated', 'id': 455, 'type': 'bool', 'access': 'rw'},
- {'name': 'calib_anticogging', 'id': 456, 'type': 'bool', 'access': 'r'},
- {'name': 'calib_pos_threshold', 'id': 457, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_vel_threshold', 'id': 458, 'type': 'float', 'access': 'rw'},
- {'name': 'cogging_ratio', 'id': 459, 'type': 'float', 'access': 'r'},
- {'name': 'anticogging_enabled', 'id': 460, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'move_incremental', 'id': 461, 'type': 'function', 'inputs': [
- {'name': 'displacement', 'id': 462, 'type': 'float', 'access': 'rw'},
- {'name': 'from_input_pos', 'id': 463, 'type': 'bool', 'access': 'rw'}], 'outputs': []},
- {'name': 'start_anticogging_calibration', 'id': 464, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'encoder', 'type': 'object', 'members': [
- {'name': 'error', 'id': 465, 'type': 'int32', 'access': 'rw'},
- {'name': 'is_ready', 'id': 466, 'type': 'bool', 'access': 'r'},
- {'name': 'index_found', 'id': 467, 'type': 'bool', 'access': 'r'},
- {'name': 'shadow_count', 'id': 468, 'type': 'int32', 'access': 'r'},
- {'name': 'count_in_cpr', 'id': 469, 'type': 'int32', 'access': 'r'},
- {'name': 'interpolation', 'id': 470, 'type': 'float', 'access': 'r'},
- {'name': 'phase', 'id': 471, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate', 'id': 472, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate_counts', 'id': 473, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr', 'id': 474, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr_counts', 'id': 475, 'type': 'float', 'access': 'r'},
- {'name': 'pos_circular', 'id': 476, 'type': 'float', 'access': 'r'},
- {'name': 'hall_state', 'id': 477, 'type': 'uint8', 'access': 'r'},
- {'name': 'vel_estimate', 'id': 478, 'type': 'float', 'access': 'r'},
- {'name': 'vel_estimate_counts', 'id': 479, 'type': 'float', 'access': 'r'},
- {'name': 'calib_scan_response', 'id': 480, 'type': 'float', 'access': 'r'},
- {'name': 'pos_abs', 'id': 481, 'type': 'int32', 'access': 'rw'},
- {'name': 'spi_error_rate', 'id': 482, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'mode', 'id': 483, 'type': 'int32', 'access': 'rw'},
- {'name': 'use_index', 'id': 484, 'type': 'bool', 'access': 'rw'},
- {'name': 'find_idx_on_lockin_only', 'id': 485, 'type': 'bool', 'access': 'rw'},
- {'name': 'abs_spi_cs_gpio_pin', 'id': 486, 'type': 'uint16', 'access': 'rw'},
- {'name': 'zero_count_on_find_idx', 'id': 487, 'type': 'bool', 'access': 'rw'},
- {'name': 'cpr', 'id': 488, 'type': 'int32', 'access': 'rw'},
- {'name': 'offset', 'id': 489, 'type': 'int32', 'access': 'rw'},
- {'name': 'pre_calibrated', 'id': 490, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset_float', 'id': 491, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_phase_interpolation', 'id': 492, 'type': 'bool', 'access': 'rw'},
- {'name': 'bandwidth', 'id': 493, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_range', 'id': 494, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_distance', 'id': 495, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_omega', 'id': 496, 'type': 'float', 'access': 'rw'},
- {'name': 'idx_search_unidirectional', 'id': 497, 'type': 'bool', 'access': 'rw'},
- {'name': 'ignore_illegal_hall_state', 'id': 498, 'type': 'bool', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_sin', 'id': 499, 'type': 'uint16', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_cos', 'id': 500, 'type': 'uint16', 'access': 'rw'}]},
- {'name': 'set_linear_count', 'id': 501, 'type': 'function', 'inputs': [
- {'name': 'count', 'id': 502, 'type': 'int32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'sensorless_estimator', 'type': 'object', 'members': [
- {'name': 'error', 'id': 503, 'type': 'int32', 'access': 'rw'},
- {'name': 'phase', 'id': 504, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_pos', 'id': 505, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_estimate', 'id': 506, 'type': 'float', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'observer_gain', 'id': 507, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_bandwidth', 'id': 508, 'type': 'float', 'access': 'rw'},
- {'name': 'pm_flux_linkage', 'id': 509, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'trap_traj', 'type': 'object', 'members': [
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'vel_limit', 'id': 510, 'type': 'float', 'access': 'rw'},
- {'name': 'accel_limit', 'id': 511, 'type': 'float', 'access': 'rw'},
- {'name': 'decel_limit', 'id': 512, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'min_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 513, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 514, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 515, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 516, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 517, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 518, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 519, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'max_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 520, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 521, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 522, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 523, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 524, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 525, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 526, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'watchdog_feed', 'id': 527, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'clear_errors', 'id': 528, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'can', 'type': 'object', 'members': [
- {'name': 'error', 'id': 529, 'type': 'int32', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'baud_rate', 'id': 530, 'type': 'uint32', 'access': 'r'},
- {'name': 'protocol', 'id': 531, 'type': 'int32', 'access': 'rw'}]},
- {'name': 'set_baud_rate', 'id': 532, 'type': 'function', 'inputs': [
- {'name': 'baudRate', 'id': 533, 'type': 'uint32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'test_property', 'id': 534, 'type': 'uint32', 'access': 'rw'},
- {'name': 'test_function', 'id': 535, 'type': 'function', 'inputs': [
- {'name': 'delta', 'id': 536, 'type': 'int32', 'access': 'rw'}], 'outputs': [
- {'name': 'cnt', 'id': 537, 'type': 'int32', 'access': 'r'}]},
- {'name': 'get_oscilloscope_val', 'id': 538, 'type': 'function', 'inputs': [
- {'name': 'index', 'id': 539, 'type': 'uint32', 'access': 'rw'}], 'outputs': [
- {'name': 'val', 'id': 540, 'type': 'float', 'access': 'r'}]},
- {'name': 'get_adc_voltage', 'id': 541, 'type': 'function', 'inputs': [
- {'name': 'gpio', 'id': 542, 'type': 'uint32', 'access': 'rw'}], 'outputs': [
- {'name': 'voltage', 'id': 543, 'type': 'float', 'access': 'r'}]},
- {'name': 'save_configuration', 'id': 544, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'erase_configuration', 'id': 545, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'reboot', 'id': 546, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'enter_dfu_mode', 'id': 547, 'type': 'function', 'inputs': [], 'outputs': []}]
- malformed member : unsupported codec json
- Connected to ODrive. ODrive 35619129216333, hw v3.6-56, fw v0.5.1-dev, sdk v0.5.1
- Already connected. Disconnecting and reconnecting.
- ConfigurationValue 1
- InterfaceNumber 0,0
- EndpointAddress 130
- InterfaceNumber 1,0
- EndpointAddress 1
- EndpointAddress 129
- InterfaceNumber 2,0
- EndpointAddress 3
- EndpointAddress 131
- Kernel Driver was not attached
- EndpointAddress for writing 3
- EndpointAddress for reading 131
- receiver thread is exiting: Traceback (most recent call last):
- File "/usr/local/lib/python3.7/dist-packages/fibre/usbbulk_transport.py", line 127, in get_packet
- ret = self.epr.read(bufferLen, timeout)
- File "/home/pi/.local/lib/python3.7/site-packages/usb/core.py", line 421, in read
- return self.device.read(self, size_or_buffer, timeout)
- File "/home/pi/.local/lib/python3.7/site-packages/usb/core.py", line 1022, in read
- self.__get_timeout(timeout))
- File "/home/pi/.local/lib/python3.7/site-packages/usb/backend/libusb1.py", line 851, in bulk_read
- timeout)
- File "/home/pi/.local/lib/python3.7/site-packages/usb/backend/libusb1.py", line 954, in __read
- _check(retval)
- File "/home/pi/.local/lib/python3.7/site-packages/usb/backend/libusb1.py", line 604, in _check
- raise USBError(_strerror(ret), ret, _libusb_errno[ret])
- usb.core.USBError: [Errno 19] No such device (it may have been disconnected)
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "/usr/local/lib/python3.7/dist-packages/fibre/protocol.py", line 241, in receiver_thread
- response = self._input.get_packet(deadline)
- File "/usr/local/lib/python3.7/dist-packages/fibre/usbbulk_transport.py", line 134, in get_packet
- raise fibre.protocol.ChannelBrokenException()
- fibre.protocol.ChannelBrokenException
- Connecting to device on USB device bus 1 device 19
- Device reported JSON version ID: 2604684226
- JSON: [
- {'name': '', 'id': 0, 'type': 'json', 'access': 'r'},
- {'name': 'vbus_voltage', 'id': 1, 'type': 'float', 'access': 'r'},
- {'name': 'ibus', 'id': 2, 'type': 'float', 'access': 'r'},
- {'name': 'ibus_report_filter_k', 'id': 3, 'type': 'float', 'access': 'rw'},
- {'name': 'serial_number', 'id': 4, 'type': 'uint64', 'access': 'r'},
- {'name': 'hw_version_major', 'id': 5, 'type': 'uint8', 'access': 'r'},
- {'name': 'hw_version_minor', 'id': 6, 'type': 'uint8', 'access': 'r'},
- {'name': 'hw_version_variant', 'id': 7, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_major', 'id': 8, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_minor', 'id': 9, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_revision', 'id': 10, 'type': 'uint8', 'access': 'r'},
- {'name': 'fw_version_unreleased', 'id': 11, 'type': 'uint8', 'access': 'r'},
- {'name': 'brake_resistor_armed', 'id': 12, 'type': 'bool', 'access': 'r'},
- {'name': 'brake_resistor_saturated', 'id': 13, 'type': 'bool', 'access': 'rw'},
- {'name': 'system_stats', 'type': 'object', 'members': [
- {'name': 'uptime', 'id': 14, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_heap_space', 'id': 15, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_axis0', 'id': 16, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_axis1', 'id': 17, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_comms', 'id': 18, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_usb', 'id': 19, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_uart', 'id': 20, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_can', 'id': 21, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_usb_irq', 'id': 22, 'type': 'uint32', 'access': 'r'},
- {'name': 'min_stack_space_startup', 'id': 23, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_axis0', 'id': 24, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_axis1', 'id': 25, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_comms', 'id': 26, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_usb', 'id': 27, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_uart', 'id': 28, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_usb_irq', 'id': 29, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_startup', 'id': 30, 'type': 'uint32', 'access': 'r'},
- {'name': 'stack_usage_can', 'id': 31, 'type': 'uint32', 'access': 'r'},
- {'name': 'usb', 'type': 'object', 'members': [
- {'name': 'rx_cnt', 'id': 32, 'type': 'uint32', 'access': 'r'},
- {'name': 'tx_cnt', 'id': 33, 'type': 'uint32', 'access': 'r'},
- {'name': 'tx_overrun_cnt', 'id': 34, 'type': 'uint32', 'access': 'r'}]},
- {'name': 'i2c', 'type': 'object', 'members': [
- {'name': 'addr', 'id': 35, 'type': 'uint8', 'access': 'r'},
- {'name': 'addr_match_cnt', 'id': 36, 'type': 'uint32', 'access': 'r'},
- {'name': 'rx_cnt', 'id': 37, 'type': 'uint32', 'access': 'r'},
- {'name': 'error_cnt', 'id': 38, 'type': 'uint32', 'access': 'r'}]}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'enable_uart', 'id': 39, 'type': 'bool', 'access': 'rw'},
- {'name': 'uart_baudrate', 'id': 40, 'type': 'uint32', 'access': 'rw'},
- {'name': 'enable_i2c_instead_of_can', 'id': 41, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_ascii_protocol_on_usb', 'id': 42, 'type': 'bool', 'access': 'rw'},
- {'name': 'max_regen_current', 'id': 43, 'type': 'float', 'access': 'rw'},
- {'name': 'brake_resistance', 'id': 44, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_undervoltage_trip_level', 'id': 45, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_trip_level', 'id': 46, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_dc_bus_overvoltage_ramp', 'id': 47, 'type': 'bool', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_ramp_start', 'id': 48, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_bus_overvoltage_ramp_end', 'id': 49, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_max_positive_current', 'id': 50, 'type': 'float', 'access': 'rw'},
- {'name': 'dc_max_negative_current', 'id': 51, 'type': 'float', 'access': 'rw'},
- {'name': 'gpio1_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 52, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 53, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 54, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio2_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 55, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 56, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 57, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio3_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 58, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 59, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 60, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio4_pwm_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 61, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 62, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 63, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio3_analog_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 64, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 65, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 66, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gpio4_analog_mapping', 'type': 'object', 'members': [
- {'name': 'endpoint', 'id': 67, 'type': 'endpoint_ref', 'access': 'rw'},
- {'name': 'min', 'id': 68, 'type': 'float', 'access': 'rw'},
- {'name': 'max', 'id': 69, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'user_config_loaded', 'id': 70, 'type': 'bool', 'access': 'r'},
- {'name': 'axis0', 'type': 'object', 'members': [
- {'name': 'error', 'id': 71, 'type': 'int32', 'access': 'rw'},
- {'name': 'step_dir_active', 'id': 72, 'type': 'bool', 'access': 'r'},
- {'name': 'current_state', 'id': 73, 'type': 'int32', 'access': 'r'},
- {'name': 'requested_state', 'id': 74, 'type': 'int32', 'access': 'rw'},
- {'name': 'loop_counter', 'id': 75, 'type': 'uint32', 'access': 'r'},
- {'name': 'lockin_state', 'id': 76, 'type': 'int32', 'access': 'r'},
- {'name': 'is_homed', 'id': 77, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'startup_motor_calibration', 'id': 78, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_index_search', 'id': 79, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_offset_calibration', 'id': 80, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_closed_loop_control', 'id': 81, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_sensorless_control', 'id': 82, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_homing', 'id': 83, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_step_dir', 'id': 84, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_dir_always_on', 'id': 85, 'type': 'bool', 'access': 'rw'},
- {'name': 'turns_per_step', 'id': 86, 'type': 'float', 'access': 'rw'},
- {'name': 'watchdog_timeout', 'id': 87, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_watchdog', 'id': 88, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_gpio_pin', 'id': 89, 'type': 'uint16', 'access': 'rw'},
- {'name': 'dir_gpio_pin', 'id': 90, 'type': 'uint16', 'access': 'rw'},
- {'name': 'calibration_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 91, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 92, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 93, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 94, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 95, 'type': 'float', 'access': 'rw'}]},
- {'name': 'sensorless_ramp', 'type': 'object', 'members': [
- {'name': 'current', 'id': 96, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 97, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 98, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 99, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 100, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 101, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 102, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 103, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 104, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'general_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 105, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 106, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 107, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 108, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 109, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 110, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 111, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 112, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 113, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'can_node_id', 'id': 114, 'type': 'uint32', 'access': 'rw'},
- {'name': 'can_node_id_extended', 'id': 115, 'type': 'bool', 'access': 'rw'},
- {'name': 'can_heartbeat_rate_ms', 'id': 116, 'type': 'uint32', 'access': 'rw'}]},
- {'name': 'fet_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 117, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 118, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'temp_limit_lower', 'id': 119, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 120, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 121, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 122, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 123, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_pin', 'id': 124, 'type': 'uint16', 'access': 'rw'},
- {'name': 'poly_coefficient_0', 'id': 125, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_1', 'id': 126, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_2', 'id': 127, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_3', 'id': 128, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_lower', 'id': 129, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 130, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 131, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 132, 'type': 'int32', 'access': 'rw'},
- {'name': 'armed_state', 'id': 133, 'type': 'int32', 'access': 'r'},
- {'name': 'is_calibrated', 'id': 134, 'type': 'bool', 'access': 'r'},
- {'name': 'current_meas_phB', 'id': 135, 'type': 'float', 'access': 'r'},
- {'name': 'current_meas_phC', 'id': 136, 'type': 'float', 'access': 'r'},
- {'name': 'DC_calib_phB', 'id': 137, 'type': 'float', 'access': 'rw'},
- {'name': 'DC_calib_phC', 'id': 138, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_current_rev_gain', 'id': 139, 'type': 'float', 'access': 'rw'},
- {'name': 'effective_current_lim', 'id': 140, 'type': 'float', 'access': 'r'},
- {'name': 'current_control', 'type': 'object', 'members': [
- {'name': 'p_gain', 'id': 141, 'type': 'float', 'access': 'rw'},
- {'name': 'i_gain', 'id': 142, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_d', 'id': 143, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_q', 'id': 144, 'type': 'float', 'access': 'rw'},
- {'name': 'Ibus', 'id': 145, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_alpha', 'id': 146, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_beta', 'id': 147, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_setpoint', 'id': 148, 'type': 'float', 'access': 'rw'},
- {'name': 'Iq_setpoint', 'id': 149, 'type': 'float', 'access': 'r'},
- {'name': 'Iq_measured', 'id': 150, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_measured', 'id': 151, 'type': 'float', 'access': 'rw'},
- {'name': 'I_measured_report_filter_k', 'id': 152, 'type': 'float', 'access': 'rw'},
- {'name': 'max_allowed_current', 'id': 153, 'type': 'float', 'access': 'r'},
- {'name': 'overcurrent_trip_level', 'id': 154, 'type': 'float', 'access': 'r'},
- {'name': 'acim_rotor_flux', 'id': 155, 'type': 'float', 'access': 'rw'},
- {'name': 'async_phase_vel', 'id': 156, 'type': 'float', 'access': 'r'},
- {'name': 'async_phase_offset', 'id': 157, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gate_driver', 'type': 'object', 'members': [
- {'name': 'drv_fault', 'id': 158, 'type': 'int32', 'access': 'r'}]},
- {'name': 'timing_log', 'type': 'object', 'members': [
- {'name': 'general', 'id': 159, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_i', 'id': 160, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_dc', 'id': 161, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_r', 'id': 162, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_l', 'id': 163, 'type': 'uint16', 'access': 'r'},
- {'name': 'enc_calib', 'id': 164, 'type': 'uint16', 'access': 'r'},
- {'name': 'idx_search', 'id': 165, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_voltage', 'id': 166, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_current', 'id': 167, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_start', 'id': 168, 'type': 'uint16', 'access': 'r'},
- {'name': 'sample_now', 'id': 169, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_end', 'id': 170, 'type': 'uint16', 'access': 'r'}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'pre_calibrated', 'id': 171, 'type': 'bool', 'access': 'rw'},
- {'name': 'pole_pairs', 'id': 172, 'type': 'int32', 'access': 'rw'},
- {'name': 'calibration_current', 'id': 173, 'type': 'float', 'access': 'rw'},
- {'name': 'resistance_calib_max_voltage', 'id': 174, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_inductance', 'id': 175, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_resistance', 'id': 176, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_constant', 'id': 177, 'type': 'float', 'access': 'rw'},
- {'name': 'direction', 'id': 178, 'type': 'int32', 'access': 'rw'},
- {'name': 'motor_type', 'id': 179, 'type': 'int32', 'access': 'rw'},
- {'name': 'current_lim', 'id': 180, 'type': 'float', 'access': 'rw'},
- {'name': 'current_lim_margin', 'id': 181, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_lim', 'id': 182, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_lower', 'id': 183, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_upper', 'id': 184, 'type': 'float', 'access': 'rw'},
- {'name': 'requested_current_range', 'id': 185, 'type': 'float', 'access': 'rw'},
- {'name': 'current_control_bandwidth', 'id': 186, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_slip_velocity', 'id': 187, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_gain_min_flux', 'id': 188, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_min_Id', 'id': 189, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_enable', 'id': 190, 'type': 'bool', 'access': 'rw'},
- {'name': 'acim_autoflux_attack_gain', 'id': 191, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_decay_gain', 'id': 192, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'controller', 'type': 'object', 'members': [
- {'name': 'error', 'id': 193, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_pos', 'id': 194, 'type': 'float', 'access': 'rw'},
- {'name': 'input_vel', 'id': 195, 'type': 'float', 'access': 'rw'},
- {'name': 'input_torque', 'id': 196, 'type': 'float', 'access': 'rw'},
- {'name': 'pos_setpoint', 'id': 197, 'type': 'float', 'access': 'r'},
- {'name': 'vel_setpoint', 'id': 198, 'type': 'float', 'access': 'r'},
- {'name': 'torque_setpoint', 'id': 199, 'type': 'float', 'access': 'r'},
- {'name': 'trajectory_done', 'id': 200, 'type': 'bool', 'access': 'r'},
- {'name': 'vel_integrator_torque', 'id': 201, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging_valid', 'id': 202, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gain_scheduling_width', 'id': 203, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_vel_limit', 'id': 204, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_current_mode_vel_limit', 'id': 205, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_gain_scheduling', 'id': 206, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_overspeed_error', 'id': 207, 'type': 'bool', 'access': 'rw'},
- {'name': 'control_mode', 'id': 208, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_mode', 'id': 209, 'type': 'int32', 'access': 'rw'},
- {'name': 'pos_gain', 'id': 210, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_gain', 'id': 211, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_integrator_gain', 'id': 212, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit', 'id': 213, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit_tolerance', 'id': 214, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_ramp_rate', 'id': 215, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_ramp_rate', 'id': 216, 'type': 'float', 'access': 'rw'},
- {'name': 'circular_setpoints', 'id': 217, 'type': 'bool', 'access': 'rw'},
- {'name': 'circular_setpoint_range', 'id': 218, 'type': 'float', 'access': 'rw'},
- {'name': 'homing_speed', 'id': 219, 'type': 'float', 'access': 'rw'},
- {'name': 'inertia', 'id': 220, 'type': 'float', 'access': 'rw'},
- {'name': 'axis_to_mirror', 'id': 221, 'type': 'uint8', 'access': 'rw'},
- {'name': 'mirror_ratio', 'id': 222, 'type': 'float', 'access': 'rw'},
- {'name': 'load_encoder_axis', 'id': 223, 'type': 'uint8', 'access': 'rw'},
- {'name': 'input_filter_bandwidth', 'id': 224, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging', 'type': 'object', 'members': [
- {'name': 'index', 'id': 225, 'type': 'uint32', 'access': 'r'},
- {'name': 'pre_calibrated', 'id': 226, 'type': 'bool', 'access': 'rw'},
- {'name': 'calib_anticogging', 'id': 227, 'type': 'bool', 'access': 'r'},
- {'name': 'calib_pos_threshold', 'id': 228, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_vel_threshold', 'id': 229, 'type': 'float', 'access': 'rw'},
- {'name': 'cogging_ratio', 'id': 230, 'type': 'float', 'access': 'r'},
- {'name': 'anticogging_enabled', 'id': 231, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'move_incremental', 'id': 232, 'type': 'function', 'inputs': [
- {'name': 'displacement', 'id': 233, 'type': 'float', 'access': 'rw'},
- {'name': 'from_input_pos', 'id': 234, 'type': 'bool', 'access': 'rw'}], 'outputs': []},
- {'name': 'start_anticogging_calibration', 'id': 235, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'encoder', 'type': 'object', 'members': [
- {'name': 'error', 'id': 236, 'type': 'int32', 'access': 'rw'},
- {'name': 'is_ready', 'id': 237, 'type': 'bool', 'access': 'r'},
- {'name': 'index_found', 'id': 238, 'type': 'bool', 'access': 'r'},
- {'name': 'shadow_count', 'id': 239, 'type': 'int32', 'access': 'r'},
- {'name': 'count_in_cpr', 'id': 240, 'type': 'int32', 'access': 'r'},
- {'name': 'interpolation', 'id': 241, 'type': 'float', 'access': 'r'},
- {'name': 'phase', 'id': 242, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate', 'id': 243, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate_counts', 'id': 244, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr', 'id': 245, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr_counts', 'id': 246, 'type': 'float', 'access': 'r'},
- {'name': 'pos_circular', 'id': 247, 'type': 'float', 'access': 'r'},
- {'name': 'hall_state', 'id': 248, 'type': 'uint8', 'access': 'r'},
- {'name': 'vel_estimate', 'id': 249, 'type': 'float', 'access': 'r'},
- {'name': 'vel_estimate_counts', 'id': 250, 'type': 'float', 'access': 'r'},
- {'name': 'calib_scan_response', 'id': 251, 'type': 'float', 'access': 'r'},
- {'name': 'pos_abs', 'id': 252, 'type': 'int32', 'access': 'rw'},
- {'name': 'spi_error_rate', 'id': 253, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'mode', 'id': 254, 'type': 'int32', 'access': 'rw'},
- {'name': 'use_index', 'id': 255, 'type': 'bool', 'access': 'rw'},
- {'name': 'find_idx_on_lockin_only', 'id': 256, 'type': 'bool', 'access': 'rw'},
- {'name': 'abs_spi_cs_gpio_pin', 'id': 257, 'type': 'uint16', 'access': 'rw'},
- {'name': 'zero_count_on_find_idx', 'id': 258, 'type': 'bool', 'access': 'rw'},
- {'name': 'cpr', 'id': 259, 'type': 'int32', 'access': 'rw'},
- {'name': 'offset', 'id': 260, 'type': 'int32', 'access': 'rw'},
- {'name': 'pre_calibrated', 'id': 261, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset_float', 'id': 262, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_phase_interpolation', 'id': 263, 'type': 'bool', 'access': 'rw'},
- {'name': 'bandwidth', 'id': 264, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_range', 'id': 265, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_distance', 'id': 266, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_omega', 'id': 267, 'type': 'float', 'access': 'rw'},
- {'name': 'idx_search_unidirectional', 'id': 268, 'type': 'bool', 'access': 'rw'},
- {'name': 'ignore_illegal_hall_state', 'id': 269, 'type': 'bool', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_sin', 'id': 270, 'type': 'uint16', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_cos', 'id': 271, 'type': 'uint16', 'access': 'rw'}]},
- {'name': 'set_linear_count', 'id': 272, 'type': 'function', 'inputs': [
- {'name': 'count', 'id': 273, 'type': 'int32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'sensorless_estimator', 'type': 'object', 'members': [
- {'name': 'error', 'id': 274, 'type': 'int32', 'access': 'rw'},
- {'name': 'phase', 'id': 275, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_pos', 'id': 276, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_estimate', 'id': 277, 'type': 'float', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'observer_gain', 'id': 278, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_bandwidth', 'id': 279, 'type': 'float', 'access': 'rw'},
- {'name': 'pm_flux_linkage', 'id': 280, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'trap_traj', 'type': 'object', 'members': [
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'vel_limit', 'id': 281, 'type': 'float', 'access': 'rw'},
- {'name': 'accel_limit', 'id': 282, 'type': 'float', 'access': 'rw'},
- {'name': 'decel_limit', 'id': 283, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'min_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 284, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 285, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 286, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 287, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 288, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 289, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 290, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'max_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 291, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 292, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 293, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 294, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 295, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 296, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 297, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'watchdog_feed', 'id': 298, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'clear_errors', 'id': 299, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'axis1', 'type': 'object', 'members': [
- {'name': 'error', 'id': 300, 'type': 'int32', 'access': 'rw'},
- {'name': 'step_dir_active', 'id': 301, 'type': 'bool', 'access': 'r'},
- {'name': 'current_state', 'id': 302, 'type': 'int32', 'access': 'r'},
- {'name': 'requested_state', 'id': 303, 'type': 'int32', 'access': 'rw'},
- {'name': 'loop_counter', 'id': 304, 'type': 'uint32', 'access': 'r'},
- {'name': 'lockin_state', 'id': 305, 'type': 'int32', 'access': 'r'},
- {'name': 'is_homed', 'id': 306, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'startup_motor_calibration', 'id': 307, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_index_search', 'id': 308, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_encoder_offset_calibration', 'id': 309, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_closed_loop_control', 'id': 310, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_sensorless_control', 'id': 311, 'type': 'bool', 'access': 'rw'},
- {'name': 'startup_homing', 'id': 312, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_step_dir', 'id': 313, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_dir_always_on', 'id': 314, 'type': 'bool', 'access': 'rw'},
- {'name': 'turns_per_step', 'id': 315, 'type': 'float', 'access': 'rw'},
- {'name': 'watchdog_timeout', 'id': 316, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_watchdog', 'id': 317, 'type': 'bool', 'access': 'rw'},
- {'name': 'step_gpio_pin', 'id': 318, 'type': 'uint16', 'access': 'rw'},
- {'name': 'dir_gpio_pin', 'id': 319, 'type': 'uint16', 'access': 'rw'},
- {'name': 'calibration_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 320, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 321, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 322, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 323, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 324, 'type': 'float', 'access': 'rw'}]},
- {'name': 'sensorless_ramp', 'type': 'object', 'members': [
- {'name': 'current', 'id': 325, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 326, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 327, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 328, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 329, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 330, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 331, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 332, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 333, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'general_lockin', 'type': 'object', 'members': [
- {'name': 'current', 'id': 334, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_time', 'id': 335, 'type': 'float', 'access': 'rw'},
- {'name': 'ramp_distance', 'id': 336, 'type': 'float', 'access': 'rw'},
- {'name': 'accel', 'id': 337, 'type': 'float', 'access': 'rw'},
- {'name': 'vel', 'id': 338, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_distance', 'id': 339, 'type': 'float', 'access': 'rw'},
- {'name': 'finish_on_vel', 'id': 340, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_distance', 'id': 341, 'type': 'bool', 'access': 'rw'},
- {'name': 'finish_on_enc_idx', 'id': 342, 'type': 'bool', 'access': 'rw'}]},
- {'name': 'can_node_id', 'id': 343, 'type': 'uint32', 'access': 'rw'},
- {'name': 'can_node_id_extended', 'id': 344, 'type': 'bool', 'access': 'rw'},
- {'name': 'can_heartbeat_rate_ms', 'id': 345, 'type': 'uint32', 'access': 'rw'}]},
- {'name': 'fet_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 346, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 347, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'temp_limit_lower', 'id': 348, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 349, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 350, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor_thermistor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 351, 'type': 'int32', 'access': 'rw'},
- {'name': 'temperature', 'id': 352, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_pin', 'id': 353, 'type': 'uint16', 'access': 'rw'},
- {'name': 'poly_coefficient_0', 'id': 354, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_1', 'id': 355, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_2', 'id': 356, 'type': 'float', 'access': 'rw'},
- {'name': 'poly_coefficient_3', 'id': 357, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_lower', 'id': 358, 'type': 'float', 'access': 'rw'},
- {'name': 'temp_limit_upper', 'id': 359, 'type': 'float', 'access': 'rw'},
- {'name': 'enabled', 'id': 360, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'motor', 'type': 'object', 'members': [
- {'name': 'error', 'id': 361, 'type': 'int32', 'access': 'rw'},
- {'name': 'armed_state', 'id': 362, 'type': 'int32', 'access': 'r'},
- {'name': 'is_calibrated', 'id': 363, 'type': 'bool', 'access': 'r'},
- {'name': 'current_meas_phB', 'id': 364, 'type': 'float', 'access': 'r'},
- {'name': 'current_meas_phC', 'id': 365, 'type': 'float', 'access': 'r'},
- {'name': 'DC_calib_phB', 'id': 366, 'type': 'float', 'access': 'rw'},
- {'name': 'DC_calib_phC', 'id': 367, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_current_rev_gain', 'id': 368, 'type': 'float', 'access': 'rw'},
- {'name': 'effective_current_lim', 'id': 369, 'type': 'float', 'access': 'r'},
- {'name': 'current_control', 'type': 'object', 'members': [
- {'name': 'p_gain', 'id': 370, 'type': 'float', 'access': 'rw'},
- {'name': 'i_gain', 'id': 371, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_d', 'id': 372, 'type': 'float', 'access': 'rw'},
- {'name': 'v_current_control_integral_q', 'id': 373, 'type': 'float', 'access': 'rw'},
- {'name': 'Ibus', 'id': 374, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_alpha', 'id': 375, 'type': 'float', 'access': 'rw'},
- {'name': 'final_v_beta', 'id': 376, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_setpoint', 'id': 377, 'type': 'float', 'access': 'rw'},
- {'name': 'Iq_setpoint', 'id': 378, 'type': 'float', 'access': 'r'},
- {'name': 'Iq_measured', 'id': 379, 'type': 'float', 'access': 'rw'},
- {'name': 'Id_measured', 'id': 380, 'type': 'float', 'access': 'rw'},
- {'name': 'I_measured_report_filter_k', 'id': 381, 'type': 'float', 'access': 'rw'},
- {'name': 'max_allowed_current', 'id': 382, 'type': 'float', 'access': 'r'},
- {'name': 'overcurrent_trip_level', 'id': 383, 'type': 'float', 'access': 'r'},
- {'name': 'acim_rotor_flux', 'id': 384, 'type': 'float', 'access': 'rw'},
- {'name': 'async_phase_vel', 'id': 385, 'type': 'float', 'access': 'r'},
- {'name': 'async_phase_offset', 'id': 386, 'type': 'float', 'access': 'rw'}]},
- {'name': 'gate_driver', 'type': 'object', 'members': [
- {'name': 'drv_fault', 'id': 387, 'type': 'int32', 'access': 'r'}]},
- {'name': 'timing_log', 'type': 'object', 'members': [
- {'name': 'general', 'id': 388, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_i', 'id': 389, 'type': 'uint16', 'access': 'r'},
- {'name': 'adc_cb_dc', 'id': 390, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_r', 'id': 391, 'type': 'uint16', 'access': 'r'},
- {'name': 'meas_l', 'id': 392, 'type': 'uint16', 'access': 'r'},
- {'name': 'enc_calib', 'id': 393, 'type': 'uint16', 'access': 'r'},
- {'name': 'idx_search', 'id': 394, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_voltage', 'id': 395, 'type': 'uint16', 'access': 'r'},
- {'name': 'foc_current', 'id': 396, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_start', 'id': 397, 'type': 'uint16', 'access': 'r'},
- {'name': 'sample_now', 'id': 398, 'type': 'uint16', 'access': 'r'},
- {'name': 'spi_end', 'id': 399, 'type': 'uint16', 'access': 'r'}]},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'pre_calibrated', 'id': 400, 'type': 'bool', 'access': 'rw'},
- {'name': 'pole_pairs', 'id': 401, 'type': 'int32', 'access': 'rw'},
- {'name': 'calibration_current', 'id': 402, 'type': 'float', 'access': 'rw'},
- {'name': 'resistance_calib_max_voltage', 'id': 403, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_inductance', 'id': 404, 'type': 'float', 'access': 'rw'},
- {'name': 'phase_resistance', 'id': 405, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_constant', 'id': 406, 'type': 'float', 'access': 'rw'},
- {'name': 'direction', 'id': 407, 'type': 'int32', 'access': 'rw'},
- {'name': 'motor_type', 'id': 408, 'type': 'int32', 'access': 'rw'},
- {'name': 'current_lim', 'id': 409, 'type': 'float', 'access': 'rw'},
- {'name': 'current_lim_margin', 'id': 410, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_lim', 'id': 411, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_lower', 'id': 412, 'type': 'float', 'access': 'rw'},
- {'name': 'inverter_temp_limit_upper', 'id': 413, 'type': 'float', 'access': 'rw'},
- {'name': 'requested_current_range', 'id': 414, 'type': 'float', 'access': 'rw'},
- {'name': 'current_control_bandwidth', 'id': 415, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_slip_velocity', 'id': 416, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_gain_min_flux', 'id': 417, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_min_Id', 'id': 418, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_enable', 'id': 419, 'type': 'bool', 'access': 'rw'},
- {'name': 'acim_autoflux_attack_gain', 'id': 420, 'type': 'float', 'access': 'rw'},
- {'name': 'acim_autoflux_decay_gain', 'id': 421, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'controller', 'type': 'object', 'members': [
- {'name': 'error', 'id': 422, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_pos', 'id': 423, 'type': 'float', 'access': 'rw'},
- {'name': 'input_vel', 'id': 424, 'type': 'float', 'access': 'rw'},
- {'name': 'input_torque', 'id': 425, 'type': 'float', 'access': 'rw'},
- {'name': 'pos_setpoint', 'id': 426, 'type': 'float', 'access': 'r'},
- {'name': 'vel_setpoint', 'id': 427, 'type': 'float', 'access': 'r'},
- {'name': 'torque_setpoint', 'id': 428, 'type': 'float', 'access': 'r'},
- {'name': 'trajectory_done', 'id': 429, 'type': 'bool', 'access': 'r'},
- {'name': 'vel_integrator_torque', 'id': 430, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging_valid', 'id': 431, 'type': 'bool', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gain_scheduling_width', 'id': 432, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_vel_limit', 'id': 433, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_current_mode_vel_limit', 'id': 434, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_gain_scheduling', 'id': 435, 'type': 'bool', 'access': 'rw'},
- {'name': 'enable_overspeed_error', 'id': 436, 'type': 'bool', 'access': 'rw'},
- {'name': 'control_mode', 'id': 437, 'type': 'int32', 'access': 'rw'},
- {'name': 'input_mode', 'id': 438, 'type': 'int32', 'access': 'rw'},
- {'name': 'pos_gain', 'id': 439, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_gain', 'id': 440, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_integrator_gain', 'id': 441, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit', 'id': 442, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_limit_tolerance', 'id': 443, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_ramp_rate', 'id': 444, 'type': 'float', 'access': 'rw'},
- {'name': 'torque_ramp_rate', 'id': 445, 'type': 'float', 'access': 'rw'},
- {'name': 'circular_setpoints', 'id': 446, 'type': 'bool', 'access': 'rw'},
- {'name': 'circular_setpoint_range', 'id': 447, 'type': 'float', 'access': 'rw'},
- {'name': 'homing_speed', 'id': 448, 'type': 'float', 'access': 'rw'},
- {'name': 'inertia', 'id': 449, 'type': 'float', 'access': 'rw'},
- {'name': 'axis_to_mirror', 'id': 450, 'type': 'uint8', 'access': 'rw'},
- {'name': 'mirror_ratio', 'id': 451, 'type': 'float', 'access': 'rw'},
- {'name': 'load_encoder_axis', 'id': 452, 'type': 'uint8', 'access': 'rw'},
- {'name': 'input_filter_bandwidth', 'id': 453, 'type': 'float', 'access': 'rw'},
- {'name': 'anticogging', 'type': 'object', 'members': [
- {'name': 'index', 'id': 454, 'type': 'uint32', 'access': 'r'},
- {'name': 'pre_calibrated', 'id': 455, 'type': 'bool', 'access': 'rw'},
- {'name': 'calib_anticogging', 'id': 456, 'type': 'bool', 'access': 'r'},
- {'name': 'calib_pos_threshold', 'id': 457, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_vel_threshold', 'id': 458, 'type': 'float', 'access': 'rw'},
- {'name': 'cogging_ratio', 'id': 459, 'type': 'float', 'access': 'r'},
- {'name': 'anticogging_enabled', 'id': 460, 'type': 'bool', 'access': 'rw'}]}]},
- {'name': 'move_incremental', 'id': 461, 'type': 'function', 'inputs': [
- {'name': 'displacement', 'id': 462, 'type': 'float', 'access': 'rw'},
- {'name': 'from_input_pos', 'id': 463, 'type': 'bool', 'access': 'rw'}], 'outputs': []},
- {'name': 'start_anticogging_calibration', 'id': 464, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'encoder', 'type': 'object', 'members': [
- {'name': 'error', 'id': 465, 'type': 'int32', 'access': 'rw'},
- {'name': 'is_ready', 'id': 466, 'type': 'bool', 'access': 'r'},
- {'name': 'index_found', 'id': 467, 'type': 'bool', 'access': 'r'},
- {'name': 'shadow_count', 'id': 468, 'type': 'int32', 'access': 'r'},
- {'name': 'count_in_cpr', 'id': 469, 'type': 'int32', 'access': 'r'},
- {'name': 'interpolation', 'id': 470, 'type': 'float', 'access': 'r'},
- {'name': 'phase', 'id': 471, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate', 'id': 472, 'type': 'float', 'access': 'r'},
- {'name': 'pos_estimate_counts', 'id': 473, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr', 'id': 474, 'type': 'float', 'access': 'r'},
- {'name': 'pos_cpr_counts', 'id': 475, 'type': 'float', 'access': 'r'},
- {'name': 'pos_circular', 'id': 476, 'type': 'float', 'access': 'r'},
- {'name': 'hall_state', 'id': 477, 'type': 'uint8', 'access': 'r'},
- {'name': 'vel_estimate', 'id': 478, 'type': 'float', 'access': 'r'},
- {'name': 'vel_estimate_counts', 'id': 479, 'type': 'float', 'access': 'r'},
- {'name': 'calib_scan_response', 'id': 480, 'type': 'float', 'access': 'r'},
- {'name': 'pos_abs', 'id': 481, 'type': 'int32', 'access': 'rw'},
- {'name': 'spi_error_rate', 'id': 482, 'type': 'float', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'mode', 'id': 483, 'type': 'int32', 'access': 'rw'},
- {'name': 'use_index', 'id': 484, 'type': 'bool', 'access': 'rw'},
- {'name': 'find_idx_on_lockin_only', 'id': 485, 'type': 'bool', 'access': 'rw'},
- {'name': 'abs_spi_cs_gpio_pin', 'id': 486, 'type': 'uint16', 'access': 'rw'},
- {'name': 'zero_count_on_find_idx', 'id': 487, 'type': 'bool', 'access': 'rw'},
- {'name': 'cpr', 'id': 488, 'type': 'int32', 'access': 'rw'},
- {'name': 'offset', 'id': 489, 'type': 'int32', 'access': 'rw'},
- {'name': 'pre_calibrated', 'id': 490, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset_float', 'id': 491, 'type': 'float', 'access': 'rw'},
- {'name': 'enable_phase_interpolation', 'id': 492, 'type': 'bool', 'access': 'rw'},
- {'name': 'bandwidth', 'id': 493, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_range', 'id': 494, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_distance', 'id': 495, 'type': 'float', 'access': 'rw'},
- {'name': 'calib_scan_omega', 'id': 496, 'type': 'float', 'access': 'rw'},
- {'name': 'idx_search_unidirectional', 'id': 497, 'type': 'bool', 'access': 'rw'},
- {'name': 'ignore_illegal_hall_state', 'id': 498, 'type': 'bool', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_sin', 'id': 499, 'type': 'uint16', 'access': 'rw'},
- {'name': 'sincos_gpio_pin_cos', 'id': 500, 'type': 'uint16', 'access': 'rw'}]},
- {'name': 'set_linear_count', 'id': 501, 'type': 'function', 'inputs': [
- {'name': 'count', 'id': 502, 'type': 'int32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'sensorless_estimator', 'type': 'object', 'members': [
- {'name': 'error', 'id': 503, 'type': 'int32', 'access': 'rw'},
- {'name': 'phase', 'id': 504, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_pos', 'id': 505, 'type': 'float', 'access': 'rw'},
- {'name': 'vel_estimate', 'id': 506, 'type': 'float', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'observer_gain', 'id': 507, 'type': 'float', 'access': 'rw'},
- {'name': 'pll_bandwidth', 'id': 508, 'type': 'float', 'access': 'rw'},
- {'name': 'pm_flux_linkage', 'id': 509, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'trap_traj', 'type': 'object', 'members': [
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'vel_limit', 'id': 510, 'type': 'float', 'access': 'rw'},
- {'name': 'accel_limit', 'id': 511, 'type': 'float', 'access': 'rw'},
- {'name': 'decel_limit', 'id': 512, 'type': 'float', 'access': 'rw'}]}]},
- {'name': 'min_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 513, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 514, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 515, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 516, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 517, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 518, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 519, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'max_endstop', 'type': 'object', 'members': [
- {'name': 'endstop_state', 'id': 520, 'type': 'bool', 'access': 'r'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'gpio_num', 'id': 521, 'type': 'uint16', 'access': 'rw'},
- {'name': 'enabled', 'id': 522, 'type': 'bool', 'access': 'rw'},
- {'name': 'offset', 'id': 523, 'type': 'float', 'access': 'rw'},
- {'name': 'is_active_high', 'id': 524, 'type': 'bool', 'access': 'rw'},
- {'name': 'pullup', 'id': 525, 'type': 'bool', 'access': 'rw'},
- {'name': 'debounce_ms', 'id': 526, 'type': 'uint32', 'access': 'rw'}]}]},
- {'name': 'watchdog_feed', 'id': 527, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'clear_errors', 'id': 528, 'type': 'function', 'inputs': [], 'outputs': []}]},
- {'name': 'can', 'type': 'object', 'members': [
- {'name': 'error', 'id': 529, 'type': 'int32', 'access': 'rw'},
- {'name': 'config', 'type': 'object', 'members': [
- {'name': 'baud_rate', 'id': 530, 'type': 'uint32', 'access': 'r'},
- {'name': 'protocol', 'id': 531, 'type': 'int32', 'access': 'rw'}]},
- {'name': 'set_baud_rate', 'id': 532, 'type': 'function', 'inputs': [
- {'name': 'baudRate', 'id': 533, 'type': 'uint32', 'access': 'rw'}], 'outputs': []}]},
- {'name': 'test_property', 'id': 534, 'type': 'uint32', 'access': 'rw'},
- {'name': 'test_function', 'id': 535, 'type': 'function', 'inputs': [
- {'name': 'delta', 'id': 536, 'type': 'int32', 'access': 'rw'}], 'outputs': [
- {'name': 'cnt', 'id': 537, 'type': 'int32', 'access': 'r'}]},
- {'name': 'get_oscilloscope_val', 'id': 538, 'type': 'function', 'inputs': [
- {'name': 'index', 'id': 539, 'type': 'uint32', 'access': 'rw'}], 'outputs': [
- {'name': 'val', 'id': 540, 'type': 'float', 'access': 'r'}]},
- {'name': 'get_adc_voltage', 'id': 541, 'type': 'function', 'inputs': [
- {'name': 'gpio', 'id': 542, 'type': 'uint32', 'access': 'rw'}], 'outputs': [
- {'name': 'voltage', 'id': 543, 'type': 'float', 'access': 'r'}]},
- {'name': 'save_configuration', 'id': 544, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'erase_configuration', 'id': 545, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'reboot', 'id': 546, 'type': 'function', 'inputs': [], 'outputs': []},
- {'name': 'enter_dfu_mode', 'id': 547, 'type': 'function', 'inputs': [], 'outputs': []}]
- malformed member : unsupported codec json
- Connected to ODrive. ODrive 35619129216333, hw v3.6-56, fw v0.5.1-dev, sdk v0.5.1
- <class 'int'>
- <class 'int'>
Advertisement
Add Comment
Please, Sign In to add comment