Quantex GmbH
Ваш регион: Европа

PassThruLogicalDisconnect v5.0

Закрытие логического канала связи

Последнее изменение:

Описание

Функция завершает логическое соединение с автомобилем на указанном устройстве pass-thru.

При успешном выполнении функция возвращает STATUS_NOERROR, и логический канал связи переходит в отключённое состояние.

long PassThruLogicalDisconnect(unsigned long ChannelID)

Отключённое состояние канала

После отключения логический канал имеет следующее состояние:

Параметры

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() для получения описания.

Примеры

Пример на C/C++

#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);
}

Пример на Python (ctypes)

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()}")

Связанные функции