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