Add Pico desktop simulator
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
sys.path.insert(0, str(ROOT / "pico-dashboard"))
|
||||
|
||||
from state.app_state import AppState
|
||||
from alarms.alarm_manager import AlarmManager
|
||||
from ui.dashboard_view_model import DashboardViewModel
|
||||
from ui.detail_view_models import (
|
||||
BatteryViewModel,
|
||||
TempsViewModel,
|
||||
PowerViewModel,
|
||||
SystemViewModel,
|
||||
)
|
||||
from ui.alarm_view_model import AlarmViewModel
|
||||
|
||||
|
||||
def main():
|
||||
state = AppState()
|
||||
|
||||
state.update_from_status({
|
||||
"timestamp": 12345,
|
||||
"battery": {
|
||||
"soc": 82,
|
||||
"voltage": 13.2,
|
||||
"current": -6.4,
|
||||
"remaining_ah": 82,
|
||||
"runtime_hours": 12.0,
|
||||
"temperature_f": 76,
|
||||
},
|
||||
"temps": {
|
||||
"fridge_zone_1": 34.5,
|
||||
"fridge_zone_2": 36.0,
|
||||
"rear_seat": 72.0,
|
||||
"outside": 88.0,
|
||||
},
|
||||
"sensor_health": {
|
||||
"fridge_zone_1": True,
|
||||
"fridge_zone_2": True,
|
||||
"rear_seat": True,
|
||||
"outside": True,
|
||||
},
|
||||
"relays": {
|
||||
"starlink": False,
|
||||
"fridge": True,
|
||||
},
|
||||
"network": {
|
||||
"uart_connected": True,
|
||||
"wifi_enabled": True,
|
||||
},
|
||||
})
|
||||
|
||||
alarms = AlarmManager().evaluate(state)
|
||||
|
||||
print("\n=== DASHBOARD ===")
|
||||
print(DashboardViewModel(state, alarms).as_dict())
|
||||
|
||||
print("\n=== BATTERY ===")
|
||||
print(BatteryViewModel(state).as_dict())
|
||||
|
||||
print("\n=== TEMPERATURES ===")
|
||||
for row in TempsViewModel(state).as_list():
|
||||
print(row)
|
||||
|
||||
print("\n=== POWER ===")
|
||||
print(PowerViewModel(state).as_dict())
|
||||
|
||||
print("\n=== SYSTEM ===")
|
||||
print(SystemViewModel(state).as_dict())
|
||||
|
||||
print("\n=== ALARMS ===")
|
||||
print(AlarmViewModel(alarms).as_list())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user