| bin/.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| bin/chuankou/Sendmsg.class | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| bin/chushihua/SlotManager.class | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| bin/home/CardMachineUI.class | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/chuankou/Sendmsg.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/chushihua/SlotManager.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/home/CardMachineUI.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/home/Fkj.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/publicway/TimestampUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
bin/.gitignore
@@ -1,7 +1,3 @@ /chuankou/ /chushihua/ /dialog/ /home/ /jiekou/ /publicway/ /xitongshezhi/ /chushihua/ /chuankou/ bin/chuankou/Sendmsg.classBinary files differ
bin/chushihua/SlotManager.classBinary files differ
bin/home/CardMachineUI.classBinary files differ
src/chuankou/Sendmsg.java
@@ -6,11 +6,13 @@ import javax.swing.SwingWorker; import chushihua.SlotManager; import chushihua.lunxun; import dialog.Charulog; import dialog.Dingshidialog; import dialog.Errlog; import publicway.OpenDoor; import publicway.TimestampUtil; import xitongshezhi.SystemDebugDialog; /** @@ -55,6 +57,11 @@ mesBuilder.append(command).append(";type").append(type).append("æ§å¶æå¼").append(slotId).append("æé¨"); String mes = mesBuilder.toString(); // è·åå½åæ¶é´ String currentTime = TimestampUtil.getTimestamp(); // æ´æ°å¡æ§½çæ¶å°å塿令æ¶é´ SlotManager.slotArray[slotId-1].setReceiveCardCommandTime(currentTime); Charulog.logOperation(mes); if (lunxun.DEBUG_ENABLED) { SystemDebugDialog.appendAsciiData(mes); @@ -91,6 +98,11 @@ if (!sent) { Errlog.logOperation("åéæä»¤å°å¡æ§½ " + slotId + " 失败"); }else { // è·åå½åæ¶é´ String currentTime = TimestampUtil.getTimestamp(); // æ´æ°å¡æ§½çæ¶å°å塿令æ¶é´ SlotManager.slotArray[slotId-1].setReceiveCardCommandTime(currentTime); } // é´é100msï¼ä½æ£æ¥æ¯å¦è¢«åæ¶ src/chushihua/SlotManager.java
@@ -55,6 +55,9 @@ private static final String CURRENT_EN = "current"; private static final String FAULT_EN = "fault"; private static final String UPDATE_TIME_EN = "updatetime"; // å¨å±æ§å®ä¹åºåæ·»å 常é private static final String RECEIVE_CARD_COMMAND_TIME = "æ¶å°å塿令æ¶é´"; private static final String RECEIVE_CARD_COMMAND_TIME_EN = "receivecardcommandtime"; /** * æé 彿° - åå§åææå¡æ§½ @@ -81,7 +84,7 @@ slot.setCurrent(UNKNOWN_VALUE); slot.setFault(UNKNOWN_VALUE); slot.setUpdateTime(UNKNOWN_VALUE); slot.setReceiveCardCommandTime(UNKNOWN_VALUE); // æ°å¢ï¼åå§åæ¶å°å塿令æ¶é´ä¸º-1 slotArray[i] = slot; } @@ -165,6 +168,11 @@ case UPDATE_TIME_EN: slot.setUpdateTime(value); break; // å¨ updateSlotAttribute æ¹æ³ç switch è¯å¥ä¸æ·»å æ°å±æ§çå¤ç case RECEIVE_CARD_COMMAND_TIME: case RECEIVE_CARD_COMMAND_TIME_EN: slot.setReceiveCardCommandTime(value); break; default: System.err.println("éè¯¯ï¼æªç¥ç屿§åç§° '" + attributeName + "'"); return false; @@ -417,6 +425,7 @@ slot.setCurrent(UNKNOWN_VALUE); slot.setFault(UNKNOWN_VALUE); slot.setUpdateTime(UNKNOWN_VALUE); slot.setReceiveCardCommandTime(UNKNOWN_VALUE); // æ°å¢ï¼éç½®æ¶å°å塿令æ¶é´ } //System.out.println("ææå¡æ§½ç¶æå·²é置为æªç¥"); } @@ -557,4 +566,51 @@ return true; } /** * è½®è¯¢æ£æ¥å¡æ§½ç¶æï¼å¯¹æªååºç塿§½éæ°åéå¼é¨æä»¤ * @param type æä½ç±»åï¼1-æå¡å¨åå¡ï¼2-管çååå¡ */ public static void pollAndResendOpenCommand(int type) { // 使ç¨èªå®ä¹çæ¶é´æ ¼å¼å¨ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < TOTAL_SLOTS; i++) { Fkj slot = slotArray[i]; int slotId = i + 1; // è·åæ¶å°å塿令æ¶é´åå¡å· String receiveTime = slot.getReceiveCardCommandTime(); String cardNumber = slot.getCardNumber(); // æ£æ¥æ¡ä»¶ï¼æ¶å°æä»¤æ¶é´ä¸ä¸º-1ï¼å¡å·ä¸çäº0000 if (!UNKNOWN_VALUE.equals(receiveTime) && !"0000".equals(cardNumber)) { try { // è§£ææ¶é´å¹¶è®¡ç®æ¶é´å·® LocalDateTime currentTime = LocalDateTime.now(); LocalDateTime receiveDateTime = LocalDateTime.parse(receiveTime, formatter); long timeDiff = java.time.Duration.between(receiveDateTime, currentTime).toMillis(); // 妿æ¶é´å·®å°äº10ç§ï¼éæ°åéå¼é¨æä»¤ if (timeDiff < 10000) { // è°ç¨åéå¼é¨æä»¤æ¹æ³ boolean sendResult = chuankou.Sendmsg.opendoorzhiling(slotId, type); if (sendResult) { System.out.println("éæ°åéå¼é¨æä»¤ - 塿§½" + slotId + "ï¼å¡å·: " + cardNumber + "ï¼æ¶é´å·®: " + timeDiff + "ms"); } // é´é50æ¯«ç§ Thread.sleep(50); } } catch (Exception e) { System.err.println("å¤ç塿§½" + slotId + "æ¶åçé误: " + e.getMessage()); // ç»§ç»å¤çä¸ä¸ä¸ªå¡æ§½ } } } } } src/home/CardMachineUI.java
@@ -855,6 +855,7 @@ ensureSerialParserRunning(); // ç¡®ä¿ä¸²å£è§£æå¨è¿è¡ updateCardSlotsDisplay(); updateStatistics(); SlotManager.pollAndResendOpenCommand(1);//å¢å åå¡ä¸æå忬¡åå¡ }); uiUpdateTimer.start(); } src/home/Fkj.java
@@ -9,6 +9,7 @@ private String current; // çµæµ private String fault; // æ é1æå¡é误ï¼2è¿æµï¼3,鍿§æ éï¼4è¿åï¼5æ¬ åï¼ private String updateTime; // æ´æ°æ¶é´ private String receiveCardCommandTime; // æ¶å°å塿令æ¶é´ // åæçgetter/setteræ¹æ³ public String getSlotNumber() { return slotNumber; } @@ -67,4 +68,12 @@ public void setHasCard(String hasCard) { this.hasCard = hasCard; } // æ°å¢å±æ§çgetter/setteræ¹æ³ public String getReceiveCardCommandTime() { return receiveCardCommandTime; } public void setReceiveCardCommandTime(String receiveCardCommandTime) { this.receiveCardCommandTime = receiveCardCommandTime; } } src/publicway/TimestampUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package publicway; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class TimestampUtil { /** * è·åå¹´ææ¥æ¶åç§æ¯«ç§çæ¶é´æ³ * @return æ¶é´æ³å符串 */ public static String getTimestamp() { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); return now.format(formatter); } }