mirror of
https://github.com/mik3y/usb-serial-for-android
synced 2025-06-07 16:06:10 +00:00
test nonstandard baud rates
This commit is contained in:
parent
f7399c2aad
commit
fac8c9f340
@ -8,10 +8,9 @@ android {
|
|||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
testInstrumentationRunnerArguments = [
|
testInstrumentationRunnerArguments = [ // Raspi Windows LinuxVM ...
|
||||||
'rfc2217_server_host': '192.168.0.171',
|
'rfc2217_server_host': '192.168.0.100',
|
||||||
'rfc2217_server_nonstandard_baudrates': 'false', // false on Windows, Raspi
|
'rfc2217_server_nonstandard_baudrates': 'true', // true false false
|
||||||
'rfc2217_server_parity_mark_space': 'true' // false on Raspi
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,6 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
private static String rfc2217_server_host;
|
private static String rfc2217_server_host;
|
||||||
private static int rfc2217_server_port = 2217;
|
private static int rfc2217_server_port = 2217;
|
||||||
private static boolean rfc2217_server_nonstandard_baudrates;
|
private static boolean rfc2217_server_nonstandard_baudrates;
|
||||||
private static boolean rfc2217_server_parity_mark_space;
|
|
||||||
private static String test_device_driver;
|
private static String test_device_driver;
|
||||||
private static int test_device_port;
|
private static int test_device_port;
|
||||||
|
|
||||||
@ -108,7 +107,6 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
public static void setUpFixture() throws Exception {
|
public static void setUpFixture() throws Exception {
|
||||||
rfc2217_server_host = InstrumentationRegistry.getArguments().getString("rfc2217_server_host");
|
rfc2217_server_host = InstrumentationRegistry.getArguments().getString("rfc2217_server_host");
|
||||||
rfc2217_server_nonstandard_baudrates = Boolean.valueOf(InstrumentationRegistry.getArguments().getString("rfc2217_server_nonstandard_baudrates"));
|
rfc2217_server_nonstandard_baudrates = Boolean.valueOf(InstrumentationRegistry.getArguments().getString("rfc2217_server_nonstandard_baudrates"));
|
||||||
rfc2217_server_parity_mark_space = Boolean.valueOf(InstrumentationRegistry.getArguments().getString("rfc2217_server_parity_mark_space"));
|
|
||||||
test_device_driver = InstrumentationRegistry.getArguments().getString("test_device_driver");
|
test_device_driver = InstrumentationRegistry.getArguments().getString("test_device_driver");
|
||||||
test_device_port = Integer.valueOf(InstrumentationRegistry.getArguments().getString("test_device_port","0"));
|
test_device_port = Integer.valueOf(InstrumentationRegistry.getArguments().getString("test_device_port","0"));
|
||||||
|
|
||||||
@ -532,8 +530,6 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void baudRate() throws Exception {
|
public void baudRate() throws Exception {
|
||||||
byte[] data;
|
|
||||||
|
|
||||||
if (false) { // default baud rate
|
if (false) { // default baud rate
|
||||||
// CP2102: only works if first connection after attaching device
|
// CP2102: only works if first connection after attaching device
|
||||||
// PL2303, FTDI: it's not 9600
|
// PL2303, FTDI: it's not 9600
|
||||||
@ -604,9 +600,7 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
} catch (IllegalArgumentException ignored) {
|
} catch (IllegalArgumentException ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int baudRate : new int[] {300, 2400, 19200, 42000, 115200} ) {
|
for(int baudRate : new int[] {300, 2400, 19200, 115200} ) {
|
||||||
if(baudRate == 42000 && !rfc2217_server_nonstandard_baudrates)
|
|
||||||
continue; // rfc2217_server.py would terminate
|
|
||||||
if(baudRate == 300 && isCp21xxRestrictedPort) {
|
if(baudRate == 300 && isCp21xxRestrictedPort) {
|
||||||
try {
|
try {
|
||||||
usbParameters(baudRate, 8, 1, UsbSerialPort.PARITY_NONE);
|
usbParameters(baudRate, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
@ -620,10 +614,42 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
|
|
||||||
doReadWrite(baudRate+"/8N1");
|
doReadWrite(baudRate+"/8N1");
|
||||||
}
|
}
|
||||||
|
if(rfc2217_server_nonstandard_baudrates && !isCp21xxRestrictedPort) {
|
||||||
|
// usbParameters does not fail on devices that do not support nonstandard baud rates
|
||||||
|
usbParameters(42000, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
|
telnetParameters(42000, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
|
|
||||||
|
byte[] buf1 = "abc".getBytes();
|
||||||
|
byte[] buf2 = "ABC".getBytes();
|
||||||
|
byte[] data1, data2;
|
||||||
|
usbWrite(buf1);
|
||||||
|
data1 = telnetRead();
|
||||||
|
telnetWrite(buf2);
|
||||||
|
data2 = usbRead();
|
||||||
|
if (usbSerialDriver instanceof ProlificSerialDriver) {
|
||||||
|
// not supported
|
||||||
|
assertNotEquals(data1, buf2);
|
||||||
|
assertNotEquals(data2, buf2);
|
||||||
|
} else if (usbSerialDriver instanceof Cp21xxSerialDriver) {
|
||||||
|
if (usbSerialDriver.getPorts().size() > 1) {
|
||||||
|
// supported on cp2105 first port
|
||||||
|
assertThat("42000/8N1", data1, equalTo(buf1));
|
||||||
|
assertThat("42000/8N1", data2, equalTo(buf2));
|
||||||
|
} else {
|
||||||
|
// not supported on cp2102
|
||||||
|
assertNotEquals(data1, buf1);
|
||||||
|
assertNotEquals(data2, buf2);
|
||||||
|
}
|
||||||
|
assertThat("42000/8N1", data1, equalTo(buf1));
|
||||||
|
} else {
|
||||||
|
assertThat("42000/8N1", data2, equalTo(buf2));
|
||||||
|
}
|
||||||
|
}
|
||||||
{ // non matching baud rate
|
{ // non matching baud rate
|
||||||
telnetParameters(19200, 8, 1, UsbSerialPort.PARITY_NONE);
|
telnetParameters(19200, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
usbParameters(2400, 8, 1, UsbSerialPort.PARITY_NONE);
|
usbParameters(2400, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
|
|
||||||
|
byte[] data;
|
||||||
telnetWrite("net2usb".getBytes());
|
telnetWrite("net2usb".getBytes());
|
||||||
data = usbRead();
|
data = usbRead();
|
||||||
assertNotEquals(7, data.length);
|
assertNotEquals(7, data.length);
|
||||||
@ -762,7 +788,7 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
|
|
||||||
if (usbSerialDriver instanceof CdcAcmSerialDriver) {
|
if (usbSerialDriver instanceof CdcAcmSerialDriver) {
|
||||||
// not supported by arduino_leonardo_bridge.ino, other devices might support it
|
// not supported by arduino_leonardo_bridge.ino, other devices might support it
|
||||||
} else if (rfc2217_server_parity_mark_space) {
|
} else {
|
||||||
usbParameters(19200, 7, 1, UsbSerialPort.PARITY_MARK);
|
usbParameters(19200, 7, 1, UsbSerialPort.PARITY_MARK);
|
||||||
usbWrite(_8n1);
|
usbWrite(_8n1);
|
||||||
data = telnetRead(4);
|
data = telnetRead(4);
|
||||||
@ -794,7 +820,6 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
if (usbSerialDriver instanceof CdcAcmSerialDriver) {
|
if (usbSerialDriver instanceof CdcAcmSerialDriver) {
|
||||||
// not supported by arduino_leonardo_bridge.ino, other devices might support it
|
// not supported by arduino_leonardo_bridge.ino, other devices might support it
|
||||||
} else {
|
} else {
|
||||||
if (rfc2217_server_parity_mark_space) {
|
|
||||||
telnetParameters(19200, 7, 1, UsbSerialPort.PARITY_MARK);
|
telnetParameters(19200, 7, 1, UsbSerialPort.PARITY_MARK);
|
||||||
telnetWrite(_8n1);
|
telnetWrite(_8n1);
|
||||||
data = usbRead(4);
|
data = usbRead(4);
|
||||||
@ -804,7 +829,7 @@ public class DeviceTest implements SerialInputOutputManager.Listener {
|
|||||||
telnetWrite(_8n1);
|
telnetWrite(_8n1);
|
||||||
data = usbRead(4);
|
data = usbRead(4);
|
||||||
assertThat("19200/7S1", data, equalTo(_7s1));
|
assertThat("19200/7S1", data, equalTo(_7s1));
|
||||||
}
|
|
||||||
usbParameters(19200, 7, 1, UsbSerialPort.PARITY_ODD);
|
usbParameters(19200, 7, 1, UsbSerialPort.PARITY_ODD);
|
||||||
telnetParameters(19200, 8, 1, UsbSerialPort.PARITY_NONE);
|
telnetParameters(19200, 8, 1, UsbSerialPort.PARITY_NONE);
|
||||||
telnetWrite(_8n1);
|
telnetWrite(_8n1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user