derzeit arbeite ich an einem Projekt für die Universität, wo ich ein Programm erstellen muss, das die Feuchtigkeit in einem Terrarium steuert. Zu diesem Zweck habe ich ein Hygrometer.Lesen von Daten vom USB Port
Zuerst muss das Programm die Rohdaten vom Hygrometer importieren, aber ich habe keine Ahnung, wie es funktioniert. Die Dokumentation sagt, es gibt eine USB-Schnittstelle dafür, aber ich kann nur die Art finden, wie man die rohen Daten analysiert. Ich schrieb auch eine E-Mail an die Firma, die dieses Hygrometer verkauft. Sie sagten, dass es eine externe Software gibt, die mit diesen Daten importiert und handhabt. Ich darf jedoch keine externe Software verwenden. Deshalb bin ich gezwungen, die Rohdaten direkt vom USB Port zu lesen. Ich habe versucht, mit usb4java zu arbeiten, aber ich konnte nur alle angeschlossenen USB-Geräte finden. Ich habe keine Ahnung, wie es weitergeht. Bitte helfen Sie mir documentation documentation
-Code unten
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());
}
Sie müssen die Dokumentation des Sensors sehen. Es sollte eine Art Treiber- oder SDK-Beschreibung geben. Als du Kontakt hattest - hast du ihnen gesagt, dass es für den pädagogischen Gebrauch ist? Könnte einen Unterschied in der Lizenzpolitik machen. – Fildor
Ja, ich sagte ihm, es ist für den Bildungsbereich. Aber am Ende hat er mir die Dokumentation noch einmal geschickt. Ich werde einige Bilder von der Dokumentation hinzufügen, wenn ich zu Hause bin. – Xinren
Aus den Dokumenten scheint es so oft, sie tun RS232-Emulation. Sie müssen sich also mit einem virtuellen COM-Port verbinden. Dann können Sie die Daten wie auf den Seiten 23 und folgende beschrieben auslesen. – Fildor