Browse Source

fix test 53 qrscan serialport

dev
MTing 4 days ago
parent
commit
55f25853f9
  1. 26
      app/src/main/java/com/ouxuan/oxface/DebugActivity.java
  2. 31
      app/src/main/res/layout/activity_debug.xml
  3. 78
      lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java

26
app/src/main/java/com/ouxuan/oxface/DebugActivity.java

@ -323,6 +323,15 @@ public class DebugActivity extends Activity {
toggleNetworkEnvironment();
}
});
// 扫码器测试按钮
Button btnTestQrScanner = findViewById(R.id.btnTestQrScanner);
btnTestQrScanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
testQrScanner();
}
});
}
/**
@ -1027,4 +1036,21 @@ public class DebugActivity extends Activity {
showToast("GateAB 485人数测试失败");
}
}
/**
* 测试扫码器功能
*/
private void testQrScanner() {
logMessage("启动扫码器测试...");
try {
com.kongqw.serialportlibrary.SerialPortManager serialPortManager = new com.kongqw.serialportlibrary.SerialPortManager();
serialPortManager.x9_serialport_qr();
logMessage("扫码器测试已启动,请扫描二维码,数据将输出到日志");
showToast("扫码器测试已启动");
} catch (Exception e) {
Log.e(TAG, "启动扫码器测试失败", e);
logMessage("启动扫码器测试失败: " + e.getMessage());
showToast("启动扫码器测试失败");
}
}
}

31
app/src/main/res/layout/activity_debug.xml

@ -419,6 +419,37 @@
</LinearLayout>
<!-- 第十二行按钮 - 新增扫码测试按钮 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="8dp">
<Button
android:id="@+id/btnTestQrScanner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="扫码器测试"
android:layout_marginEnd="4dp"
android:textSize="12sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>

78
lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java

@ -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();
}
}
}
Loading…
Cancel
Save