kai-morich
cf9bada887
use optimal write buffer size by default + revert gradle update
...
write buffer: SerialTimeoutException from write() has valid ex.bytesTransferred
gradle 7.1.x creates empty coverage results
2022-04-26 21:40:49 +02:00
kai-morich
b853ac773c
test concurrent access on multi-port devices
2022-04-19 22:17:23 +02:00
kai-morich
12095f6b94
coverage for PL2303 variants
2021-08-17 22:51:26 +02:00
kai-morich
18e300efa3
add dedicated handling for Ch34x baud rate 921600
2021-07-28 17:49:35 +02:00
kai-morich
c82cd284ae
support PL2303GC/GB/GT/GL/GE/GS
...
see https://lore.kernel.org/linux-usb/20190213123000.4656-1-charlesyeh522@gmail.com/
2021-05-13 20:55:15 +02:00
kai-morich
2f23bdfb6d
custom baud rates for PL2303TA/TB
...
see https://lore.kernel.org/r/3aee5708-7961-f464-8c5f-6685d96920d6@IEEE.org
2021-05-11 17:30:09 +02:00
kai-morich
5f94a47b63
read w/o timeout now only throws exception on connection lost
...
partly revert f4166f34
, as there might be unkown reasons for empty response
2021-04-20 22:53:53 +02:00
kai-morich
128d1a00b1
new SerialInputOutputManager.start() method
...
Previously recommended start action `Executors.newSingleThreadExecutor().submit(ioManager)` did not shutdown the Executor, which caused a thread leak. It's still possible to use old style start, as SerialInputOutputManager continues to implement Runnable interface.
2021-04-16 21:55:22 +02:00
kai-morich
848d4e7713
SerialInputOutputManager: use optimal read buffer size to reduce latency for FTDI and CH34x
2021-04-04 20:55:41 +02:00
kai-morich
f1d73c04dc
fixed some warnings
2021-04-02 20:28:41 +02:00
kai-morich
f4166f34a0
read w/o timeout now throws exception on connection lost or buffer to small
...
SerialInputOutputManager already returned connection lost exception, as the next read failed
2021-03-26 18:11:23 +01:00
kai-morich
4ffcc8d0fb
simplify write timeout handling
2021-02-13 21:07:21 +01:00
kai-morich
f60414f8ec
improve write timeout handling
...
Return type of write() method changed to void. The return value was redundant before, as it always was 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.
Added CommonUsbSerialPort.getReadEndpoint() and .getWriteEndpoint() to assist in setting the optimal write buffer size 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 the exception typically stores 0. With optimal write buffer size, this value is known and stored in SerialTimeoutException, but due to more kernel round trips write() might take slightly longer().
2021-02-07 16:37:01 +01:00
kai-morich
85d0348844
improve error quality + test for PR #339
2021-01-31 19:58:59 +01:00
kai-morich
768f716600
new setBreak() method
2020-10-14 20:36:49 +02:00
kai-morich
1e75f91467
slightly more coverage, local coverage report, dependency update
2020-10-12 21:28:50 +02:00
kai-morich
08a93ec530
PL2303 fix initial input control line values
2020-10-07 21:40:07 +02:00
kai-morich
732e138630
PL2303(HX) support non-standard baud rates
2020-09-28 21:12:50 +02:00
kai-morich
1adf2a9b98
PL2303 throw error on unsupported baud rates
...
instead of silently falling back to 9600 baud
2020-09-27 09:03:37 +02:00
kai-morich
26999e3626
read with timeout now throws error on connection lost, e.g. device disconnected
...
and similar connection lost detection for prolific input control lines
2020-09-12 21:17:52 +02:00
kai-morich
c53c3ed0ae
check read buffer size
2020-09-06 09:48:10 +02:00
kai-morich
6f4cd0313c
FTDI read() now waits until timeout
...
previously returned after periodic FTDI status response (default 16 msec)
2020-09-05 12:00:37 +02:00
kai-morich
80e8eb8a60
iomanager with configurable threadpriority and higher default to prevent data loss
2020-08-31 22:40:28 +02:00
kai-morich
f443d1f012
iomanager with configurable buffer size
2020-08-31 22:40:28 +02:00
kai-morich
698f590d58
restored UsbId.FTDI_FT231X
...
same ID for FT230X, FT231X, FT234XD
tested with FT230X
2020-08-23 20:44:34 +02:00
kai-morich
a664082f23
throw UnsupportedOperationException instead of returning false
2020-08-01 10:06:51 +02:00
kai-morich
954295456c
rebase new FTDI baudrate test
2020-07-30 17:52:18 +02:00
kai-morich
e496195bd9
rewrite ftdi driver without LGPL code from libftdi
2020-07-27 17:39:01 +02:00
kai-morich
ce73857825
slightly more tests
2020-07-19 19:47:13 +02:00
kai-morich
8eaf3f5c5f
tests UsbDeviceConnection close behavior
...
and extract test utilities
2020-07-18 20:48:27 +02:00
kai-morich
a1e58b9843
implement CP21xx input control lines
...
open() CP21xx without RTS, DTR set
2020-07-04 15:31:58 +02:00
kai-morich
7423fd9d79
new getControlLines() and getSupportedControLines() methods
...
getControlLines() requires less USB calls than calling getRTS() + ... + getRI() individually.
getSupportedControlLines() tells you, which control lines are supported by a driver. Previously you had to check the driver implementation.
2020-06-30 18:10:02 +02:00
kai-morich
13df128226
implement CH34x input control lines
2020-06-27 11:53:12 +02:00
kai-morich
735fa3d70f
make all SerialPort classes public
...
and test FtdiSerialPort methods
2020-06-10 19:09:34 +02:00
kai-morich
cffe54e15c
test control lines
2020-03-21 18:01:05 +01:00
kai-morich
bbed92eafb
support multi-port CDC devices
2020-01-10 08:02:56 +01:00
kai-morich
ce97a3408b
reuse UsbRequest
...
less LogCat output
2019-12-13 21:13:48 +01:00
kai-morich
e2e9df8463
reimplement read timeout
2019-11-15 21:45:22 +01:00
kai-morich
e1b62cf675
write + purge tests, remove unused read buffer code
2019-11-03 19:34:14 +01:00
kai-morich
5c6748e1b8
improve setParameter() error handling
...
harmonize exception messages, more UI friendly messages
distinguish IllegalArgumentException and UnsupportedOperationException
2019-11-02 13:49:08 +01:00
kai-morich
18b5b6e648
unify open() error handling, more tests, minor cleanup
2019-11-02 13:09:15 +01:00
kai-morich
9ea936b14a
improve close handling
...
Use releaseInterface to interrupt read() and terminate SerialInputOutputManager. Previously some drivers used usbRequest.cancel() but this does not interrupt read() on older Android.
Added connection check to read(). Before Android 8.0 request.initialize() did not check usbConnection, which can lead to native crash if NULL
2019-10-27 21:32:38 +01:00
Kai Morich
b3631dff58
README with SerialInputOutputManager for read() and port for write()
...
test the usually not used read/write variants
2019-10-26 21:32:28 +02:00
Kai Morich
fac8c9f340
test nonstandard baud rates
2019-10-26 15:40:40 +02:00
Kai Morich
f7399c2aad
more coverage tests
...
purgeHwBuffers: adjust parameter names to match read/write methods and actual behavior
2019-10-25 22:23:00 +02:00
Kai Morich
54a3db115f
show code coverage
2019-10-20 22:41:55 +02:00
Kai Morich
61b272b8b6
support ft_232h, cp210_ multiport devices
...
harmonize claimInterface() error handling
cancel read() on close()
2019-10-05 10:27:11 +02:00
Kai Morich
0ea5b282b7
implement async read for all devices
2019-10-05 10:27:11 +02:00
Kai Morich
adb22f718e
build tools update; instrumented device test
2019-10-05 10:27:11 +02:00