From e4b3ed610c65c768696067fd3385b561dff8375e Mon Sep 17 00:00:00 2001 From: mike wakerly Date: Tue, 4 Feb 2014 14:22:14 -0800 Subject: [PATCH] UsbSerialPort: Add port number to interface. --- .../usbserial/driver/CdcAcmSerialDriver.java | 8 ++++---- .../usbserial/driver/CommonUsbSerialPort.java | 16 +++++++++++++++- .../usbserial/driver/Cp21xxSerialDriver.java | 6 +++--- .../usbserial/driver/FtdiSerialDriver.java | 6 +++--- .../usbserial/driver/ProlificSerialDriver.java | 6 +++--- .../android/usbserial/driver/UsbSerialPort.java | 5 +++++ 6 files changed, 33 insertions(+), 14 deletions(-) diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java index 3e764ab..da014b7 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CdcAcmSerialDriver.java @@ -51,7 +51,7 @@ public class CdcAcmSerialDriver implements UsbSerialDriver { public CdcAcmSerialDriver(UsbDevice device) { mDevice = device; - mPort = new CdcAdcmSerialPort(device); + mPort = new CdcAcmSerialPort(device, 0); } @Override @@ -64,7 +64,7 @@ public class CdcAcmSerialDriver implements UsbSerialDriver { return Collections.singletonList(mPort); } - class CdcAdcmSerialPort extends CommonUsbSerialPort { + class CdcAcmSerialPort extends CommonUsbSerialPort { private UsbInterface mControlInterface; private UsbInterface mDataInterface; @@ -84,8 +84,8 @@ public class CdcAcmSerialDriver implements UsbSerialDriver { private static final int SET_CONTROL_LINE_STATE = 0x22; private static final int SEND_BREAK = 0x23; - public CdcAdcmSerialPort(UsbDevice device) { - super(device); + public CdcAcmSerialPort(UsbDevice device, int portNumber) { + super(device, portNumber); } @Override diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CommonUsbSerialPort.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CommonUsbSerialPort.java index d8a9e1f..3a83913 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CommonUsbSerialPort.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/CommonUsbSerialPort.java @@ -37,6 +37,7 @@ abstract class CommonUsbSerialPort implements UsbSerialPort { public static final int DEFAULT_WRITE_BUFFER_SIZE = 16 * 1024; protected final UsbDevice mDevice; + protected final int mPortNumber; // non-null when open() protected UsbDeviceConnection mConnection = null; @@ -50,12 +51,20 @@ abstract class CommonUsbSerialPort implements UsbSerialPort { /** Internal write buffer. Guarded by {@link #mWriteBufferLock}. */ protected byte[] mWriteBuffer; - public CommonUsbSerialPort(UsbDevice device) { + public CommonUsbSerialPort(UsbDevice device, int portNumber) { mDevice = device; + mPortNumber = portNumber; mReadBuffer = new byte[DEFAULT_READ_BUFFER_SIZE]; mWriteBuffer = new byte[DEFAULT_WRITE_BUFFER_SIZE]; } + + @Override + public String toString() { + return String.format("<%s device_name=%s device_id=%s port_number=%s>", + getClass().getSimpleName(), mDevice.getDeviceName(), + mDevice.getDeviceId(), mPortNumber); + } /** * Returns the currently-bound USB device. @@ -66,6 +75,11 @@ abstract class CommonUsbSerialPort implements UsbSerialPort { return mDevice; } + @Override + public int getPortNumber() { + return mPortNumber; + } + /** * Sets the size of the internal buffer used to exchange data with the USB * stack for read operations. Most users should not need to change this. diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java index 7125104..e9c812c 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java @@ -43,7 +43,7 @@ public class Cp21xxSerialDriver implements UsbSerialDriver { public Cp21xxSerialDriver(UsbDevice device) { mDevice = device; - mPort = new Cp21xxSerialPort(mDevice); + mPort = new Cp21xxSerialPort(mDevice, 0); } @Override @@ -104,8 +104,8 @@ public class Cp21xxSerialDriver implements UsbSerialDriver { private UsbEndpoint mReadEndpoint; private UsbEndpoint mWriteEndpoint; - public Cp21xxSerialPort(UsbDevice device) { - super(device); + public Cp21xxSerialPort(UsbDevice device, int portNumber) { + super(device, portNumber); } @Override diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java index 7aad732..218c0f0 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/FtdiSerialDriver.java @@ -106,7 +106,7 @@ public class FtdiSerialDriver implements UsbSerialDriver { public FtdiSerialDriver(UsbDevice device) { mDevice = device; - mPort = new FtdiSerialPort(mDevice); + mPort = new FtdiSerialPort(mDevice, 0); } @Override public UsbDevice getDevice() { @@ -192,8 +192,8 @@ public class FtdiSerialDriver implements UsbSerialDriver { */ private static final boolean ENABLE_ASYNC_READS = false; - public FtdiSerialPort(UsbDevice device) { - super(device); + public FtdiSerialPort(UsbDevice device, int portNumber) { + super(device, portNumber); } @Override diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java index 526f684..249cf4f 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/ProlificSerialDriver.java @@ -50,7 +50,7 @@ public class ProlificSerialDriver implements UsbSerialDriver { public ProlificSerialDriver(UsbDevice device) { mDevice = device; - mPort = new ProlificSerialPort(mDevice); + mPort = new ProlificSerialPort(mDevice, 0); } @Override @@ -124,8 +124,8 @@ public class ProlificSerialDriver implements UsbSerialDriver { private IOException mReadStatusException = null; - public ProlificSerialPort(UsbDevice device) { - super(device); + public ProlificSerialPort(UsbDevice device, int portNumber) { + super(device, portNumber); } @Override diff --git a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialPort.java b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialPort.java index 3cd0080..d4fa4a0 100644 --- a/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialPort.java +++ b/UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialPort.java @@ -85,6 +85,11 @@ public interface UsbSerialPort { public static final int STOPBITS_2 = 2; public UsbSerialDriver getDriver(); + + /** + * Port number within driver. + */ + public int getPortNumber(); /** * Opens and initializes the port. Upon success, caller must ensure that