-
Notifications
You must be signed in to change notification settings - Fork 0
/
obd_connector.py
35 lines (26 loc) · 1.01 KB
/
obd_connector.py
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
34
35
import obd
import time
from subprocess import call
import pexpect
import platform
def bind_rfcomm_port():
if platform.system() == 'Linux':
print("Attempting to bind hci0 device to 00:1D:A5:68:98:8B")
pexpect.run('sudo rfcomm bind hci0 00:1D:A5:68:98:8B')
print("Bind complete")
def connect(config):
bind_rfcomm_port()
connection_attempt = 1
while True:
if connection_attempt > config['connection_attempt_limit']:
return None
print("Connection attempt " + str(connection_attempt) + "...")
obd.logger.setLevel(obd.logging.DEBUG)
conn = obd.Async(config['communication_port'] or None)
obd.logger.setLevel(obd.logging.FATAL)
if conn.is_connected():
print("Connection made using protocol ", conn.protocol_name())
print("Supported commands: ", ', '.join([x.name for x in conn.supported_commands]))
return conn
time.sleep(1)
connection_attempt = connection_attempt + 1