Прекращение связи с адаптером
Последнее изменение:
Функция завершает связь с адаптером и освобождает все связанные ресурсы.
При вызове автоматически закрываются все открытые каналы (протоколы),
поэтому нет необходимости вызывать PassThruDisconnect() для каждого канала отдельно.
long PassThruClose(unsigned long DeviceID)
PassThruClose()
перед завершением программы. Если этого не сделать, при следующем вызове PassThruOpen()
будет возвращена ошибка ERR_DEVICE_IN_USE.
PassThruOpen().| Код | Описание | Возможные причины и решения |
|---|---|---|
| STATUS_NOERROR | Функция выполнена успешно | - |
| ERR_INVALID_DEVICE_ID | Неверный идентификатор устройства |
|
| ERR_DEVICE_NOT_CONNECTED | Соединение с адаптером потеряно |
|
| ERR_FAILED | Внутренняя ошибка |
|
#include "j2534_dll.hpp"
unsigned long DeviceID; // ID, полученный от PassThruOpen
// ... работа с устройством ...
// Закрываем соединение
long ret = PassThruClose(DeviceID);
if (ret != STATUS_NOERROR)
{
char error[256];
PassThruGetLastError(error);
printf("Ошибка закрытия: %s\n", error);
}
// deviceID получен ранее от ptOpen
val result = j2534.ptClose(deviceID)
if (result.status == STATUS_NOERROR) {
Log.i("J2534", "Соединение с адаптером закрыто")
} else {
Log.e("J2534", "Ошибка закрытия: ${result.status}")
}
from ctypes import *
# device_id получен ранее от PassThruOpen
ret = j2534.PassThruClose(device_id)
if ret == 0: # STATUS_NOERROR
print("Соединение закрыто")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Ошибка: {error.value.decode()}")
// deviceId получен ранее от PassThruOpen
int ret = J2534.PassThruClose(deviceId);
if (ret == 0) // STATUS_NOERROR
{
Console.WriteLine("Соединение закрыто");
}
else
{
var error = new System.Text.StringBuilder(256);
J2534.PassThruGetLastError(error);
Console.WriteLine($"Ошибка: {error}");
}