Как завершить работу с установленным последовательным мостовым портом в классе pvserialbridge ebus SDK.
Всем привет.
Во-первых, мой английский не очень хорош, но, пожалуйста, пардом.
Я хочу снова установить последовательный мост с помощью нового объекта PvDevice после остановки последовательного моста, установленного в классе PvSerialBridge пакета eBUS SDK один раз.
Однако, если я попытаюсь снова подключиться во второй раз, это произойдет "указанный порт уже используется".
(eBUS SDK версии 4.1.7)
Технологическая цепочка:
1. Создайте PvDevice.
PvDevice * pDevice;
pDevice = PvDevice::CreateAndConnect( aDeviceGUID, &lResult );
2. Создайте Последовательный Мост
PvDeviceAdapter lAdapter( pDevice );
PvSerialBridge мост;
PvResult lResult = мост.Start( "MyBridge", &lAdapter, PvDeviceSerialBulk0 );
3. Другие обработки
4. отсоедините соединение с устройством.
мост.Стоп();
устройство.PvDevice::Free( pDevice );
pDevice = NULL;
5. из другой функции снова выполняется обработка подключения к устройству.
PvDevice * pDevice;
pDevice = PvDevice::CreateAndConnect( aDeviceGUID, &lResult );
6. Создайте Мост
PvDeviceAdapter lAdapter( pDevice );
PvSerialBridge мост;
PvResult lResult = мост.Start( "MyBridge", &lAdapter, PvDeviceSerialBulk0 );
↑
В этот момент выполнение метода Start не позволяет установить мост.
Здесь PvDeviceSerialBulk 0-это перечисление, определенное в заголовочном файле "PvDeviceSerialPort"
Если PvDeviceSerialPort используется для открытия порта до установления моста, возникает аналогичная ошибка.
Кроме того, после открытия порта и установления моста после закрытия он работает нормально.
[Случаи неудач]
PvDeviceSerialPort ДС;
ds.Open(&lAdapter, PvDeviceSerialBulk0); // PortOpen
PvResult lResult = мост.Start( "MyBridge", &lAdapter, PvDeviceSerialBulk0 ); // Fail
[Успешный пример]
PvDeviceSerialPort ДС;
ds.Open(&lAdapter, PvDeviceSerialBulk0); // PortOpen
ДС.Рядом();
PvResult lResult = мост.Start( "MyBridge", &lAdapter, PvDeviceSerialBulk0 ); // успех
Исходя из вышесказанного, я думаю, что порт "PvDeviceSerialBulk 0" при установлении моста с мостом.Start() не закрывается,
В дополнение к методу Stop, PvSerialBridge не имеет такой функции, как Close, и нет никакого метода для получения PvDeviceSerialPort,
Я не могу восстановить связь.
Если у вас есть что предложить, я был бы спасен, если бы вы могли сказать мне.
Что я уже пробовал:
Я искал "PvSerialBridge", "PvDeviceSerialPort" и т. д. В Google.
Я прочитал пример кода C ++, включенный в пакет eBUS SDK.
Я проверил спецификации каждого класса в справке, прилагаемой к eBUS SDK.