-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
34 lines (22 loc) · 744 Bytes
/
main.py
File metadata and controls
34 lines (22 loc) · 744 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import struct
import evloop
import controlgw
import carcontrol
import pubsub
class CarStatePublisher(object):
def __init__(self, car, pubsub_server):
self.car = car
self.pubsub_server = pubsub_server
self.car.add_response_handler(2, self.publish_state)
self.request_state()
def publish_state(self, msg):
self.pubsub_server.publish('carState:'+msg)
def request_state(self):
self.car.send_msg(''+chr(3))
evloop.EventDispatcher().add_timer(1, self.request_state)
if __name__=='__main__':
controller = carcontrol.CarControl('/dev/ttyACM0')
cg = controlgw.ControlGw('', 8080, controller)
ps = pubsub.PubSubServer('', 8081)
state_publisher = CarStatePublisher(controller, ps)
evloop.EventDispatcher().loop_forever()