IR Fernbedienung unter Java

GhostfaceChilla

Bekanntes Mitglied
Hallo Leute 🙂
Ich habe mir eine Fernbedienung für den PC angeschafft, nun habe ich endlich eine Bibliothek für den Zugriff auf mein Usb-Gerät gefunden("javax.usb"). Das Problem ist nur, drücke ich die oberen Tasten meiner Fernbedienung (Video-,Picture,Radio-,Close-,DVD-Taste) dann lieferet mir mein Programm ein byte[] array mit Werten. Drücke ich aber die unteren Tasten(Mouse-,Linksklick-;´,Rechtsklick-,Stop-etc. Taste) dann bekomme ich immer nur ein byte[] array mit folgendem Inhalt ("0000 0000"). An was kannd as liegen?Programmiertechnisch kann es ja nicht sein, da ich ja bei anderen Tasten die Werte geliefert bekomm....
Mein Code:
Java:
UsbServices usbServ = UsbHostManager.getUsbServices();
        UsbHub hub = usbServ.getRootUsbHub();
        List<UsbPort> ports = hub.getUsbPorts();
        for(UsbPort p : ports){
            System.out.println(p);
        }
        List<UsbDevice> list = hub.getAttachedUsbDevices();
        UsbDevice device = null;
        for(UsbDevice dev : list){
            if(dev.getUsbDeviceDescriptor().idVendor() == (short)0x0755 &&
                    dev.getUsbDeviceDescriptor().idProduct() == (short)0x2026){
                device = dev;
                System.out.println("Found the port!!");
            }else{
               // System.out.println("Not the port!");
            }
        }
        UsbConfiguration config = device.getActiveUsbConfiguration();
        UsbInterface inter = config.getUsbInterface((byte)0);
        inter.claim();
        //List<UsbEndpoint> li = inter.getUsbEndpoints();
        //System.out.println(li.get(0).getUsbEndpointDescriptor().bEndpointAddress());
        UsbEndpoint end = inter.getUsbEndpoint((byte)0x81);
        UsbPipe pipe = end.getUsbPipe();
        pipe.open();
        if(pipe.isOpen()){
            System.out.println("Pipe opened!");
            pipe.addUsbPipeListener(new UsbPipeListener() {

                @Override
                public void errorEventOccurred(UsbPipeErrorEvent upee) {
                    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                }

                @Override
                public void dataEventOccurred(UsbPipeDataEvent upde) {
                    System.out.println("Data transfer...");
                    byte[] rec = upde.getData();
                    for(byte b: rec){
                        System.out.print(b);
                    }
                }
            });
            byte[] buffer = new byte[8];
            int recived = pipe.syncSubmit(buffer);
            
        }else{
            System.out.println("Pipe closed!");
        }
        pipe.close();

Meine Fernbedienung:
http://www.amazon.de/Daffodil-PCR40...d=1399119592&sr=8-2&keywords=Pc+Fernbedienung

Vielen Dank für eure Antworten 🙂

-GhostfaceChilla-
 

Neue Themen


Zurück
Oben