Source code for spherov2.toy.rvr

from enum import IntEnum
from functools import lru_cache, partialmethod

from spherov2.commands.api_and_shell import ApiAndShell
from spherov2.commands.connection import Connection
from spherov2.commands.drive import Drive
from spherov2.commands.factory_test import FactoryTest
from spherov2.commands.firmware import Firmware
from spherov2.commands.io import IO
from spherov2.commands.power import Power
from spherov2.commands.sensor import Sensor
from spherov2.commands.system_info import SystemInfo
from spherov2.commands.system_mode import SystemMode
from spherov2.controls.v2 import DriveControl, LedControl, StreamingControl, Processors
from spherov2.toy import Toy, ToyV2
from spherov2.types import ToyType


[docs]class RVR(ToyV2): toy_type = ToyType('Sphero RVR', 'RV-', 'RV', .075) _require_target = True
[docs] class LEDs(IntEnum): RIGHT_HEADLIGHT_RED = 0 RIGHT_HEADLIGHT_GREEN = 1 RIGHT_HEADLIGHT_BLUE = 2 LEFT_HEADLIGHT_RED = 3 LEFT_HEADLIGHT_GREEN = 4 LEFT_HEADLIGHT_BLUE = 5 LEFT_STATUS_INDICATION_RED = 6 LEFT_STATUS_INDICATION_GREEN = 7 LEFT_STATUS_INDICATION_BLUE = 8 RIGHT_STATUS_INDICATION_RED = 9 RIGHT_STATUS_INDICATION_GREEN = 10 RIGHT_STATUS_INDICATION_BLUE = 11 BATTERY_DOOR_REAR_RED = 12 BATTERY_DOOR_REAR_GREEN = 13 BATTERY_DOOR_REAR_BLUE = 14 BATTERY_DOOR_FRONT_RED = 15 BATTERY_DOOR_FRONT_GREEN = 16 BATTERY_DOOR_FRONT_BLUE = 17 POWER_BUTTON_FRONT_RED = 18 POWER_BUTTON_FRONT_GREEN = 19 POWER_BUTTON_FRONT_BLUE = 20 POWER_BUTTON_REAR_RED = 21 POWER_BUTTON_REAR_GREEN = 22 POWER_BUTTON_REAR_BLUE = 23 LEFT_BRAKELIGHT_RED = 24 LEFT_BRAKELIGHT_GREEN = 25 LEFT_BRAKELIGHT_BLUE = 26 RIGHT_BRAKELIGHT_RED = 27 RIGHT_BRAKELIGHT_GREEN = 28 RIGHT_BRAKELIGHT_BLUE = 29 UNDERCARRIAGE_WHITE = 30
ping = ApiAndShell.ping get_api_protocol_version = ApiAndShell.get_api_protocol_version send_command_to_shell = ApiAndShell.send_command_to_shell add_send_string_to_console_listener = partialmethod(Toy._add_listener, ApiAndShell.send_string_to_console) remove_send_string_to_console_listener = partialmethod(Toy._remove_listener, ApiAndShell.send_string_to_console) get_supported_dids = ApiAndShell.get_supported_dids get_supported_cids = ApiAndShell.get_supported_cids get_main_app_version = SystemInfo.get_main_app_version get_bootloader_version = SystemInfo.get_bootloader_version get_board_revision = partialmethod(SystemInfo.get_board_revision, proc=Processors.PRIMARY) get_mac_address = partialmethod(SystemInfo.get_mac_address, proc=Processors.PRIMARY) get_stats_id = partialmethod(SystemInfo.get_stats_id, proc=Processors.PRIMARY) get_processor_name = SystemInfo.get_processor_name get_boot_reason = partialmethod(SystemInfo.get_boot_reason, proc=Processors.PRIMARY) get_last_error_info = partialmethod(SystemInfo.get_last_error_info, proc=Processors.PRIMARY) write_config_block = partialmethod(SystemInfo.write_config_block, proc=Processors.PRIMARY) get_config_block = partialmethod(SystemInfo.get_config_block, proc=Processors.PRIMARY) set_config_block = partialmethod(SystemInfo.set_config_block, proc=Processors.PRIMARY) erase_config_block = partialmethod(SystemInfo.erase_config_block, proc=Processors.PRIMARY) get_swd_locking_status = SystemInfo.get_swd_locking_status get_manufacturing_date = partialmethod(SystemInfo.get_manufacturing_date, proc=Processors.PRIMARY) get_sku = partialmethod(SystemInfo.get_sku, proc=Processors.PRIMARY) get_core_up_time_in_milliseconds = partialmethod(SystemInfo.get_core_up_time_in_milliseconds, proc=Processors.PRIMARY) get_event_log_status = SystemInfo.get_event_log_status get_event_log_data = SystemInfo.get_event_log_data clear_event_log = SystemInfo.clear_event_log enable_sos_message_notify = partialmethod(SystemInfo.enable_sos_message_notify, proc=Processors.PRIMARY) add_sos_message_notify_listener = partialmethod(Toy._add_listener, SystemInfo.sos_message_notify) remove_sos_message_notify_listener = partialmethod(Toy._remove_listener, SystemInfo.sos_message_notify) get_sos_message = partialmethod(SystemInfo.get_sos_message, proc=Processors.PRIMARY) clear_sos_message = partialmethod(SystemInfo.clear_sos_message, proc=Processors.PRIMARY) get_out_of_box_state = partialmethod(SystemMode.get_out_of_box_state, proc=Processors.PRIMARY) enable_out_of_box_state = partialmethod(SystemMode.enable_out_of_box_state, proc=Processors.PRIMARY) enter_deep_sleep = partialmethod(Power.enter_deep_sleep, proc=Processors.PRIMARY) sleep = partialmethod(Power.sleep, proc=Processors.PRIMARY) force_battery_refresh = partialmethod(Power.force_battery_refresh, proc=Processors.PRIMARY) wake = partialmethod(Power.wake, proc=Processors.PRIMARY) get_battery_percentage = partialmethod(Power.get_battery_percentage, proc=Processors.PRIMARY) get_battery_voltage_state = partialmethod(Power.get_battery_voltage_state, proc=Processors.PRIMARY) add_will_sleep_notify_listener = partialmethod(Toy._add_listener, Power.will_sleep_notify) remove_will_sleep_notify_listener = partialmethod(Toy._remove_listener, Power.will_sleep_notify) add_did_sleep_notify_listener = partialmethod(Toy._add_listener, Power.did_sleep_notify) remove_did_sleep_notify_listener = partialmethod(Toy._remove_listener, Power.did_sleep_notify) enable_battery_voltage_state_change_notify = partialmethod(Power.enable_battery_voltage_state_change_notify, proc=Processors.PRIMARY) add_battery_voltage_state_change_notify_listener = partialmethod(Toy._add_listener, Power.battery_voltage_state_change_notify) remove_battery_voltage_state_change_notify_listener = partialmethod(Toy._remove_listener, Power.battery_voltage_state_change_notify) get_battery_voltage_in_volts = partialmethod(Power.get_battery_voltage_in_volts, proc=Processors.PRIMARY) get_battery_voltage_state_thresholds = partialmethod(Power.get_battery_voltage_state_thresholds, proc=Processors.PRIMARY) get_current_sense_amplifier_current = partialmethod(Power.get_current_sense_amplifier_current, proc=Processors.PRIMARY) get_efuse_fault_status = partialmethod(Power.get_efuse_fault_status, proc=Processors.PRIMARY) add_efuse_fault_occurred_notify_listener = partialmethod(Toy._add_listener, Power.efuse_fault_occurred_notify) remove_efuse_fault_occurred_notify_listener = partialmethod(Toy._remove_listener, Power.efuse_fault_occurred_notify) enable_efuse = partialmethod(Power.enable_efuse, proc=Processors.PRIMARY) set_raw_motors = partialmethod(Drive.set_raw_motors, proc=Processors.SECONDARY) reset_yaw = partialmethod(Drive.reset_yaw, proc=Processors.SECONDARY) drive_with_heading = partialmethod(Drive.drive_with_heading, proc=Processors.SECONDARY) set_control_system_type = partialmethod(Drive.set_control_system_type, proc=Processors.SECONDARY) set_component_parameters = partialmethod(Drive.set_component_parameters, proc=Processors.SECONDARY) get_component_parameters = partialmethod(Drive.get_component_parameters, proc=Processors.SECONDARY) set_custom_control_system_timeout = partialmethod(Drive.set_custom_control_system_timeout, proc=Processors.SECONDARY) enable_motor_stall_notify = partialmethod(Drive.enable_motor_stall_notify, proc=Processors.SECONDARY) add_motor_stall_notify_listener = partialmethod(Toy._add_listener, Drive.motor_stall_notify) remove_motor_stall_notify_listener = partialmethod(Toy._remove_listener, Drive.motor_stall_notify) enable_motor_fault_notify = partialmethod(Drive.enable_motor_fault_notify, proc=Processors.SECONDARY) add_motor_fault_notify_listener = partialmethod(Toy._add_listener, Drive.motor_fault_notify) remove_motor_fault_notify_listener = partialmethod(Toy._remove_listener, Drive.motor_fault_notify) get_motor_fault_state = partialmethod(Drive.get_motor_fault_state, proc=Processors.SECONDARY) enable_gyro_max_notify = partialmethod(Sensor.enable_gyro_max_notify, proc=Processors.SECONDARY) add_gyro_max_notify_listener = partialmethod(Toy._add_listener, Sensor.gyro_max_notify) remove_gyro_max_notify_listener = partialmethod(Toy._remove_listener, Sensor.gyro_max_notify) reset_locator_x_and_y = partialmethod(Sensor.reset_locator_x_and_y, proc=Processors.SECONDARY) set_locator_flags = partialmethod(Sensor.set_locator_flags, proc=Processors.SECONDARY) get_bot_to_bot_infrared_readings = partialmethod(Sensor.get_bot_to_bot_infrared_readings, proc=Processors.SECONDARY) get_rgbc_sensor_values = partialmethod(Sensor.get_rgbc_sensor_values, proc=Processors.PRIMARY) magnetometer_calibrate_to_north = partialmethod(Sensor.magnetometer_calibrate_to_north, proc=Processors.SECONDARY) add_magnetometer_north_yaw_notify_listener = partialmethod(Toy._add_listener, Sensor.magnetometer_north_yaw_notify) remove_magnetometer_north_yaw_notify_listener = partialmethod(Toy._remove_listener, Sensor.magnetometer_north_yaw_notify) start_robot_to_robot_infrared_broadcasting = partialmethod(Sensor.start_robot_to_robot_infrared_broadcasting, proc=Processors.SECONDARY) start_robot_to_robot_infrared_following = partialmethod(Sensor.start_robot_to_robot_infrared_following, proc=Processors.SECONDARY) stop_robot_to_robot_infrared_broadcasting = partialmethod(Sensor.stop_robot_to_robot_infrared_broadcasting, proc=Processors.SECONDARY) add_robot_to_robot_infrared_message_received_notify_listener = partialmethod( Toy._add_listener, Sensor.robot_to_robot_infrared_message_received_notify) remove_robot_to_robot_infrared_message_received_notify_listener = partialmethod( Toy._remove_listener, Sensor.robot_to_robot_infrared_message_received_notify) get_ambient_light_sensor_value = partialmethod(Sensor.get_ambient_light_sensor_value, proc=Processors.PRIMARY) stop_robot_to_robot_infrared_following = partialmethod(Sensor.stop_robot_to_robot_infrared_following, proc=Processors.SECONDARY) start_robot_to_robot_infrared_evading = partialmethod(Sensor.start_robot_to_robot_infrared_evading, proc=Processors.SECONDARY) stop_robot_to_robot_infrared_evading = partialmethod(Sensor.stop_robot_to_robot_infrared_evading, proc=Processors.SECONDARY) enable_color_detection_notify = partialmethod(Sensor.enable_color_detection_notify, proc=Processors.PRIMARY) add_color_detection_notify_listener = partialmethod(Toy._add_listener, Sensor.color_detection_notify) remove_color_detection_notify_listener = partialmethod(Toy._remove_listener, Sensor.color_detection_notify) get_current_detected_color_reading = partialmethod(Sensor.get_current_detected_color_reading, proc=Processors.PRIMARY) enable_color_detection = partialmethod(Sensor.enable_color_detection, proc=Processors.PRIMARY) configure_streaming_service = Sensor.configure_streaming_service start_streaming_service = Sensor.start_streaming_service stop_streaming_service = Sensor.stop_streaming_service clear_streaming_service = Sensor.clear_streaming_service add_streaming_service_data_notify_listener = partialmethod(Toy._add_listener, Sensor.streaming_service_data_notify) remove_streaming_service_data_notify_listener = partialmethod(Toy._remove_listener, Sensor.streaming_service_data_notify) enable_robot_infrared_message_notify = partialmethod(Sensor.enable_robot_infrared_message_notify, proc=Processors.SECONDARY) send_infrared_message = partialmethod(Sensor.send_infrared_message, proc=Processors.SECONDARY) add_motor_current_notify_listener = partialmethod(Toy._add_listener, Sensor.motor_current_notify) remove_motor_current_notify_listener = partialmethod(Toy._remove_listener, Sensor.motor_current_notify) enable_motor_current_notify = partialmethod(Sensor.enable_motor_current_notify, proc=Processors.SECONDARY) get_motor_temperature = partialmethod(Sensor.get_motor_temperature, proc=Processors.SECONDARY) configure_sensitivity_based_collision_detection = partialmethod( Sensor.configure_sensitivity_based_collision_detection, proc=Processors.SECONDARY) enable_sensitivity_based_collision_detection_notify = partialmethod( Sensor.enable_sensitivity_based_collision_detection_notify, proc=Processors.SECONDARY) add_sensitivity_based_collision_detected_notify_listener = partialmethod( Toy._add_listener, Sensor.sensitivity_based_collision_detected_notify) remove_sensitivity_based_collision_detected_notify_listener = partialmethod( Toy._remove_listener, Sensor.sensitivity_based_collision_detected_notify) get_motor_thermal_protection_status = partialmethod(Sensor.get_motor_thermal_protection_status, proc=Processors.SECONDARY) enable_motor_thermal_protection_status_notify = partialmethod(Sensor.enable_motor_thermal_protection_status_notify, proc=Processors.SECONDARY) add_motor_thermal_protection_status_notify_listener = partialmethod(Toy._add_listener, Sensor.motor_thermal_protection_status_notify) remove_motor_thermal_protection_status_notify_listener = partialmethod( Toy._remove_listener, Sensor.motor_thermal_protection_status_notify) set_bluetooth_name = partialmethod(Connection.set_bluetooth_name, proc=Processors.PRIMARY) get_bluetooth_name = partialmethod(Connection.get_bluetooth_name, proc=Processors.PRIMARY) get_bluetooth_advertising_name = partialmethod(Connection.get_bluetooth_advertising_name, proc=Processors.PRIMARY) set_all_leds_with_32_bit_mask = partialmethod(IO.set_all_leds_with_32_bit_mask, proc=Processors.PRIMARY) set_compressed_frame_player_one_color = partialmethod(IO.set_compressed_frame_player_one_color, proc=Processors.PRIMARY) save_compressed_frame_player_animation = partialmethod(IO.save_compressed_frame_player_animation, proc=Processors.PRIMARY) play_compressed_frame_player_animation = partialmethod(IO.play_compressed_frame_player_animation, proc=Processors.PRIMARY) play_compressed_frame_player_frame = partialmethod(IO.play_compressed_frame_player_frame, proc=Processors.PRIMARY) get_compressed_frame_player_list_of_frames = partialmethod(IO.get_compressed_frame_player_list_of_frames, proc=Processors.PRIMARY) delete_all_compressed_frame_player_animations_and_frames = partialmethod( IO.delete_all_compressed_frame_player_animations_and_frames, proc=Processors.PRIMARY) pause_compressed_frame_player_animation = partialmethod(IO.pause_compressed_frame_player_animation, proc=Processors.PRIMARY) resume_compressed_frame_player_animation = partialmethod(IO.resume_compressed_frame_player_animation, proc=Processors.PRIMARY) reset_compressed_frame_player_animation = partialmethod(IO.reset_compressed_frame_player_animation, proc=Processors.PRIMARY) add_compressed_frame_player_animation_complete_notify_listener = partialmethod( Toy._add_listener, IO.compressed_frame_player_animation_complete_notify) remove_compressed_frame_player_animation_complete_notify_listener = partialmethod( Toy._remove_listener, IO.compressed_frame_player_animation_complete_notify) assign_compressed_frame_player_frames_to_animation = partialmethod( IO.assign_compressed_frame_player_frames_to_animation, proc=Processors.PRIMARY) save_compressed_frame_player_animation_without_frames = partialmethod( IO.save_compressed_frame_player_animation_without_frames, proc=Processors.PRIMARY) play_compressed_frame_player_animation_with_loop_option = partialmethod( IO.play_compressed_frame_player_animation_with_loop_option, proc=Processors.PRIMARY) get_active_color_palette = partialmethod(IO.get_active_color_palette, proc=Processors.PRIMARY) set_active_color_palette = partialmethod(IO.set_active_color_palette, proc=Processors.PRIMARY) get_color_identification_report = partialmethod(IO.get_color_identification_report, proc=Processors.PRIMARY) load_color_palette = partialmethod(IO.load_color_palette, proc=Processors.PRIMARY) save_color_palette = partialmethod(IO.save_color_palette, proc=Processors.PRIMARY) get_compressed_frame_player_frame_info_type = partialmethod(IO.get_compressed_frame_player_frame_info_type, proc=Processors.PRIMARY) save_compressed_frame_player16_bit_frame = partialmethod(IO.save_compressed_frame_player16_bit_frame, proc=Processors.PRIMARY) release_led_requests = partialmethod(IO.release_led_requests, proc=Processors.PRIMARY) get_current_application_id = Firmware.get_current_application_id get_all_updatable_processors = partialmethod(Firmware.get_all_updatable_processors, proc=Processors.PRIMARY) get_version_for_updatable_processors = partialmethod(Firmware.get_version_for_updatable_processors, proc=Processors.PRIMARY) set_pending_update_for_processors = partialmethod(Firmware.set_pending_update_for_processors, proc=Processors.PRIMARY) get_pending_update_for_processors = partialmethod(Firmware.get_pending_update_for_processors, proc=Processors.PRIMARY) reset_with_parameters = partialmethod(Firmware.reset_with_parameters, proc=Processors.PRIMARY) clear_pending_update_processors = partialmethod(Firmware.clear_pending_update_processors, proc=Processors.PRIMARY) get_factory_mode_challenge = FactoryTest.get_factory_mode_challenge enter_factory_mode = FactoryTest.enter_factory_mode exit_factory_mode = FactoryTest.exit_factory_mode get_chassis_id = FactoryTest.get_chassis_id enable_extended_life_test = partialmethod(FactoryTest.enable_extended_life_test, proc=Processors.PRIMARY) get_factory_mode_status = FactoryTest.get_factory_mode_status @property @lru_cache(None) def drive_control(self): return DriveControl(self) @property @lru_cache(None) def multi_led_control(self): return LedControl(self) @property @lru_cache(None) def sensor_control(self): return StreamingControl(self)