Package org.jnode.driver.bus.usb

Examples of org.jnode.driver.bus.usb.USBPacket


     * @throws USBException
     */
    public void getMaxLun(USBDevice usbDev) throws USBException {
        log.info("*** Get max lun ***");
        final USBControlPipe pipe = usbDev.getDefaultControlPipe();
        final USBPacket packet = new USBPacket(1);
        final USBRequest req = pipe.createRequest(new SetupPacket(USB_DIR_IN
            | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 0xFE, 0, 0, 1), packet);
        pipe.syncSubmit(req, GET_TIMEOUT);
        log.debug("*** Request data     : " + req.toString());
        log.debug("*** Request status   : 0x" + NumberUtils.hex(req.getStatus(), 4));
        if (req.getStatus() == USBREQ_ST_COMPLETED) {
            storageDeviceData.setMaxLun(packet.getData()[0]);
        } else if (req.getStatus() == USBREQ_ST_STALLED) {
            storageDeviceData.setMaxLun((byte) 0);
        } else {
            throw new USBException("Request status   : 0x" + NumberUtils.hex(req.getStatus(), 4));
        }
View Full Code Here


        intPipe = (USBDataPipe) UsbBtDevice.getIntrInEndpoint().getPipe();
        intPipe.addListener(this);
        try {
            intPipe.open();
            intData =
                    new USBPacket(UsbBtDevice.getIntrInEndpoint().getDescriptor()
                            .getMaxPacketSize());
            final USBRequest req = intPipe.createRequest(intData);
            intPipe.asyncSubmit(req);
        } catch (USBException e1) {
            log.debug("*** USB exception occurs.");
View Full Code Here

            //
            log.debug("Interval " + ep.getDescriptor().getInterval());

            // Create the interrupt request
            old = new byte[8];
            intData = new USBPacket(ep.getDescriptor().getMaxPacketSize());
            intPipe = (USBDataPipe) ep.getPipe();
            intPipe.addListener(this);
            intPipe.open();
            final USBRequest req = intPipe.createRequest(intData);
            intPipe.asyncSubmit(req);
View Full Code Here

            // Create the interrupt request
            intPipe = (USBDataPipe) ep.getPipe();
            intPipe.addListener(this);
            intPipe.open();
            intData = new USBPacket(ep.getDescriptor().getMaxPacketSize());
            final USBRequest req = intPipe.createRequest(intData);
            intPipe.asyncSubmit(req);

            // Register the PointerAPI
            dev.registerAPI(PointerAPI.class, apiAdapter);
View Full Code Here

        // The setup TD
        setupTD = pipe.createTD(USB_PID_SETUP, true, setupPacket.getData(), 0, setupPacket.getSize(), false);
        //log.debug("setupTD: " + setupTD + ", ls=" + ls);

        // Add the data TD's
        final USBPacket dataPacket = getDataPacket();
        final int transferLength = setupPacket.getLength();
        int length = transferLength;
        int offset = 0;
        final int dataPid = (setupPacket.isDirIn() ? USB_PID_IN : USB_PID_OUT);
        boolean dataToggle = false; // Start with DATA1
        final int maxPacketSize = pipe.getMaxPacketSize();
        if (maxPacketSize <= 0) {
            throw new USBException("Invalid maximum packet size " + maxPacketSize);
        }
        while (length > 0) {

            // Create the TD for this part of the data packet
            final TransferDescriptor dataTD;
            final int curlen = Math.min(length, maxPacketSize);
            dataTD = pipe.createTD(dataPid, dataToggle, dataPacket.getData(), offset, curlen, false);
            // Add the TD to the list
            setupTD.append(dataTD, false);

            // Update fields
            dataToggle = !dataToggle;
View Full Code Here

    public UHCIDataRequest(USBPacket dataPacket) {
        super(dataPacket);
    }

    public void createTDs(UHCIPipe pipe) {
        final USBPacket dataPacket = getDataPacket();
        int offset = 0;
        int length = dataPacket.getSize();
        final USBEndPoint ep = pipe.getEndPoint();
        final int dataPid = (ep.getDescriptor().isDirIn() ? USB_PID_IN : USB_PID_OUT);
        final int maxPacketSize = pipe.getMaxPacketSize();
        TransferDescriptor firstTD = null;

        while (length > 0) {

            // Create the TD for this part of the data packet
            final int curlen = Math.min(length, maxPacketSize);
            final TransferDescriptor dataTD;
            final boolean ioc = (curlen == length);
            dataTD = pipe.createTD(dataPid, ep.getDataToggle(), dataPacket.getData(), offset, curlen, ioc);
            // Add the TD to the list
            if (firstTD == null) {
                firstTD = dataTD;
            } else {
                firstTD.append(dataTD, false);
View Full Code Here

TOP

Related Classes of org.jnode.driver.bus.usb.USBPacket

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.