Как определить, является ли Serial COM USB или Bluetooth при обработке? - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть устройство, которое может подключаться через USB и Bluetooth, но сообщение о готовности, которое отправляется на это устройство, меняется, если оно Bluetooth или USB.

Сообщение о готовности отправляется в виде байтового массива, где 2-й элементизменяется, где 0x01 для USB и 0x02 для Bluetooth.

Serial serial = Serial(s, Serial.list()[0], BAUD_RATE);
byte[] message = new byte[3];
byte[0] = 0x01;
byte[0] = 0x01; // 0x02 for bluetooth
byte[0] = 0x12;
serial.write(message);

Я хочу, чтобы мой код работал динамически в зависимости от того, что использует пользователь, поэтому, если usb не работает, то тестируется bluetooth,и если это не работает, выводится сообщение об ошибке.

Я оглядывался по сторонам, но не мог найти способ определить, является ли COM-порт Bluetooth или нет в Обрабатывающем.Есть ли надежный способ проверить это в обработке?

1 Ответ

0 голосов
/ 10 сентября 2018

Библиотека Processing Serial не предоставляет никакой функциональности для предоставления подробных сведений о самом устройстве. Если вы уже знаете идентификатор поставщика (VID) и идентификатор продукта (PID) этих устройств, в Windows вы можете попробовать что-то , например .

Лично я использовал Python PySerial's ListPortInfo для связанных задач. Если приведенный выше код представляет собой весь последовательный код, который вам нужно запустить, вы можете легко обойтись с помощью Python-сценария Python, который одновременно проверяет информацию о порте и записывает эти байты

Если вам действительно нужно использовать Processing, найдите библиотеку Java Serial или даже USB, которая может предоставить эту информацию, или вызовите Python из Processing через exec ()

...