UsbSerial for android.
 
 
 
Go to file
Felipe Herranz 0d5c9eb80d Merge pull request #5 from LeviticusMB/iface-constructor
Added support for multi-interface devices.
2015-02-19 13:49:45 +01:00
.settings Added support for a new device 2015-01-15 23:23:28 +01:00
libs First commit 2014-03-20 12:38:16 +01:00
res First commit 2014-03-20 12:38:16 +01:00
src/com/felhr Added support for multi-interface devices. 2015-02-18 08:48:38 +01:00
.classpath Added support for a new device 2015-01-15 23:23:28 +01:00
.gitignore bin and gen should not be under version control. 2014-11-25 13:35:53 +01:00
.project First commit 2014-03-20 12:38:16 +01:00
AndroidManifest.xml First commit 2014-03-20 12:38:16 +01:00
LICENSE
README.md Readme updated 2014-11-11 18:38:01 +01:00
proguard-project.txt First commit 2014-03-20 12:38:16 +01:00
project.properties First commit 2014-03-20 12:38:16 +01:00

README.md

UsbSerial

Usb serial controller for Android. A more complete description

Devices Supported

CP210X devices Default: 9600,8,1,None,flow off

Bluegiga BLED112 Dongle Default 115200,8,1,None,flow off

FTDI devices Default: 9600,8,1,None,flow off

PL2303 devices Default 9600,8,1,None,flow off

How to use it?

Instantiate a new object of the desired device you want to handle

UsbDevice device;
UsbDeviceConnection usbConnection;
...
CP2102SerialDevice cp2102 = new CP2102SerialDevice(device, usbConnection);
// Factory method, auto detect current device connected, return null if is not supported
// UsbSerialDevice serial = UsbSerialDevice.createUsbSerialDevice(device, usbConnection); 

Open the device and set it up as desired

cp2102.open();
cp2102.setBaudRate(115200);
cp2102.setDataBits(UsbSerialInterface.DATA_BITS_8);
cp2102.setParity(UsbSerialInterface.PARITY_ODD);

There is no need to be polling if you want to perform a bulk transaction to a IN endpoint. Define a simply callback

private UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {

		@Override
		public void onReceivedData(byte[] arg0) 
		{
			// Code here :)
		}
		
};

And pass a reference of it

cp2102.read(mCallback);

Write something

cp2102.write("DATA".getBytes()); // Async-like operation now! :)

Close the device:

cp2102.close();

In Android usb api, when a usb device has been close it must be reopened

UsbDevice device;
...
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
manager.openDevice(UsbDevice device)

TO-DO

  • RTS/CTS and DSR/DTR functions needed to raise hardware flow control signals