В настоящее время я работаю над проектом для университета, где мне нужно создать программу, которая контролирует влажность в террариуме. С этой целью у меня есть гигрометр.Чтение данных с USB-порта
Прежде всего программа должна импортировать необработанные данные с гигрометра, но я понятия не имею, как это работает. В документации говорится, что для него есть интерфейс USB, но я могу найти способ анализа необработанных данных. Я также написал электронное письмо компании, которая продает этот гигрометр. Они сказали, что это внешнее программное обеспечение, которое импортирует и обрабатывает данные. Однако мне не разрешено использовать внешние программные средства. Поэтому я вынужден читать исходные данные непосредственно с USB-порта. Я попытался работать с usb4java, но я смог найти все подключенные USB-устройства. Я понятия не имею, как это сделать. Пожалуйста, помогите мне documentation documentation
Код ниже
public class DumpDevices
{
/**
* Dumps the specified USB device to stdout.
*
* @param device
* The USB device to dump.
*/
private static void dumpDevice(final UsbDevice device)
{
// Dump information about the device itself
System.out.println(device);
final UsbPort port = device.getParentUsbPort();
if (port != null)
{
System.out.println("Connected to port: " + port.getPortNumber());
System.out.println("Parent: " + port.getUsbHub());
}
// Dump device descriptor
System.out.println(device.getUsbDeviceDescriptor());
// Process all configurations
for (UsbConfiguration configuration: (List<UsbConfiguration>) device
.getUsbConfigurations())
{
// Dump configuration descriptor
System.out.println(configuration.getUsbConfigurationDescriptor());
// Process all interfaces
for (UsbInterface iface: (List<UsbInterface>) configuration
.getUsbInterfaces())
{
// Dump the interface descriptor
System.out.println(iface.getUsbInterfaceDescriptor());
// Process all endpoints
for (UsbEndpoint endpoint: (List<UsbEndpoint>) iface
.getUsbEndpoints())
{
// Dump the endpoint descriptor
System.out.println(endpoint.getUsbEndpointDescriptor());
}
}
}
System.out.println();
// Dump child devices if device is a hub
if (device.isUsbHub())
{
final UsbHub hub = (UsbHub) device;
for (UsbDevice child: (List<UsbDevice>) hub.getAttachedUsbDevices())
{
dumpDevice(child);
}
System.out.println(hub);
}
}
/**
* Main method.
*
* @param args
* Command-line arguments (Ignored)
* @throws UsbException
* When an USB error was reported which wasn't handled by this
* program itself.
*/
public static void main(final String[] args) throws UsbException
{
// Get the USB services and dump information about them
final UsbServices services = UsbHostManager.getUsbServices();
System.out.println("USB Service Implementation: "
+ services.getImpDescription());
System.out.println("Implementation version: "
+ services.getImpVersion());
System.out.println("Service API version: " + services.getApiVersion());
System.out.println();
// Dump the root USB hub
dumpDevice(services.getRootUsbHub());
}
Вам необходимо ознакомиться с документацией датчика. Должен быть какой-то драйвер или SDK-описание. Когда у вас был контакт - вы сказали им, что это для образовательного использования? Может иметь значение в политике лицензирования. – Fildor
Да, я сказал ему его для образовательного использования. Но, в конце концов, он снова отправил мне документацию. Я собираюсь добавить некоторые фотографии документации, когда я дома. – Xinren
Из документов это кажется так часто, они делают эмуляцию rs232. Поэтому вам нужно подключиться к виртуальному COM-порту. Затем вы можете считывать данные, как описано на стр. 23 и далее. – Fildor