|
6 | 6 | FRONT_VIEW_CAMERA, LEFT_VIEW_CAMERA, RIGHT_VIEW_CAMERA, REAR_VIEW_CAMERA, VisualDataContainer, BRAKE_INDICATOR, \ |
7 | 7 | SFT, read_device_marker, has_controller, POWER_CONTROLLER, WHEEL_SPEED_CONTROLLER, ACCELEROMETER |
8 | 8 | from leads_arduino import ArduinoMicro, WheelSpeedSensor, VoltageSensor, Accelerometer, Acceleration |
| 9 | +from leads_comm_serial import SOBD |
9 | 10 | from leads_gpio import NMEAGPSReceiver, LEDGroup, LED, LEDGroupCommand, LEDCommand, Entire, Transition |
10 | 11 | from leads_vec.config import Config |
11 | 12 | from leads_video import Base64Camera, get_camera |
12 | 13 |
|
13 | 14 | config: Config = require_config() |
14 | 15 | GPS_ONLY: int = config.get("gps_only", False) |
15 | 16 | BAUD_RATE: int = config.get("baud_rate", 9600) |
| 17 | +SOBD_PORT: int = config.get("sobd_port", "auto") |
| 18 | +SOBD_PASSWORD: int = config.get("sobd_password", "") |
16 | 19 | POWER_CONTROLLER_PORT: str = config.get("power_controller_port", "auto") |
17 | 20 | WHEEL_SPEED_CONTROLLER_PORT: str = config.get("wheel_speed_controller_port", "auto") |
18 | 21 | GPS_RECEIVER_PORT: str = config.get("gps_receiver_port", "auto") |
@@ -80,6 +83,14 @@ def read(self) -> DataContainer: |
80 | 83 | return DataContainer(**wsc, **general) if len(visual) < 1 else VisualDataContainer(**visual, **wsc, **general) |
81 | 84 |
|
82 | 85 |
|
| 86 | +@device("obd", MAIN_CONTROLLER, (SOBD_PORT, BAUD_RATE, SOBD_PASSWORD)) |
| 87 | +class OBD(SOBD): |
| 88 | + @override |
| 89 | + def initialize(self, *parent_tags: str) -> None: |
| 90 | + mark_device(self, "OBD") |
| 91 | + super().initialize(*parent_tags) |
| 92 | + |
| 93 | + |
83 | 94 | @controller(POWER_CONTROLLER, MAIN_CONTROLLER, (POWER_CONTROLLER_PORT, BAUD_RATE)) |
84 | 95 | class PowerController(ArduinoMicro): |
85 | 96 | @override |
|
0 commit comments