|
|
@ -30,6 +30,11 @@ public class SerialPortManager extends SerialPort { |
|
|
|
private Handler mSendingHandler; |
|
|
|
private SerialPortReadThread mSerialPortReadThread; |
|
|
|
|
|
|
|
// For QR scanner |
|
|
|
private SerialPortManager serialPortQr; |
|
|
|
private boolean isQrRuning = false; |
|
|
|
private Thread qrThread; |
|
|
|
|
|
|
|
/** |
|
|
|
* 打开串口 |
|
|
|
* |
|
|
@ -184,4 +189,77 @@ public class SerialPortManager extends SerialPort { |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 扫码器测试方法 - 连接串口并监听二维码数据 |
|
|
|
*/ |
|
|
|
public void x9_serialport_qr() { |
|
|
|
if (serialPortQr != null) { |
|
|
|
serialPortQr.closeSerialPort(); |
|
|
|
serialPortQr = null; |
|
|
|
isQrRuning = false; |
|
|
|
} |
|
|
|
if (qrThread != null) { |
|
|
|
qrThread.interrupt(); |
|
|
|
qrThread = null; |
|
|
|
} |
|
|
|
if (!isQrRuning) { |
|
|
|
isQrRuning = true; |
|
|
|
// 循环读取二维码 |
|
|
|
qrThread = new Thread() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
super.run(); |
|
|
|
try { |
|
|
|
Log.d(TAG, "openSerialQr"); |
|
|
|
openQrSerialPort(); |
|
|
|
while (isQrRuning && null != serialPortQr) { |
|
|
|
if (serialPortQr.mFileInputStream == null) return; |
|
|
|
int size = 0; |
|
|
|
int s = 0; |
|
|
|
try { |
|
|
|
s = serialPortQr.mFileInputStream.available(); |
|
|
|
} catch (IOException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (s > 0) { |
|
|
|
byte[] buffer = new byte[s]; |
|
|
|
try { |
|
|
|
size = serialPortQr.mFileInputStream.read(buffer); |
|
|
|
} catch (IOException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (size > 0) { |
|
|
|
final String qr = new String(buffer); |
|
|
|
Log.d(TAG, "qr data:" + qr); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
qrThread.start(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 打开二维码串口 |
|
|
|
*/ |
|
|
|
private void openQrSerialPort() { |
|
|
|
try { |
|
|
|
serialPortQr = new SerialPortManager(); |
|
|
|
boolean success = serialPortQr.openSerialPort(new File("/dev/ttyS7"), 9600); |
|
|
|
if (success) { |
|
|
|
Log.d(TAG, "QR serial port opened successfully"); |
|
|
|
} else { |
|
|
|
Log.e(TAG, "Failed to open QR serial port"); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |