mik3y/usb-serial-for-android (com.github.mik3y:usb-serial-for-android)
### [`v3.7.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.7.0)
features:
- new Chrome OS CCD (Closed Case Debugging) ` ChromeCcdSerialDriver ` ([#540](https://togithub.com/mik3y/usb-serial-for-android/issues/540))
changes:
- consolidate control line method results, if no control lines supported (GsmModemSerialDriver, ChromeCcdSerialDriver):
- `getSupportedControlLines` returns `EnumSet.noneOf(ControlLine.class)`
- `getControlLines()` throws `UnsupportedOperationException`, similar to `get/set()`
### [`v3.5.1`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.5.1)
fixes:
- support composite CDC devices with non-consecutive interface IDs
### [`v3.5.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.5.0)
fixes:
- skip RNDIS related data interfaces in composite CDC devices
features:
- probe CDC devices by USB interface types instead of fixed VID+PID
- **no more custom prober required for standard CDC devices**
- legacy (singleInterface) CDC devices still have to be added by VID+PID
- for autostart VID+PID still have to be added to device_filter.xml
### [`v3.4.6`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.6)
fixes:
- improve PL2303G type detection ([#439](https://togithub.com/mik3y/usb-serial-for-android/issues/439))
features:
- added VID/PID for CDC device Qinheng CH9102
### [`v3.4.4`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.4)
changes:
- `CommonUsbSerialPort.DEBUG` log configurable, disabled by default
### [`v3.4.3`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.3)
fixes:
- fix PL2303G product IDs ([#383](https://togithub.com/mik3y/usb-serial-for-android/issues/383))
### [`v3.4.2`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.2)
fixes:
- Ch34x baud rate 921600 calculation
### [`v3.4.1`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.1)
fixes:
- restore FT2232C support that got lost with v3.0.0
### [`v3.4.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.4.0)
features:
- support PL2303GC/GB/GT/GL/GE/GS
- custom baud rates for PL2303TA/TB
- added VID 0x0483, PID 0x5740 to preconfigured CDC devices, as it is frequently used as STMicroelectronics virtual COM port
### [`v3.3.3`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.3.3)
features:
- new `SerialInputOutputManager.start()` method for starting ioManager thread
fixes:
- Previously recommended start action `Executors.newSingleThreadExecutor().submit(ioManager)` did not shutdown the executor, which caused a thread leak.\
Use new `SerialInputOutputManager.start()` method instead. It's still possible to use old style start, as SerialInputOutputManager continues to implement Runnable interface.
- `read` w/o timeout now only throws exception on connection lost. Reverted buffer to small handling from [`f4166f3`](https://togithub.com/mik3y/usb-serial-for-android/commit/f4166f3), as there might be unkown reasons for empty response
### [`v3.3.2`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.3.2)
features:
- use optimal read buffer size in `SerialInputOutputManager`to reduce latency for FTDI and CH34x
- `getReadEndpoint()` and `getWriteEndpoint()` methods moved to `UsbSerialPort` interface
fixes:
- `read` w/o timeout now throws exception on connection lost or buffer to small (when using `SerialInputOutputManager` the exception was already thrown before this change, because the next read failed)
- Use monotonic clock for timeout calculation, to avoid issues when time is adjusted
### [`v3.3.1`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.3.1)
features:
- new `SerialTimeoutException` class
- new `getReadEndpoint()` and `getWriteEndpoint()` methods in `CommonUsbSerialPort` class
- distinguish generic IO error and timeout in `write()`
- Return type of `write()` method changed to void. The return value was redundant before, as it was always the request length or an exception was thrown
- If timeout is reached, `write()` now throws a `SerialTimeoutException` with `ex.bytesTransferred` filled with known transferred bytes
- Optimal write buffer size can be set with `port.setWriteBufferSize(port.getWriteEndpoint().getMaxPacketSize())`
- By default the write buffer size is > MaxPacketSize and the Linux kernel splits writes in chunks. When the timeout occurs, it's unknown how many chunks have already been transferred and 0 is returned in `SerialTimeoutException.bytesTransferred`. With optimal write buffer size, this value is known and returned in `SerialTimeoutException.bytesTransferred` as the chunking is done in this library, but due to more kernel round trips write() might take slightly longer and cause more CPU load
- introduced IntDef annotation `@Parity` at `setParameters(..., @Parity int parity)` parameter for better warnings
- disable debug logging in `SerialInputOutputManager` by default. Can be enabled with `public static boolean DEBUG;`
fixes:
- set thread priority in `SerialInputOutputManager.run`
- improve error handling in `close`
changes:
- Return type of `write()` method changed to void. The return value was redundant before, as it was always the request length or an exception was thrown
### [`v3.3.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.3.0)
features:
- support BREAK with `setBreak(boolean)` method
fixes:
- fix PL2303 initial input control line values
### [`v3.2.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.2.0)
features:
- PL2303 support non-standard baud rates
### [`v3.1.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.1.0)
features:
- `read` with timeout now throws error on connection lost, e.g. device disconnected
- Prolific input control line methods now throw error on connection lost
- `SerialInputOutputManager` with configurable buffer size
- `SerialInputOutputManager` with configurable threadpriority and higher default to prevent data loss
fixes:
- FTDI `read` now waits until timeout. previously returned after periodic FTDI status response (default 16 msec)\
*If you relied on this early return, you should adapt your timeout values*
### [`v3.0.1`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.0.1)
features:
- restore support for FTDI FT230X, FT231X, FT234XD
(was removed in v.3.0.0 is it was untested and unclear if new FTDI implementation supports these devices)
### [`v3.0.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.0.0)
features:
- move from LGPL to MIT license, as FTDI driver is rewritten
changes:
- FTDI driver rewritten without LGPL code from libftdi
- FTDI device FT231X removed from automatically detected devices as it is untested and unknown if it is supported by the new driver
- `setRts, getRts, getRCts, setDtr, getDtr, getDsr, getCd, getRi, purgeHwBuffers` methods now throw `UnsupportedOperationException` instead of returning `false` if not supported
### [`v2.3.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.3.0)
features:
- added CH341A support
- implement CH34x input control lines
- implemented CP21xx input control lines
- new `getControlLines()` and `getSupportedControLines()` methods
- `getControlLines()`requires less USB transfers than calling `getRTS()` + ... + `getRI()` individually
- `getSupportedControlLines()` tells you, which control lines are supported by a driver. Previously you had to check the driver implementation
changes:
- open() CP21xx with RTS, DTR unset, for consistency with other drivers
### [`v2.2.3`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.2.3)
features:
- new `UsbSerialPort.isOpen` method
fixes:
- relax CH340 initialization
- make all `SerialPort` classes public
### [`v2.2.2`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.2.2)
fixes:
- fix CP2102N initialization
- align device_filter.xml with devices recognized by DefaultProber
### [`v2.2.1`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.2.1)
fixes
- fix CH340 initialization
### [`v2.2.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.2.0)
features:
- support multi-port CDC devices
- support FTDI control lines
- added FTDI specific `get/setLatencyTimer, getModemStatus` methods
refactoring:
- reuse `UsbRequest` to reduce LogCat output
### [`v2.1.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.1.0)
features:
- DTR and RTS support for CP21xx drivers
- reimplemented read timeout. **caution:** too short timeout can cause data loss, see [wiki](https://togithub.com/mik3y/usb-serial-for-android/wiki/Troubleshooting#how-to-set-timeout-in-readwrite-methods) for details
- include proguard rules in .aar library to retain driver classes instantiated by `UsbSerialProber`
fixes:
- improve error handling in `close` and more reliably interrupt `read` and terminate `SerialInputOutputManager`
- harmonize + cleanup error messages
- correct `purgeHwBuffers` parameter description
- manage USB permission intent in sample app
- more code coverage tests
changes:
- distinguish `IllegalArgumentException` and `UnsupportedOperationException` in `setParameter`
*If you had dedicated handling for `IllegalArgumentException`, you now have to handle both*
- `SerialInputOutputManager` now has infinite read/write timeout per default, to prevent data loss
*If you want to use `SerialInputOutputManager.writeAsync` you should set a readTimeout!=0 before starting the thread*
### [`v2.0.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v2.0.0)
merged back changes collected in [kai-morich's fork](https://togithub.com/kai-morich/usb-serial-for-android)
new features:
- support ft\_232h, cp210\_ multiport devices
- CH34x: data bits, parity, stop bits
- CP21xx: mark+space
- support USB devices with other non CDC related endpoints
- CH34x: support more baudrates
changes:
- increased minimum Android version to 4.3 (API 17)
- Always use async read (`UsbDeviceConnection.requestWait`), as bulkTransfer (`UsbDeviceConnection. bulkTransfer`) can cause [data loss](https://stackoverflow.com/questions/9108548/android-usb-host-bulktransfer-is-losing-data) at high baud rates. Before this release only the CdcAcm driver used async read.
*With async read currently **read timeout != 0 is ignored. `read` blocks until data is available** (except Ftdi, where status data is available each 16msec).*
Instead of using `read` you can use the asynchronuos `SerialInputOutputManager` to be notified on available data. `SerialInputOutputManager.writeAsync` is also affected, as the loop blocks in a `read`. Instead you can `write` directly in your UI thread.
Configuration
š Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
š¦ Automerge: Enabled.
ā» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
š Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v3.7.0
->3.7.0
Release Notes
mik3y/usb-serial-for-android (com.github.mik3y:usb-serial-for-android)
### [`v3.7.0`](https://togithub.com/mik3y/usb-serial-for-android/releases/tag/v3.7.0) features: - new Chrome OS CCD (Closed Case Debugging) ` ChromeCcdSerialDriver ` ([#540](https://togithub.com/mik3y/usb-serial-for-android/issues/540)) changes: - consolidate control line method results, if no control lines supported (GsmModemSerialDriver, ChromeCcdSerialDriver): - `getSupportedControlLines` returns `EnumSet.noneOf(ControlLine.class)` - `getControlLines()` throws `UnsupportedOperationException`, similar to `get/setConfiguration
š Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
š¦ Automerge: Enabled.
ā» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
š Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.