feathersdk.robot.battery_system Module¶
- class feathersdk.robot.battery_system.BatteryState(monitor_start_time: float, last_estop_pressed_time: float, last_estop_released_time: float, last_reliable_seen_voltage: float, state_update_time: float)¶
Bases:
object- last_estop_pressed_time: float¶
- last_estop_released_time: float¶
- last_reliable_seen_voltage: float¶
- monitor_start_time: float¶
- state_update_time: float¶
- class feathersdk.robot.battery_system.BatterySystem(config: dict = {})¶
Bases:
SteppableSystemBase class for battery monitoring and power event management.
- add_power_event_listener(listener)¶
Add a power event listener.
- Parameters:
listener (PowerEventListener) – Listener to receive power event notifications
- get_estimated_battery_percentage()¶
Get estimated battery percentage based on the last reliable seen voltage.
- is_estop_pressed()¶
Check if emergency stop is pressed based on battery voltage.
- Returns:
True if battery voltage is below ESTOP threshold, False otherwise
- Return type:
bool
- last_powered_up_time()¶
Get the last time the system was powered up.
Returns the maximum of current boot time and last estop release time.
- Returns:
Timestamp of last power-up event
- Return type:
float
- notify_power_event_listeners(event: PowerEvent)¶
Notify all registered listeners of a power event.
- Parameters:
event (PowerEvent) – The power event to notify listeners about
- remove_power_event_listener(listener)¶
Remove a power event listener.
- Parameters:
listener (PowerEventListener) – Listener to remove
- class feathersdk.robot.battery_system.PowerEvent(*values)¶
Bases:
EnumPower system events.
- POWER_OFF = 1¶
- POWER_RESTORED = 2¶
- POWER_UNHEALTHY = 3¶
- class feathersdk.robot.battery_system.PowerEventListener¶
Bases:
ABCAbstract base class for power event listeners.
- abstractmethod on_power_event(event: PowerEvent)¶
Handle power event notification.
- Parameters:
event (PowerEvent) – The power event that occurred
- class feathersdk.robot.battery_system.PowerMonitor¶
Bases:
objectClass used by feather deamon to monitor battery voltage
- set_new_state(new_voltage: float)¶
- step()¶
- feathersdk.robot.battery_system.get_battery_voltage(read_method: str)¶
Shouldn’t call from feathersdk. Only used by battery daemon.
- feathersdk.robot.battery_system.i2c_read(bus, addr, reg, length)¶
Read data from I2C device register.
- Parameters:
bus – SMBus instance
addr – I2C device address
reg – Register address to read from
length – Number of bytes to read
- Returns:
List of bytes read from the register
- Return type:
list
- feathersdk.robot.battery_system.i2c_write(bus, addr, data)¶
Write data to I2C device.
- Parameters:
bus – SMBus instance
addr – I2C device address
data – Data bytes to write
- feathersdk.robot.battery_system.read_last_battery_state() BatteryState¶