From 1091b4d88b33fa5a651f5f2b6410c8665dc8ea3e Mon Sep 17 00:00:00 2001 From: kai-morich Date: Thu, 21 Jul 2022 12:55:14 +0200 Subject: [PATCH] improve PL2303 device type detection (#439) --- .../usbserial/driver/ProlificSerialDriver.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/usbSerialForAndroid/src/main/java/com/hoho/android/usbserial/driver/ProlificSerialDriver.java b/usbSerialForAndroid/src/main/java/com/hoho/android/usbserial/driver/ProlificSerialDriver.java index e2fb2bd..b5243cc 100644 --- a/usbSerialForAndroid/src/main/java/com/hoho/android/usbserial/driver/ProlificSerialDriver.java +++ b/usbSerialForAndroid/src/main/java/com/hoho/android/usbserial/driver/ProlificSerialDriver.java @@ -299,12 +299,14 @@ public class ProlificSerialDriver implements UsbSerialDriver { byte maxPacketSize0 = rawDescriptors[7]; if (mDevice.getDeviceClass() == 0x02 || maxPacketSize0 != 64) { mDeviceType = DeviceType.DEVICE_TYPE_01; - } else if(deviceVersion == 0x300 && usbVersion == 0x200) { - mDeviceType = DeviceType.DEVICE_TYPE_T; // TA - } else if(deviceVersion == 0x500) { - mDeviceType = DeviceType.DEVICE_TYPE_T; // TB - } else if(usbVersion == 0x200 && !testHxStatus()) { - mDeviceType = DeviceType.DEVICE_TYPE_HXN; + } else if(usbVersion == 0x200) { + if(deviceVersion == 0x300 && testHxStatus()) { + mDeviceType = DeviceType.DEVICE_TYPE_T; // TA + } else if(deviceVersion == 0x500 && testHxStatus()) { + mDeviceType = DeviceType.DEVICE_TYPE_T; // TB + } else { + mDeviceType = DeviceType.DEVICE_TYPE_HXN; + } } else { mDeviceType = DeviceType.DEVICE_TYPE_HX; }