mirror of
				https://github.com/mik3y/usb-serial-for-android
				synced 2025-11-03 20:07:49 +00:00 
			
		
		
		
	Add setParameters() method and deprecate setBaudRate().
Interface is similar to javax.comm.
This commit is contained in:
		
							parent
							
								
									0424133e58
								
							
						
					
					
						commit
						3f271aab81
					
				@ -15,6 +15,9 @@ import java.util.Map;
 | 
				
			|||||||
 * USB CDC/ACM serial driver implementation.
 | 
					 * USB CDC/ACM serial driver implementation.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @author mike wakerly (opensource@hoho.com)
 | 
					 * @author mike wakerly (opensource@hoho.com)
 | 
				
			||||||
 | 
					 * @see <a
 | 
				
			||||||
 | 
					 *      href="http://www.usb.org/developers/devclass_docs/usbcdc11.pdf">Universal
 | 
				
			||||||
 | 
					 *      Serial Bus Class Definitions for Communication Devices, v1.1</a>
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class CdcAcmSerialDriver extends UsbSerialDriver {
 | 
					public class CdcAcmSerialDriver extends UsbSerialDriver {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -27,6 +30,22 @@ public class CdcAcmSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
    private UsbEndpoint mReadEndpoint;
 | 
					    private UsbEndpoint mReadEndpoint;
 | 
				
			||||||
    private UsbEndpoint mWriteEndpoint;
 | 
					    private UsbEndpoint mWriteEndpoint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private int mBaudRate;
 | 
				
			||||||
 | 
					    private int mDataBits;
 | 
				
			||||||
 | 
					    private int mStopBits;
 | 
				
			||||||
 | 
					    private int mParity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private boolean mRts = false;
 | 
				
			||||||
 | 
					    private boolean mDtr = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final int USB_RECIP_INTERFACE = 0x01;
 | 
				
			||||||
 | 
					    private static final int USB_RT_ACM = UsbConstants.USB_TYPE_CLASS | USB_RECIP_INTERFACE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final int SET_LINE_CODING = 0x20;  // USB CDC 1.1 section 6.2
 | 
				
			||||||
 | 
					    private static final int GET_LINE_CODING = 0x21;
 | 
				
			||||||
 | 
					    private static final int SET_CONTROL_LINE_STATE = 0x22;
 | 
				
			||||||
 | 
					    private static final int SEND_BREAK = 0x23;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public CdcAcmSerialDriver(UsbDevice device, UsbDeviceConnection connection) {
 | 
					    public CdcAcmSerialDriver(UsbDevice device, UsbDeviceConnection connection) {
 | 
				
			||||||
        super(device, connection);
 | 
					        super(device, connection);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -59,31 +78,17 @@ public class CdcAcmSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
        mWriteEndpoint = mDataInterface.getEndpoint(0);
 | 
					        mWriteEndpoint = mDataInterface.getEndpoint(0);
 | 
				
			||||||
        Log.d(TAG, "Write endpoint direction: " + mWriteEndpoint.getDirection());
 | 
					        Log.d(TAG, "Write endpoint direction: " + mWriteEndpoint.getDirection());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Log.d(TAG, "Setting line coding");
 | 
					        Log.d(TAG, "Setting line coding to 115200/8N1");
 | 
				
			||||||
        setBaudRate(115200);
 | 
					        mBaudRate = 115200;
 | 
				
			||||||
 | 
					        mDataBits = DATABITS_8;
 | 
				
			||||||
 | 
					        mParity = PARITY_NONE;
 | 
				
			||||||
 | 
					        mStopBits = STOPBITS_1;
 | 
				
			||||||
 | 
					        setParameters(mBaudRate, mDataBits, mStopBits, mParity);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final int USB_RECIP_INTERFACE = 0x01;
 | 
					 | 
				
			||||||
    private static final int USB_RT_ACM = UsbConstants.USB_TYPE_CLASS | USB_RECIP_INTERFACE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final int SET_LINE_CODING = 0x20;  // USB CDC 1.1 section 6.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private int sendAcmControlMessage(int request, int value, byte[] buf) {
 | 
					    private int sendAcmControlMessage(int request, int value, byte[] buf) {
 | 
				
			||||||
        return mConnection.controlTransfer(USB_RT_ACM, request, value, 0, buf, buf != null ? buf.length : 0, 5000);
 | 
					        return mConnection.controlTransfer(
 | 
				
			||||||
    }
 | 
					                USB_RT_ACM, request, value, 0, buf, buf != null ? buf.length : 0, 5000);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private int setAcmLineCoding(int bitRate, int stopBits, int parity, int dataBits) {
 | 
					 | 
				
			||||||
        byte[] msg = {
 | 
					 | 
				
			||||||
                (byte) ( bitRate & 0xff),
 | 
					 | 
				
			||||||
                (byte) ((bitRate >> 8 ) & 0xff),
 | 
					 | 
				
			||||||
                (byte) ((bitRate >> 16) & 0xff),
 | 
					 | 
				
			||||||
                (byte) ((bitRate >> 24) & 0xff),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                (byte) stopBits,
 | 
					 | 
				
			||||||
                (byte) parity,
 | 
					 | 
				
			||||||
                (byte) dataBits};
 | 
					 | 
				
			||||||
        return sendAcmControlMessage(SET_LINE_CODING, 0, msg);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@ -145,50 +150,90 @@ public class CdcAcmSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
        return offset;
 | 
					        return offset;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Deprecated
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int setBaudRate(int baudRate) throws IOException {
 | 
					    public int setBaudRate(int baudRate) throws IOException {
 | 
				
			||||||
        setAcmLineCoding(baudRate, 0, 0, 8);
 | 
					        mBaudRate = baudRate;
 | 
				
			||||||
        return baudRate;
 | 
					        setParameters(mBaudRate, mDataBits, mStopBits, mParity);
 | 
				
			||||||
 | 
					        return mBaudRate;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setParameters(int baudRate, int dataBits, int stopBits, int parity) {
 | 
				
			||||||
 | 
					        byte stopBitsByte;
 | 
				
			||||||
 | 
					        switch (stopBits) {
 | 
				
			||||||
 | 
					            case STOPBITS_1: stopBitsByte = 1; break;
 | 
				
			||||||
 | 
					            case STOPBITS_1_5: stopBitsByte = 2; break;
 | 
				
			||||||
 | 
					            case STOPBITS_2: stopBitsByte = 3; break;
 | 
				
			||||||
 | 
					            default: throw new IllegalArgumentException("Bad value for stopBits: " + stopBits);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        byte parityBitesByte;
 | 
				
			||||||
 | 
					        switch (parity) {
 | 
				
			||||||
 | 
					            case PARITY_NONE: parityBitesByte = 0; break;
 | 
				
			||||||
 | 
					            case PARITY_ODD: parityBitesByte = 1; break;
 | 
				
			||||||
 | 
					            case PARITY_EVEN: parityBitesByte = 2; break;
 | 
				
			||||||
 | 
					            case PARITY_MARK: parityBitesByte = 3; break;
 | 
				
			||||||
 | 
					            case PARITY_SPACE: parityBitesByte = 4; break;
 | 
				
			||||||
 | 
					            default: throw new IllegalArgumentException("Bad value for parity: " + parity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        byte[] msg = {
 | 
				
			||||||
 | 
					                (byte) ( baudRate & 0xff),
 | 
				
			||||||
 | 
					                (byte) ((baudRate >> 8 ) & 0xff),
 | 
				
			||||||
 | 
					                (byte) ((baudRate >> 16) & 0xff),
 | 
				
			||||||
 | 
					                (byte) ((baudRate >> 24) & 0xff),
 | 
				
			||||||
 | 
					                stopBitsByte,
 | 
				
			||||||
 | 
					                parityBitesByte,
 | 
				
			||||||
 | 
					                (byte) dataBits};
 | 
				
			||||||
 | 
					        sendAcmControlMessage(SET_LINE_CODING, 0, msg);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getCD() throws IOException {
 | 
					    public boolean getCD() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return false;  // TODO
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getCTS() throws IOException {
 | 
					    public boolean getCTS() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return false;  // TODO
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getDSR() throws IOException {
 | 
					    public boolean getDSR() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return false;  // TODO
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getDTR() throws IOException {
 | 
					    public boolean getDTR() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return mDtr;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean setDTR(boolean value) throws IOException {
 | 
					    public void setDTR(boolean value) throws IOException {
 | 
				
			||||||
        return false;
 | 
					        mDtr = value;
 | 
				
			||||||
 | 
					        setDtrRts();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getRI() throws IOException {
 | 
					    public boolean getRI() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return false;  // TODO
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean getRTS() throws IOException {
 | 
					    public boolean getRTS() throws IOException {
 | 
				
			||||||
        return false;
 | 
					        return mRts;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean setRTS(boolean value) throws IOException {
 | 
					    public void setRTS(boolean value) throws IOException {
 | 
				
			||||||
        return false;
 | 
					        mRts = value;
 | 
				
			||||||
 | 
					        setDtrRts();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void setDtrRts() {
 | 
				
			||||||
 | 
					        int value = (mRts ? 0x2 : 0) | (mDtr ? 0x1 : 0);
 | 
				
			||||||
 | 
					        sendAcmControlMessage(SET_CONTROL_LINE_STATE, value, null);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static Map<Integer, int[]> getSupportedDevices() {
 | 
					    public static Map<Integer, int[]> getSupportedDevices() {
 | 
				
			||||||
 | 
				
			|||||||
@ -90,6 +90,9 @@ import java.util.Map;
 | 
				
			|||||||
public class FtdiSerialDriver extends UsbSerialDriver {
 | 
					public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final int DEFAULT_BAUD_RATE = 115200;
 | 
					    private static final int DEFAULT_BAUD_RATE = 115200;
 | 
				
			||||||
 | 
					    private static final int DEFAULT_DATA_BITS = DATABITS_8;
 | 
				
			||||||
 | 
					    private static final int DEFAULT_PARITY = PARITY_NONE;
 | 
				
			||||||
 | 
					    private static final int DEFAULT_STOP_BITS = STOPBITS_1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final int USB_TYPE_STANDARD = 0x00 << 5;
 | 
					    public static final int USB_TYPE_STANDARD = 0x00 << 5;
 | 
				
			||||||
    public static final int USB_TYPE_CLASS = 0x00 << 5;
 | 
					    public static final int USB_TYPE_CLASS = 0x00 << 5;
 | 
				
			||||||
@ -161,6 +164,11 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private int mMaxPacketSize = 64; // TODO(mikey): detect
 | 
					    private int mMaxPacketSize = 64; // TODO(mikey): detect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private int mBaudRate;
 | 
				
			||||||
 | 
					    private int mDataBits;
 | 
				
			||||||
 | 
					    private int mParity;
 | 
				
			||||||
 | 
					    private int mStopBits;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Due to http://b.android.com/28023 , we cannot use UsbRequest async reads
 | 
					     * Due to http://b.android.com/28023 , we cannot use UsbRequest async reads
 | 
				
			||||||
     * since it gives no indication of number of bytes read. Set this to
 | 
					     * since it gives no indication of number of bytes read. Set this to
 | 
				
			||||||
@ -204,7 +212,7 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            reset();
 | 
					            reset();
 | 
				
			||||||
            setBaudRate(DEFAULT_BAUD_RATE);
 | 
					            setParameters(DEFAULT_BAUD_RATE, DEFAULT_DATA_BITS, DEFAULT_STOP_BITS, DEFAULT_PARITY);
 | 
				
			||||||
            opened = true;
 | 
					            opened = true;
 | 
				
			||||||
        } finally {
 | 
					        } finally {
 | 
				
			||||||
            if (!opened) {
 | 
					            if (!opened) {
 | 
				
			||||||
@ -307,13 +315,12 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Deprecated
 | 
				
			||||||
    public int setBaudRate(int baudRate) throws IOException {
 | 
					    public int setBaudRate(int baudRate) throws IOException {
 | 
				
			||||||
        long[] vals = convertBaudrate(baudRate);
 | 
					        long[] vals = convertBaudrate(baudRate);
 | 
				
			||||||
        long actualBaudrate = vals[0];
 | 
					        long actualBaudrate = vals[0];
 | 
				
			||||||
        long index = vals[1];
 | 
					        long index = vals[1];
 | 
				
			||||||
        long value = vals[2];
 | 
					        long value = vals[2];
 | 
				
			||||||
        Log.i(TAG, "Requested baudrate=" + baudRate + ", actual=" + actualBaudrate);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        int result = mConnection.controlTransfer(FTDI_DEVICE_OUT_REQTYPE,
 | 
					        int result = mConnection.controlTransfer(FTDI_DEVICE_OUT_REQTYPE,
 | 
				
			||||||
                SIO_SET_BAUD_RATE_REQUEST, (int) value, (int) index,
 | 
					                SIO_SET_BAUD_RATE_REQUEST, (int) value, (int) index,
 | 
				
			||||||
                null, 0, USB_WRITE_TIMEOUT_MILLIS);
 | 
					                null, 0, USB_WRITE_TIMEOUT_MILLIS);
 | 
				
			||||||
@ -323,6 +330,59 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
        return (int) actualBaudrate;
 | 
					        return (int) actualBaudrate;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setParameters(int baudRate, int dataBits, int stopBits, int parity)
 | 
				
			||||||
 | 
					            throws IOException {
 | 
				
			||||||
 | 
					        mBaudRate = setBaudRate(baudRate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int config = dataBits;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (parity) {
 | 
				
			||||||
 | 
					            case PARITY_NONE:
 | 
				
			||||||
 | 
					                config |= (0x00 << 8);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case PARITY_ODD:
 | 
				
			||||||
 | 
					                config |= (0x01 << 8);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case PARITY_EVEN:
 | 
				
			||||||
 | 
					                config |= (0x02 << 8);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case PARITY_MARK:
 | 
				
			||||||
 | 
					                config |= (0x03 << 8);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case PARITY_SPACE:
 | 
				
			||||||
 | 
					                config |= (0x04 << 8);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                throw new IllegalArgumentException("Unknown parity value: " + parity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (stopBits) {
 | 
				
			||||||
 | 
					            case STOPBITS_1:
 | 
				
			||||||
 | 
					                config |= (0x00 << 11);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case STOPBITS_1_5:
 | 
				
			||||||
 | 
					                config |= (0x01 << 11);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case STOPBITS_2:
 | 
				
			||||||
 | 
					                config |= (0x02 << 11);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                throw new IllegalArgumentException("Unknown stopBits value: " + stopBits);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int result = mConnection.controlTransfer(FTDI_DEVICE_OUT_REQTYPE,
 | 
				
			||||||
 | 
					                SIO_SET_DATA_REQUEST, config, 0 /* index */,
 | 
				
			||||||
 | 
					                null, 0, USB_WRITE_TIMEOUT_MILLIS);
 | 
				
			||||||
 | 
					        if (result != 0) {
 | 
				
			||||||
 | 
					            throw new IOException("Setting parameters failed: result=" + result);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mParity = parity;
 | 
				
			||||||
 | 
					        mStopBits = stopBits;
 | 
				
			||||||
 | 
					        mDataBits = dataBits;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private long[] convertBaudrate(int baudrate) {
 | 
					    private long[] convertBaudrate(int baudrate) {
 | 
				
			||||||
        // TODO(mikey): Braindead transcription of libfti method.  Clean up,
 | 
					        // TODO(mikey): Braindead transcription of libfti method.  Clean up,
 | 
				
			||||||
        // using more idiomatic Java where possible.
 | 
					        // using more idiomatic Java where possible.
 | 
				
			||||||
@ -430,8 +490,7 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean setDTR(boolean value) throws IOException {
 | 
					    public void setDTR(boolean value) throws IOException {
 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@ -445,8 +504,7 @@ public class FtdiSerialDriver extends UsbSerialDriver {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean setRTS(boolean value) throws IOException {
 | 
					    public void setRTS(boolean value) throws IOException {
 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static Map<Integer, int[]> getSupportedDevices() {
 | 
					    public static Map<Integer, int[]> getSupportedDevices() {
 | 
				
			||||||
 | 
				
			|||||||
@ -47,6 +47,30 @@ public abstract class UsbSerialDriver {
 | 
				
			|||||||
    /** Internal write buffer.  Guarded by {@link #mWriteBufferLock}. */
 | 
					    /** Internal write buffer.  Guarded by {@link #mWriteBufferLock}. */
 | 
				
			||||||
    protected byte[] mWriteBuffer;
 | 
					    protected byte[] mWriteBuffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final int DATABITS_5 = 5;
 | 
				
			||||||
 | 
					    public static final int DATABITS_6 = 6;
 | 
				
			||||||
 | 
					    public static final int DATABITS_7 = 7;
 | 
				
			||||||
 | 
					    public static final int DATABITS_8 = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final int FLOWCONTROL_NONE = 0;
 | 
				
			||||||
 | 
					    public static final int FLOWCONTROL_RTSCTS_IN = 1;
 | 
				
			||||||
 | 
					    public static final int FLOWCONTROL_RTSCTS_OUT = 2;
 | 
				
			||||||
 | 
					    public static final int FLOWCONTROL_XONXOFF_IN = 4;
 | 
				
			||||||
 | 
					    public static final int FLOWCONTROL_XONXOFF_OUT = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final int PARITY_EVEN = 2;
 | 
				
			||||||
 | 
					    public static final int PARITY_MARK = 3;
 | 
				
			||||||
 | 
					    public static final int PARITY_NONE = 0;
 | 
				
			||||||
 | 
					    public static final int PARITY_ODD = 1;
 | 
				
			||||||
 | 
					    public static final int PARITY_SPACE = 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** 1 stop bit. */
 | 
				
			||||||
 | 
					    public static final int STOPBITS_1 = 1;
 | 
				
			||||||
 | 
					    /** 1.5 stop bits. */
 | 
				
			||||||
 | 
					    public static final int STOPBITS_1_5 = 3;
 | 
				
			||||||
 | 
					    /** 2 stop bits. */
 | 
				
			||||||
 | 
					    public static final int STOPBITS_2 = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public UsbSerialDriver(UsbDevice device, UsbDeviceConnection connection) {
 | 
					    public UsbSerialDriver(UsbDevice device, UsbDeviceConnection connection) {
 | 
				
			||||||
        mDevice = device;
 | 
					        mDevice = device;
 | 
				
			||||||
        mConnection = connection;
 | 
					        mConnection = connection;
 | 
				
			||||||
@ -96,9 +120,27 @@ public abstract class UsbSerialDriver {
 | 
				
			|||||||
     * @param baudRate the desired baud rate, in bits per second
 | 
					     * @param baudRate the desired baud rate, in bits per second
 | 
				
			||||||
     * @return the actual rate set
 | 
					     * @return the actual rate set
 | 
				
			||||||
     * @throws IOException on error setting the baud rate
 | 
					     * @throws IOException on error setting the baud rate
 | 
				
			||||||
 | 
					     * @deprecated Use {@link #setParameters(int, int, int, int)} instead of this method.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    @Deprecated
 | 
				
			||||||
    public abstract int setBaudRate(final int baudRate) throws IOException;
 | 
					    public abstract int setBaudRate(final int baudRate) throws IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Sets various serial port parameters.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param baudRate baud rate as an integer, for example {@code 115200}.
 | 
				
			||||||
 | 
					     * @param dataBits one of {@link #DATABITS_5}, {@link #DATABITS_6},
 | 
				
			||||||
 | 
					     *            {@link #DATABITS_7}, or {@link #DATABITS_8}.
 | 
				
			||||||
 | 
					     * @param stopBits one of {@link #STOPBITS_1}, {@link #STOPBITS_1_5}, or
 | 
				
			||||||
 | 
					     *            {@link #STOPBITS_2}.
 | 
				
			||||||
 | 
					     * @param parity one of {@link #PARITY_NONE}, {@link #PARITY_ODD},
 | 
				
			||||||
 | 
					     *            {@link #PARITY_EVEN}, {@link #PARITY_MARK}, or
 | 
				
			||||||
 | 
					     *            {@link #PARITY_SPACE}.
 | 
				
			||||||
 | 
					     * @throws IOException on error setting the port parameters
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public abstract void setParameters(
 | 
				
			||||||
 | 
					            int baudRate, int dataBits, int stopBits, int parity) throws IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Gets the CD (Carrier Detect) bit from the underlying UART.
 | 
					     * Gets the CD (Carrier Detect) bit from the underlying UART.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@ -138,7 +180,7 @@ public abstract class UsbSerialDriver {
 | 
				
			|||||||
     * @param value the value to set
 | 
					     * @param value the value to set
 | 
				
			||||||
     * @throws IOException if an error occurred during writing
 | 
					     * @throws IOException if an error occurred during writing
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public abstract boolean setDTR(boolean value) throws IOException;
 | 
					    public abstract void setDTR(boolean value) throws IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Gets the RI (Ring Indicator) bit from the underlying UART.
 | 
					     * Gets the RI (Ring Indicator) bit from the underlying UART.
 | 
				
			||||||
@ -160,10 +202,10 @@ public abstract class UsbSerialDriver {
 | 
				
			|||||||
     * Sets the RTS (Request To Send) bit on the underlying UART, if
 | 
					     * Sets the RTS (Request To Send) bit on the underlying UART, if
 | 
				
			||||||
     * supported.
 | 
					     * supported.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param value thje value to set
 | 
					     * @param value the value to set
 | 
				
			||||||
     * @throws IOException if an error occurred during writing
 | 
					     * @throws IOException if an error occurred during writing
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public abstract boolean setRTS(boolean value) throws IOException;
 | 
					    public abstract void setRTS(boolean value) throws IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Returns the currently-bound USB device.
 | 
					     * Returns the currently-bound USB device.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user