|
|
@ -1,6 +1,7 @@ |
|
|
|
#!/usr/bin/env python3 |
|
|
|
#!/usr/bin/env python3 |
|
|
|
import os |
|
|
|
import os |
|
|
|
import gc |
|
|
|
import gc |
|
|
|
|
|
|
|
import subprocess |
|
|
|
from cereal import car, log |
|
|
|
from cereal import car, log |
|
|
|
from common.numpy_fast import clip |
|
|
|
from common.numpy_fast import clip |
|
|
|
from common.realtime import sec_since_boot, set_realtime_priority, set_core_affinity, Ratekeeper, DT_CTRL |
|
|
|
from common.realtime import sec_since_boot, set_realtime_priority, set_core_affinity, Ratekeeper, DT_CTRL |
|
|
@ -142,6 +143,10 @@ class Controls: |
|
|
|
if hw_type == HwType.whitePanda: |
|
|
|
if hw_type == HwType.whitePanda: |
|
|
|
self.events.add(EventName.whitePandaUnsupported, static=True) |
|
|
|
self.events.add(EventName.whitePandaUnsupported, static=True) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uname = subprocess.check_output(["uname", "-v"], encoding='utf8').strip() |
|
|
|
|
|
|
|
if uname == "#1 SMP PREEMPT Wed Jun 10 12:40:53 PDT 2020": |
|
|
|
|
|
|
|
self.events.add(EventName.neosUpdateRequired, static=True) |
|
|
|
|
|
|
|
|
|
|
|
# controlsd is driven by can recv, expected at 100Hz |
|
|
|
# controlsd is driven by can recv, expected at 100Hz |
|
|
|
self.rk = Ratekeeper(100, print_delay_threshold=None) |
|
|
|
self.rk = Ratekeeper(100, print_delay_threshold=None) |
|
|
|
self.prof = Profiler(False) # off by default |
|
|
|
self.prof = Profiler(False) # off by default |
|
|
|