Skip to content

Commit 6ba1c57

Browse files
committed
Create advisory_speed_receiver.py
Create the advisory_speed_receiver.py Module This module will be responsible for reading advisory speed data from the second USB port and publishing it to the OpenPilot messaging system.
1 parent f8e70e7 commit 6ba1c57

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import cereal.messaging as messaging
2+
import serial
3+
import time
4+
from cereal import custom # This will import the message from custom.capnp
5+
6+
def main():
7+
pm = messaging.PubMaster(['advisorySpeed'])
8+
9+
# Open the USB serial port where the tablet is sending advisory speed
10+
ser = serial.Serial('/dev/ttyGS0', baudrate=9600, timeout=1)
11+
12+
while True:
13+
try:
14+
# Read data from the serial port
15+
line = ser.readline().decode('utf-8').strip()
16+
if line:
17+
advisory_speed = float(line) # Convert string to float
18+
19+
# Create and send the message using custom.AdvisorySpeed
20+
dat = messaging.new_message('advisorySpeed')
21+
dat.advisorySpeed.speed = advisory_speed
22+
pm.send('advisorySpeed', dat)
23+
24+
time.sleep(0.1) # Adjust delay as needed
25+
except Exception as e:
26+
print(f"Error: {e}")
27+
time.sleep(1)
28+
29+
if __name__ == "__main__":
30+
main()

0 commit comments

Comments
 (0)