From 100f4dcea20a32663a07e91525de111f7515eb79 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 21 十一月 2025 17:25:53 +0800
Subject: [PATCH] 可发布版本202517.25
---
src/home/CardMachineUI.java | 66 +++++++++++++++++++++++++++-----
1 files changed, 55 insertions(+), 11 deletions(-)
diff --git a/src/home/CardMachineUI.java b/src/home/CardMachineUI.java
index 63c01cd..caa3f4a 100644
--- a/src/home/CardMachineUI.java
+++ b/src/home/CardMachineUI.java
@@ -13,7 +13,6 @@
import xitongshezhi.AdminLoginDialog;
import xitongshezhi.CardPickupDialog;
import xitongshezhi.ConfigSet;
-import xitongshezhi.Fkj;
import chuankou.SerialPortService;
import chuankou.Sendmsg;
@@ -77,9 +76,12 @@
private JPanel commFaultPanel;
public CardMachineUI() {
- try {
+ try {
// 鍏堝垵濮嬪寲绯荤粺閰嶇疆鍜岀粍浠�
initializeSystem();
+
+ // 鍒濆鍖栦覆鍙hВ鏋愬櫒
+ initializeSerialParser();
// 鐒跺悗鍒濆鍖朥I
initializeUI();
@@ -110,7 +112,8 @@
if (serialConnected && lunxun.isPolling() && lunxun.isPaused()) {
// 鍙湁鍦ㄤ笉鍦ㄨ缃〉闈㈡椂鎵嶈嚜鍔ㄦ仮澶�
if (!isInConfigPage()) {
- lunxun.resumePolling();
+// lunxun.resumePolling();
+// System.out.println("灏濊瘯鑷姩鍚姩杞鍔熻兘");
}
}
});
@@ -171,7 +174,7 @@
}
private void initializeUI() {
- setTitle("UWB浜哄憳瀹氫綅鍗″彂鍗℃満绠$悊绯荤粺");
+ setTitle("鏅鸿兘浜鸿劯鍙戝崱鏈虹鐞嗙郴缁�");
setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
@@ -288,8 +291,9 @@
refreshBtn.addActionListener(e -> {
updateCardSlotsDisplay();
updateStatistics();
+ lunxun.resumePolling();
JOptionPane.showMessageDialog(CardMachineUI.this,
- "鎵嬪姩鍒锋柊瀹屾垚锛屽叡鍒锋柊 " + TOTAL_SLOTS + " 涓崱妲�",
+ "鎵嬪姩鍒锋柊瀹屾垚锛屽惎鍔ㄨ疆璇紝鍏卞埛鏂� " + TOTAL_SLOTS + " 涓崱妲�",
"鍒锋柊瀹屾垚", JOptionPane.INFORMATION_MESSAGE);
});
@@ -586,7 +590,7 @@
if (pickupSuccess) {
// 鍙栧崱鎴愬姛锛岃皟鐢╟hanggehaska鏂规硶鏀瑰彉鍗℃Ы灞炴��
- SlotManager.changgehaska(slotId, "1"); // "1"琛ㄧず绠$悊鍛樻搷浣�
+ SlotManager.changgehaska(slotId,1); // "1"琛ㄧず绠$悊鍛樻搷浣�
//System.out.println("鍗℃Ы " + slotId + " 鍙栧崱鎴愬姛锛屽凡鏇存柊鍗℃Ы鐘舵��");
}
}
@@ -796,12 +800,15 @@
/**
* 鍚姩UI鍒锋柊瀹氭椂鍣� - 姣�3绉掑埛鏂颁竴娆�
*/
+ // 鍦╯tartUIUpdates()鏂规硶涓皟鐢�
private void startUIUpdates() {
- uiUpdateTimer = new Timer(3000, e -> {
- updateCardSlotsDisplay();
- updateStatistics();
- });
- uiUpdateTimer.start();
+ uiUpdateTimer = new Timer(3000, e -> {
+ ensurePollingRunning(); // 纭繚杞杩愯
+ ensureSerialParserRunning(); // 纭繚涓插彛瑙f瀽鍣ㄨ繍琛�
+ updateCardSlotsDisplay();
+ updateStatistics();
+ });
+ uiUpdateTimer.start();
}
/**
@@ -829,5 +836,42 @@
public SlotManager getSlotManager() {
return slotManager;
}
+
+ /**
+ * 妫�鏌ュ苟纭繚杞鏌ヨ姝e父杩愯
+ */
+ private void ensurePollingRunning() {
+ if (!lunxun.isPolling() && lunxun.checkSerialConnection()) {
+ // 濡傛灉杞鏈繍琛屼絾涓插彛宸茶繛鎺ワ紝鑷姩鍚姩杞
+ boolean started = lunxun.startPolling();
+ if (started) {
+ System.out.println("妫�娴嬪埌杞鏈繍琛岋紝宸茶嚜鍔ㄥ惎鍔�");
+ }
+ }
+ }
+
+ /**
+ * 纭繚涓插彛瑙f瀽鍣ㄦ甯歌繍琛�
+ */
+ private void ensureSerialParserRunning() {
+ // 濡傛灉涓插彛瑙f瀽鍣ㄦ湭杩愯浣嗕覆鍙e凡杩炴帴锛岃嚜鍔ㄥ惎鍔�
+ if (serialProtocolParser != null && !serialProtocolParser.isRunning() && lunxun.checkSerialConnection()) {
+ serialProtocolParser.start();
+ //System.out.println("妫�娴嬪埌涓插彛瑙f瀽鍣ㄦ湭杩愯锛屽凡鑷姩鍚姩");
+ }
+ }
+
+ /**
+ * 鍒濆鍖栦覆鍙hВ鏋愬櫒
+ */
+ private void initializeSerialParser() {
+ try {
+ serialProtocolParser = new SerialProtocolParser();
+ serialProtocolParser.start();
+ //System.out.println("涓插彛鍗忚瑙f瀽鍣ㄥ凡鍚姩");
+ } catch (Exception e) {
+ System.err.println("鍒濆鍖栦覆鍙hВ鏋愬櫒澶辫触: " + e.getMessage());
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3