1+ from typing import override as _override
2+
13from leads import device , controller , MAIN_CONTROLLER , LEFT_FRONT_WHEEL_SPEED_SENSOR , RIGHT_FRONT_WHEEL_SPEED_SENSOR , \
24 Controller , CENTER_REAR_WHEEL_SPEED_SENSOR , require_config , mark_system , ODOMETER , GPS_RECEIVER , \
35 ConcurrentOdometer , LEFT_INDICATOR , RIGHT_INDICATOR , VOLTAGE_SENSOR , DataContainer
2022
2123@controller (MAIN_CONTROLLER )
2224class VeCController (Controller ):
25+ @_override
2326 def read (self ) -> DataContainer :
2427 universal = {
2528 "mileage" : self .device (ODOMETER ).read (),
@@ -34,30 +37,36 @@ def read(self) -> DataContainer:
3437
3538@controller ("pc" , MAIN_CONTROLLER , (POWER_CONTROLLER_PORT , BAUD_RATE ))
3639class PowerController (ArduinoMicro ):
40+ @_override
3741 def initialize (self , * parent_tags : str ) -> None :
3842 mark_system (self , "POWER" , "BATT" , "MOTOR" )
3943 super ().initialize (* parent_tags )
4044
45+ @_override
4146 def read (self ) -> dict [str , float ]:
4247 return {"voltage" : self .device (VOLTAGE_SENSOR ).read ()}
4348
49+ @_override
4450 def write (self , payload : float ) -> None :
4551 super ().write (str (payload ).encode ())
4652
4753
4854@device (VOLTAGE_SENSOR , "pc" )
4955class BatteryVoltageSensor (VoltageSensor ):
56+ @_override
5057 def initialize (self , * parent_tags : str ) -> None :
5158 mark_system (self , "POWER" , "BATT" )
5259 super ().initialize (* parent_tags )
5360
5461
5562@controller ("wsc" , MAIN_CONTROLLER , (WHEEL_SPEED_CONTROLLER_PORT , BAUD_RATE ))
5663class WheelSpeedController (ArduinoMicro ):
64+ @_override
5765 def initialize (self , * parent_tags : str ) -> None :
5866 mark_system (self , "WSC" , "ESC" )
5967 super ().initialize (* parent_tags )
6068
69+ @_override
6170 def read (self ) -> dict [str , float ]:
6271 lfws = self .device (LEFT_FRONT_WHEEL_SPEED_SENSOR ).read ()
6372 rfws = self .device (RIGHT_FRONT_WHEEL_SPEED_SENSOR ).read ()
@@ -68,6 +77,7 @@ def read(self) -> dict[str, float]:
6877
6978@device (ODOMETER , MAIN_CONTROLLER )
7079class AverageOdometer (ConcurrentOdometer ):
80+ @_override
7181 def read (self ) -> float :
7282 return super ().read () / 3
7383
@@ -76,13 +86,15 @@ def read(self) -> float:
7686 [(FRONT_WHEEL_DIAMETER , NUM_DIVISIONS , ODOMETER ), (FRONT_WHEEL_DIAMETER , NUM_DIVISIONS , ODOMETER ),
7787 (REAR_WHEEL_DIAMETER , NUM_DIVISIONS , ODOMETER )])))
7888class WheelSpeedSensors (WheelSpeedSensor ):
89+ @_override
7990 def initialize (self , * parent_tags : str ) -> None :
8091 mark_system (self , "WSC" , "ESC" )
8192 super ().initialize (* parent_tags )
8293
8394
8495@device (GPS_RECEIVER , MAIN_CONTROLLER , (GPS_RECEIVER_PORT ,))
8596class GPS (NMEAGPSReceiver ):
97+ @_override
8698 def initialize (self , * parent_tags : str ) -> None :
8799 mark_system (self , "GPS" )
88100 super ().initialize (* parent_tags )
@@ -92,6 +104,7 @@ def initialize(self, *parent_tags: str) -> None:
92104 (LED (5 , .5 , .5 ), LED (6 , .5 , .5 ), LED (26 , .5 , .5 )), (LED (17 , .5 , .5 ), LED (27 , .5 , .5 ), LED (22 , .5 , .5 ))
93105])
94106class DirectionIndicators (LEDGroup ):
107+ @_override
95108 def initialize (self , * parent_tags : str ) -> None :
96109 mark_system (self , "DI" )
97110 super ().initialize (* parent_tags )
0 commit comments