Закрытие логического канала связи
Последнее изменение:
Функция завершает логическое соединение с автомобилем на указанном устройстве pass-thru.
При успешном выполнении функция возвращает STATUS_NOERROR, и логический канал связи
переходит в отключённое состояние.
long PassThruLogicalDisconnect(unsigned long ChannelID)
После отключения логический канал имеет следующее состояние:
Входной параметр. Идентификатор логического канала связи, полученный при вызове
PassThruLogicalConnect().
| Код | Описание |
|---|---|
| STATUS_NOERROR | Функция выполнена успешно |
| ERR_CONCURRENT_API_CALL | Функция J2534 API вызвана до завершения предыдущего вызова |
| ERR_DEVICE_NOT_OPEN | PassThruOpen() не был успешно вызван |
| ERR_INVALID_CHANNEL_ID | Недопустимое значение ChannelID |
| ERR_DEVICE_NOT_CONNECTED | Ошибка связи с устройством pass-thru. Устройство было отключено. |
| ERR_NOT_SUPPORTED | DLL не поддерживает данную функцию |
| ERR_FAILED | Неопределённая ошибка. Используйте PassThruGetLastError() для получения описания. |
#include "j2534_dll.hpp"
unsigned long logicalChannelID = ...; // ID, полученный из PassThruLogicalConnect
// Закрываем логический канал
long ret = PassThruLogicalDisconnect(logicalChannelID);
if (ret == STATUS_NOERROR) {
printf("Логический канал закрыт\n");
} else {
char error[256];
PassThruGetLastError(error);
printf("Ошибка: %s\n", error);
}
from ctypes import *
j2534 = cdll.LoadLibrary("libj2534_v05_00.dylib")
logical_channel_id = c_ulong(...) # ID, полученный из PassThruLogicalConnect
# Закрываем логический канал
ret = j2534.PassThruLogicalDisconnect(logical_channel_id)
if ret == 0: # STATUS_NOERROR
print("Логический канал закрыт")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Ошибка: {error.value.decode()}")
PassThruLogicalConnect() - Создание логического каналаPassThruDisconnect() - Закрытие физического соединенияPassThruClose() - Закрытие устройства