Skip to content

Commit

Permalink
Rewrote GPS receiver for Raspberry Pi.
Browse files Browse the repository at this point in the history
  • Loading branch information
ATATC committed Mar 3, 2024
1 parent 101ea55 commit e42f2fd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
1 change: 1 addition & 0 deletions leads/dt/predefined_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@
BRAKE_PEDAL: str = "bpd"
DC_MOTOR_CONTROLLER_A: str = "dmca"
DC_MOTOR_CONTROLLER_B: str = "dmcb"
GPS_RECEIVER: str = "gps"
15 changes: 13 additions & 2 deletions leads_vec/controller.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
from leads import device, controller, MAIN_CONTROLLER, get_controller, WHEEL_SPEED_CONTROLLER, SRWDataContainer, \
DRWDataContainer, LEFT_FRONT_WHEEL_SPEED_SENSOR, RIGHT_FRONT_WHEEL_SPEED_SENSOR, Controller, \
CENTER_REAR_WHEEL_SPEED_SENSOR, LEFT_REAR_WHEEL_SPEED_SENSOR, RIGHT_REAR_WHEEL_SPEED_SENSOR, get_config, \
mark_system, POWER_CONTROLLER, ODOMETER, get_device
mark_system, POWER_CONTROLLER, ODOMETER, GPS_RECEIVER
from leads_arduino import ArduinoMicro, WheelSpeedSensor, ArduinoCallback, VoltageSensor, ConcurrentOdometer
from leads_gui import Config
from leads_raspberry_pi import GPSReceiver

config = get_config(Config)
BAUD_RATE: int = config.get("baud_rate", 9600)
POWER_CONTROLLER_PORT: str = config.get("power_controller_port", "COM4")
WHEEL_SPEED_CONTROLLER_PORT: str = config.get("wheel_speed_controller_port", "COM3")
GPS_RECEIVER_PORT: str = config.get("gps_receiver_port", "COM3")
FRONT_WHEEL_DIAMETER: float = config.get("front_wheel_diameter", 20) # 20 inches
REAR_WHEEL_DIAMETER: float = config.get("rear_wheel_diameter", 20) # 20 inches
THROTTLE_PEDAL_PIN: int = config.get("throttle_pedal_pin", 2)
Expand All @@ -22,7 +24,9 @@ def read(self) -> SRWDataContainer | DRWDataContainer:
r = get_controller(WHEEL_SPEED_CONTROLLER).read()
universal = {
"voltage": get_controller(POWER_CONTROLLER).read(),
"mileage": get_device(ODOMETER).read()
"mileage": self.device(ODOMETER).read(),
"latitude": (coords := self.device(GPS_RECEIVER).read())[0],
"longitude": coords[1]
}
return SRWDataContainer(**r, **universal) if config.srw_mode else DRWDataContainer(**r, **universal)

Expand Down Expand Up @@ -105,4 +109,11 @@ def initialize(self, *parent_tags: str) -> None:
# self._brake: bool = brake


@device(GPS_RECEIVER, MAIN_CONTROLLER, (GPS_RECEIVER_PORT,))
class GPS(GPSReceiver):
def initialize(self, *parent_tags: str) -> None:
mark_system(self, "GPS")
super().initialize(*parent_tags)


_ = None # null export

0 comments on commit e42f2fd

Please sign in to comment.