?? runusbcontrollertest.java
字號(hào):
/* * RunUSBControllerTest.java * * Created on 23. Juli 2003, 17:31 */import usb.core.*;import usb.windows.*;import java.io.IOException;import usb.test.ControllerUSBListener;/** * * @author mike */public class RunUSBControllerTest { private static final int OBSERVATION_TIME = 1 ; /** Creates a new instance of RunUSBControllerTest */ public RunUSBControllerTest() { } /** * @param args the command line arguments */ public static void main(String[] args) { System.out.println(">>> RunUSBControllerTest: Observation Time = "+ OBSERVATION_TIME +"s <<<"); try{ Host host = HostFactory.getHost(); if(host == null) throw new Exception("USB is not available!"); // add the ControllerUSBListener to the host host.addUSBListener(new ControllerUSBListener()); // printUSBStack(host.getBusses()) ; long start = System.currentTimeMillis (); long end = (OBSERVATION_TIME * 1000) + start; while(System.currentTimeMillis() <= end) continue; System.out.println(">>> USB Device Stack at the End: <<<"); printUSBStack(host.getBusses()) ; }catch (SecurityException e) { System.err.println ("USB permissions problem:"); System.err.println (e.getMessage ()); System.exit (1); }catch(USBException e){ System.err.println (e.getMessage ()); e.printStackTrace (); }catch(Exception e){ e.printStackTrace (); } } /** * prints all devices on this bus inclusive the root hub */ private static void printUSBStack(Bus[] busses) { try{ DeviceImpl dev; for(int k=0; k < busses.length ; k++){ System.out.println("\n\nBus[ " + ((USB)busses[k]).getBusNum() + " ] "); for(int i = 0; i < 5; i++){ dev = (DeviceImpl)busses[k].getDevice(i); System.out.print(" [ " + i + " ] : "); if(dev != null){ if(dev.getAddress() == 0) System.out.println(" [ROOT] numOfPort:" + dev.getNumPorts()+" Address:" + dev.getAddress()); else { if(dev.getNumPorts() > 0) System.out.println(" [EXTERNAL HUB] numOfPort:" + dev.getNumPorts()+" Address:" + dev.getAddress()); else System.out.println(" [USB DEVICE] on Port "+dev.getHubPortNum() + " Address : " + dev.getAddress()); System.out.println(" uniqueID : " + dev.getUniqueDeviceID()); System.out.println(" driverKeyName : " + dev.getDriverKeyName()); System.out.println(" friendlyDeviceName: " + dev.getFriendlyDeviceName()); if (dev instanceof Device) System.out.print(" Object Type : Device"); if (dev instanceof DeviceImpl) System.out.print(", DeviceImpl"); if (dev instanceof JUSB) System.out.println(", JUSB"); if (dev instanceof NonJUSB) System.out.println(", NonJUSB"); if(dev instanceof NonJUSB)printDeviceDescriptor(dev); System.out.println(); //printConfigurationDescriptor(dev); System.out.println(); //printInterfaceDescriptors(dev); System.out.println(); //printEndpointDescriptors(dev); System.out.println(); if(dev instanceof JUSB){ JUSB jdev = (JUSB)dev; //DeviceDescriptor dd = jdev.getDeviceDescriptor(); //String product = dd.getProduct(0); //for(byte bRequest = 0; bRequest < 15; bRequest++){ //byte bRequest = 0x06; try{ // Get Device Descriptor though a Setup Request according to USB spec. 9.4.3 // byte [] buf = jdev.readControl((byte)0x80,(byte)bRequest,(short) 0x0100,(short) 0x0000,(short) 0x0012); // jdev.printByteArray(buf, "Read Control: ServicePacket Get Device Descriptor: Byte (Hex):", 16, 18); byte buf []; buf = ControlMessage.getStandardDescriptor (jdev, Descriptor.TYPE_DEVICE, (byte) 0, 0, 18); Descriptor descriptorJUSB = new DeviceDescriptor (jdev, buf); printDeviceDescriptorJUSB(jdev); System.out.println(); /* int langid[]; langid = ControlMessage.getLanguages(jdev); for(int m = 0; m < langid.length; m++){ System.out.println("Language ID: " + langid[m] + " Hex: " + Integer.toHexString(langid[m])); } */ //buf = ControlMessage.getStatus(jdev, ControlMessage.RECIPIENT_DEVICE | ControlMessage.TYPE_STANDARD, 0, 0, 2); buf = ControlMessage.getStatus(jdev, ControlMessage.RECIPIENT_ENDPOINT | ControlMessage.TYPE_STANDARD, 0, 0, 2); System.out.println("Status : [1]: " +buf[1] + " [0]: " + buf[0]); //buf = ControlMessage.getStatus(jdev, ControlMessage.RECIPIENT_INTERFACE | ControlMessage.TYPE_STANDARD, 0, 0, 2); //printConfigurationDescriptor2(jdev.getConfiguration(0)); // printConfigurationDescriptor2(jdev.getConfiguration()); //buf = ControlMessage.getStandardDescriptor(jdev, Descriptor.TYPE_CONFIGURATION,(byte)0,0,0); //Configuration configJUSB = new Configuration (jdev, buf); //printConfigurationDescriptor2(configJUSB); printEndpointDescriptors(jdev); try{ buf = jdev.readIntr(0x81, 8); printBuffer(buf); buf = jdev.readIntr(0x82, 32); printBuffer(buf); buf = jdev.readIntr(0x81, 8); printBuffer(buf); }catch(USBException e){ System.out.println("readIntr ERROR !!!! " + e.getMessage()); } }catch(IOException e){ System.out.println(e.getMessage() + " ERROR !!!!!!!!!!!!!!!"); } //} } } } else System.out.println(" [NULL] "); } } }catch(Exception e){ e.printStackTrace (); } } public static void printSetupPacket(byte [] sp){
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -