|
|
@ -2,6 +2,7 @@ |
|
|
|
import os |
|
|
|
import os |
|
|
|
import json |
|
|
|
import json |
|
|
|
import queue |
|
|
|
import queue |
|
|
|
|
|
|
|
import struct |
|
|
|
import threading |
|
|
|
import threading |
|
|
|
import time |
|
|
|
import time |
|
|
|
from collections import OrderedDict, namedtuple |
|
|
|
from collections import OrderedDict, namedtuple |
|
|
@ -59,6 +60,32 @@ def set_offroad_alert_if_changed(offroad_alert: str, show_alert: bool, extra_tex |
|
|
|
prev_offroad_states[offroad_alert] = (show_alert, extra_text) |
|
|
|
prev_offroad_states[offroad_alert] = (show_alert, extra_text) |
|
|
|
set_offroad_alert(offroad_alert, show_alert, extra_text) |
|
|
|
set_offroad_alert(offroad_alert, show_alert, extra_text) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def touch_thread(end_event): |
|
|
|
|
|
|
|
pm = messaging.PubMaster(["touch"]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event_format = "llHHi" |
|
|
|
|
|
|
|
event_size = struct.calcsize(event_format) |
|
|
|
|
|
|
|
event_frame = [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with open("/dev/input/by-path/platform-894000.i2c-event", "rb") as event_file: |
|
|
|
|
|
|
|
while not end_event.is_set(): |
|
|
|
|
|
|
|
event = event_file.read(event_size) |
|
|
|
|
|
|
|
if event: |
|
|
|
|
|
|
|
(sec, usec, etype, code, value) = struct.unpack(event_format, event) |
|
|
|
|
|
|
|
if etype != 0 or code != 0 or value != 0: |
|
|
|
|
|
|
|
touch = log.Touch.new_message() |
|
|
|
|
|
|
|
touch.sec = sec |
|
|
|
|
|
|
|
touch.usec = usec |
|
|
|
|
|
|
|
touch.type = etype |
|
|
|
|
|
|
|
touch.code = code |
|
|
|
|
|
|
|
touch.value = value |
|
|
|
|
|
|
|
event_frame.append(touch) |
|
|
|
|
|
|
|
else: # end of frame, push new log |
|
|
|
|
|
|
|
msg = messaging.new_message('touch', len(event_frame), valid=True) |
|
|
|
|
|
|
|
msg.touch = event_frame |
|
|
|
|
|
|
|
pm.send('touch', msg) |
|
|
|
|
|
|
|
event_frame = [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def hw_state_thread(end_event, hw_queue): |
|
|
|
def hw_state_thread(end_event, hw_queue): |
|
|
|
"""Handles non critical hardware state, and sends over queue""" |
|
|
|
"""Handles non critical hardware state, and sends over queue""" |
|
|
@ -420,6 +447,9 @@ def main(): |
|
|
|
threading.Thread(target=hardware_thread, args=(end_event, hw_queue)), |
|
|
|
threading.Thread(target=hardware_thread, args=(end_event, hw_queue)), |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if TICI: |
|
|
|
|
|
|
|
threads.append(threading.Thread(target=touch_thread, args=(end_event,))) |
|
|
|
|
|
|
|
|
|
|
|
for t in threads: |
|
|
|
for t in threads: |
|
|
|
t.start() |
|
|
|
t.start() |
|
|
|
|
|
|
|
|
|
|
|