Bluetooth-соединение Python OBD2 не распознает протокол для 2000 Saab 93 - PullRequest
0 голосов
/ 20 октября 2019

Мне удалось успешно напрямую подключиться к адаптеру Bluetooth ELM327 OBD2 с помощью экрана. Я выполняю следующие команды и получаю:

atz
atl1
ath1
atsp0 <-- use protocol auto, available protocols: 1, 2, 3, 4, 5, 6, 7, 8, 9, A
0100 <-- mode 01, pid 00, supported pids
Response: 48 6B 11 41 00 BE 3F B8 10 CA

Теперь я не имею ни малейшего понятия, что означает вышеприведенное 48 6B 11 41 00 BE 3F B8 10 CA, но я думаю, что это означает, что протокол неверен? Я сделал вывод, что, когда я пытаюсь запустить свой скрипт OBD на Python, я получаю успешное соединение с БД, но не с автомобилем. Если я не укажу протокол и скажу Нет, я не получу соединение с OBD. Он говорит, что порт не существует. Вот мой код:


# OBD setup
obd.logger.setLevel(obd.logging.DEBUG)

# Connect to OBDII adapter
ports = obd.scan_serial()
print("Ports: ")
print(ports)

connection = obd.OBD(ports[0],None,4,False,30,True)
print("Connection status: ")
print(connection.status())

# Print supported commands
commands = connection.supported_commands
print("Supported commands: ")
for command in commands:
  print(command.name)

# Send a command
while True:
  command = input("Enter command (type 'quit' to exit): ")
  if (command == "quit"):
    break
  try:
    res = connection.query(obd.commands[command])
    print(res.value)
  except Exception as ex:
    print("Error: " + str(ex))

# Close the connection
connection.close()

Итоговый журнал:

Ports: 
['/dev/rfcomm0']
[obd.obd] ======================= python-OBD (v0.7.1) =======================
[obd.obd] Explicit port defined
[obd.elm327] Initializing ELM327: PORT=/dev/rfcomm0 BAUD=auto PROTOCOL=4
[obd.elm327] Response from baud 38400: b'?\r\r>'
[obd.elm327] Choosing baud 38400
[obd.elm327] write: b'ATZ\r'
[obd.elm327] wait: 1 seconds
[obd.elm327] read: b'\r\rELM327 v1.5\r\r>'
[obd.elm327] write: b'ATE0\r'
[obd.elm327] read: b'ATE0\rOK\r\r>'
[obd.elm327] write: b'ATH1\r'
[obd.elm327] read: b'OK\r\r>'
[obd.elm327] write: b'ATL0\r'
[obd.elm327] read: b'OK\r\r>'
[obd.elm327] write: b'AT RV\r'
[obd.elm327] read: b'14.0V\r\r>'
[obd.elm327] %s is not a valid protocol. Please use "1" through "A"
[obd.elm327] Adapter connected, but the ignition is off
[obd.obd] Cannot load commands: No connection to car
[obd.obd] ===================================================================
Connection status: 
OBD Connected
Supported commands: 
CLEAR_DTC
ELM_VERSION
MIDS_A
GET_CURRENT_DTC
GET_DTC
PIDS_A
ELM_VOLTAGE
Enter command (type 'quit' to exit): quit
[obd.obd] Closing connection
[obd.elm327] closing port
[obd.elm327] write: b'ATZ\r'

Есть идеи, что мне делать?

...