kopia lustrzana https://github.com/felHR85/UsbSerial
androidandroid-hardwareandroid-serial-portandroid-usb-hostftdi-deviceftdi-deviceshardwareiotiot-deviceserialserialportspiusbusb-serial-adaptersusb-serial-controller
0501f046b5 | ||
---|---|---|
.settings | ||
libs | ||
res | ||
src/com/felhr | ||
.classpath | ||
.gitignore | ||
.project | ||
AndroidManifest.xml | ||
LICENSE | ||
README.md | ||
proguard-project.txt | ||
project.properties |
README.md
UsbSerial
Usb serial controller for Android. A more complete description
Devices Supported
CP210X devices Default: 9600,8,1,None,flow off
CDC devices 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
CH34x devices Default 9600,8,1,None,flow off
How to use it?
Instantiate a new object of the UsbSerialDevice class
UsbDevice device;
UsbDeviceConnection usbConnection;
...
UsbSerialDevice serial = UsbSerialDevice.createUsbSerialDevice(device, usbConnection);
Open the device and set it up as desired
serial.open();
serial.setBaudRate(115200);
serial.setDataBits(UsbSerialInterface.DATA_BITS_8);
serial.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
serial.read(mCallback);
Write something
serial.write("DATA".getBytes()); // Async-like operation now! :)
Close the device:
serial.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