#!/usr/bin/env python3
import time
import cereal . messaging as messaging
from selfdrive . manager import start_managed_process , kill_managed_process
services = [ ' controlsState ' , ' thermal ' , ' radarState ' ] # the services needed to be spoofed to start ui offroad
procs = [ ' camerad ' , ' ui ' , ' modeld ' , ' calibrationd ' ]
[ start_managed_process ( p ) for p in procs ] # start needed processes
pm = messaging . PubMaster ( services )
dat_cs , dat_thermal , dat_radar = [ messaging . new_message ( s ) for s in services ]
dat_cs . controlsState . rearViewCam = False # ui checks for these two messages
dat_thermal . thermal . started = True
try :
while True :
pm . send ( ' controlsState ' , dat_cs )
pm . send ( ' thermal ' , dat_thermal )
pm . send ( ' radarState ' , dat_radar )
time . sleep ( 1 / 100 ) # continually send, rate doesn't matter for thermal
except KeyboardInterrupt :
[ kill_managed_process ( p ) for p in procs ]