|
|
@ -8,6 +8,7 @@ from openpilot.system.hardware import TICI |
|
|
|
from openpilot.system.ui.lib.application import gui_app |
|
|
|
from openpilot.system.ui.lib.application import gui_app |
|
|
|
from openpilot.system.ui.lib.egl import init_egl, create_egl_image, destroy_egl_image, bind_egl_image_to_texture, EGLImage |
|
|
|
from openpilot.system.ui.lib.egl import init_egl, create_egl_image, destroy_egl_image, bind_egl_image_to_texture, EGLImage |
|
|
|
from openpilot.system.ui.widgets import Widget |
|
|
|
from openpilot.system.ui.widgets import Widget |
|
|
|
|
|
|
|
from openpilot.selfdrive.ui.ui_state import ui_state |
|
|
|
|
|
|
|
|
|
|
|
CONNECTION_RETRY_INTERVAL = 0.2 # seconds between connection attempts |
|
|
|
CONNECTION_RETRY_INTERVAL = 0.2 # seconds between connection attempts |
|
|
|
|
|
|
|
|
|
|
@ -103,6 +104,18 @@ class CameraView(Widget): |
|
|
|
self.egl_texture = rl.load_texture_from_image(temp_image) |
|
|
|
self.egl_texture = rl.load_texture_from_image(temp_image) |
|
|
|
rl.unload_image(temp_image) |
|
|
|
rl.unload_image(temp_image) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ui_state.add_offroad_transition_callback(self._offroad_transition) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _offroad_transition(self): |
|
|
|
|
|
|
|
if ui_state.is_onroad(): |
|
|
|
|
|
|
|
# Prevent old frames from showing when going onroad. Qt has a separate thread |
|
|
|
|
|
|
|
# which drains the VisionIpcClient SubSocket for us. Re-connecting is not enough |
|
|
|
|
|
|
|
# and only clears internal buffers, not the message queue. |
|
|
|
|
|
|
|
self.frame = None |
|
|
|
|
|
|
|
if self.client: |
|
|
|
|
|
|
|
del self.client |
|
|
|
|
|
|
|
self.client = VisionIpcClient(self._name, self._stream_type, conflate=True) |
|
|
|
|
|
|
|
|
|
|
|
def _set_placeholder_color(self, color: rl.Color): |
|
|
|
def _set_placeholder_color(self, color: rl.Color): |
|
|
|
"""Set a placeholder color to be drawn when no frame is available.""" |
|
|
|
"""Set a placeholder color to be drawn when no frame is available.""" |
|
|
|
self._placeholder_color = color |
|
|
|
self._placeholder_color = color |
|
|
|