Skip to content

Commit e7c6a13

Browse files
authored
SOBD is not Exported (#451)
* Bug fixed. (#450) * Added connection notification. (#450) * Using SOBD. (#450)
1 parent 0dadccf commit e7c6a13

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

leads_comm_serial/sobd/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from leads_comm_serial.sobd import *
1+
from leads_comm_serial.sobd.sobd import *

leads_comm_serial/sobd/sobd.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from serial import Serial as _Serial
44

55
from leads import require_config as _require_config, Device as _Device, L as _L
6-
from leads.comm import Entity as _Entity, Callback as _Callback, Service as _Service
6+
from leads.comm import Entity as _Entity, Callback as _Callback, Service as _Service, ConnectionBase as _ConnectionBase
77
from leads_comm_serial.connection import SerialConnection
88
from leads_comm_serial.identity import AutoIdentity
99

@@ -72,6 +72,11 @@ def __init__(self, sobd: SOBD) -> None:
7272
super().__init__()
7373
self._sobd: SOBD = sobd
7474

75+
@_override
76+
def on_connect(self, service: _Service, connection: _ConnectionBase) -> None:
77+
_L.debug(f"SOBD connected on {self._sobd.port()}")
78+
79+
7580
@_override
7681
def on_receive(self, service: _Service, msg: bytes) -> None:
7782
self.super(service=service, msg=msg)

leads_vec/devices.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@
66
FRONT_VIEW_CAMERA, LEFT_VIEW_CAMERA, RIGHT_VIEW_CAMERA, REAR_VIEW_CAMERA, VisualDataContainer, BRAKE_INDICATOR, \
77
SFT, read_device_marker, has_controller, POWER_CONTROLLER, WHEEL_SPEED_CONTROLLER, ACCELEROMETER
88
from leads_arduino import ArduinoMicro, WheelSpeedSensor, VoltageSensor, Accelerometer, Acceleration
9+
from leads_comm_serial import SOBD
910
from leads_gpio import NMEAGPSReceiver, LEDGroup, LED, LEDGroupCommand, LEDCommand, Entire, Transition
1011
from leads_vec.config import Config
1112
from leads_video import Base64Camera, get_camera
1213

1314
config: Config = require_config()
1415
GPS_ONLY: int = config.get("gps_only", False)
1516
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", "")
1619
POWER_CONTROLLER_PORT: str = config.get("power_controller_port", "auto")
1720
WHEEL_SPEED_CONTROLLER_PORT: str = config.get("wheel_speed_controller_port", "auto")
1821
GPS_RECEIVER_PORT: str = config.get("gps_receiver_port", "auto")
@@ -80,6 +83,14 @@ def read(self) -> DataContainer:
8083
return DataContainer(**wsc, **general) if len(visual) < 1 else VisualDataContainer(**visual, **wsc, **general)
8184

8285

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+
8394
@controller(POWER_CONTROLLER, MAIN_CONTROLLER, (POWER_CONTROLLER_PORT, BAUD_RATE))
8495
class PowerController(ArduinoMicro):
8596
@override

0 commit comments

Comments
 (0)