Go to file
sky121113 0637f71e34 [FIX] 優化機台鎖定防護流程與遞增版本號
1. 遞增修補版號 verPatch 至 67 以落實機台 OTA 更新規範。
2. 於 FontendActivity 的 onCreate 流程新增機台鎖定狀態檢查,若鎖定則強制跳轉至 MaintenanceActivity 並清除 Activity 棧。
3. 修正 MqttService 的鎖定命令跳轉旗標,改用 Intent.FLAG_ACTIVITY_CLEAR_TASK 確保舊 Activity 棧被完整清理。
4. 移除 AppUtils 中未使用的 MqttManager 引用。
2026-06-04 16:07:31 +08:00
.agents [FIX] 優化機台鎖定防護流程與遞增版本號 2026-06-04 16:07:31 +08:00
.vscode [FEAT] 新增遠端 MQTT 應用程式 OTA 更新功能與雙版號動態計算機制 2026-05-22 16:04:52 +08:00
app [FIX] 優化機台鎖定防護流程與遞增版本號 2026-06-04 16:07:31 +08:00
gradle [FEAT] 實作遠端更新商品指令與圖片顯示優化 2026-05-14 11:13:42 +08:00
.gitignore [DOCS] 更新忽略設定以過濾本地測試資料庫 2026-05-27 17:38:45 +08:00
AGENTS.md [FIX] 優化機台鎖定防護流程與遞增版本號 2026-06-04 16:07:31 +08:00
build_log.txt [FIX] 修復廣告同步導致的 Activity 銷毀崩潰與局部廣告清空失效問題 2026-05-13 17:06:17 +08:00
build.gradle refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
gradle.properties refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
gradlew [FIX] 修復 Star-Cloud 管理員登入流程與 ApiKey 持久化機制 2026-05-06 17:53:37 +08:00
gradlew.bat refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
README.md [DOCS] 更新開發歷史紀錄 2026-05-20 13:36:43 +08:00
rockchip-SX-F4-Android-7.1.2_2025-01-13_172057.logcat refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
settings.gradle refactor: move project files to root and cleanup structure 2026-05-06 11:13:45 +08:00
VMC-上位机_V3.2.1_全部指令(带插图).doc [FEAT] 整合 MQTT 交易結案邏輯與優化 NFC 生命週期管理 2026-05-11 17:16:18 +08:00

1-2-1版本修改

  1. 修改HandlerAbstract中的start方法
  • 問題不在於 Handler 本身壞掉,而是 start() 方法設計成「修改類別變數後 post 自己」。在多執行緒環境(串口讀取 vs UI 顯示)下,這種寫法會導致參數被後來的呼叫覆蓋,導致前面的指令消失。
  • 修改成原來start的方法變成send的方法
  1. 修改成無多國語版本

2025/12/27 1.修改貨道管理跟後台數量對上問題 -> 確認這個問題的設計,目前要修改的話,只能由後台這邊增加判斷 2.修改通行碼、輸入統編及支付方法頁面尺寸可以在Android12系統上顯示

1-1-2版本修改

- 新增取貨口門未關閉判斷 -> RecyclerDialogBuyListAdpter 這裡

- 修改取貨碼太久出貨問題 -> FontendActivity 及 HomeActivity 每半小時下位機連線這一段要備註掉

- 修改若原本是要用手動輸入載具,但後來改用掃描載具的方式,就自動將原來手動輸入的畫面關閉 -> 修改InvoiceBarcodeDialog

2026/02/06 1.修改取貨碼判斷取貨口有東西的功能

2026/02/09 S_12_XY_U_Standard_10_04_R 1.新增現金模組功能50元硬幣判斷 1)兩個地方要修改第一個是在CashPayDialog.java的297行由0D13改成0D14第二個是在719行0D+1x的最後面由3改成4。 2)50 元硬幣的信號判定由原來的08 53 改成 08 54 在284行 2.修改現金模組由CheckoutCashDialog 改成 CashPayDialog ,其他對應的程式也要跟著修改

2026/02/12 修改S_12_XY_U_Standard_10_05_R 1.商品名稱失敗 -> 修改 RecyclerDialogBuyListAdpter 中的 79 行,新增 holder.binding.textProductName.setText(buyProduct.getProduct().getProductName()); 2.後台頁面要進到銷售頁面時判斷導航列的動作在Android 12 判斷是失效的 -> 修改完成主要在MainActivity這支程式 主要變更是下面這一段方法 public boolean isNavigationReallyHidden() { WindowInsetsCompat insets = ViewCompat.getRootWindowInsets(binding.main); if (insets == null) return false; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { // Android 10+ (含 12): 使用 SystemGestures 判斷 // 若 Ges.bottom > 0代表是「自動隱藏/全螢幕」模式 (可滑出),不允許通過 // 若 Ges.bottom == 0代表是「強制隱藏」模式 (不可滑出),允許通過 androidx.core.graphics.Insets gestureInsets = insets.getInsets(WindowInsetsCompat.Type.systemGestures()); return gestureInsets.bottom == 0; } else { // Android 9 及以下: 維持原有的判斷方式 (檢查導航列高度) androidx.core.graphics.Insets navInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()); return navInsets.bottom == 0; } }

2026/03/06 修改 S_12_XY_U_Standard_10_06_R 1.第一個是現金模組 CashPayDialog ,電子開票問題 2.另一個是50元投幣有問題

2026/03/24 修改 S_12_XY_U_Standard_10_07_R 1.修改零錢機指令判斷修改CashPayDialog 這支程式,依照大豐環保的程式碼修改

2026/03/25 問題核心ASCII 字元碰撞 從 Log 中發現,零錢機在初始化或狀態變動時,會發送一串長報文(如 30 43 50 ...,這是設備識別碼 CPI...)。

其中 43 是英文字母 C 的 Hex 碼但在我的舊判定邏輯中43 被視為 50 元投幣代碼。這就是為什麼您投 5 元,卻被誤判為 50 元的原因。 因為誤判金額超過售價,系統會立即進入出貨流程並準備關閉支付介面,導致您覺得「後續投幣沒反應」。 修復方案:雙重過濾機制

長度過濾 (Length Filter):真正的投幣事件報文非常短(通常 2-5 字節),而設備識別碼或庫存報告通常很長(> 30 字節)。現在我限制:長度超過 10 個字節的報文,絕對不觸發投幣判定。這能直接過濾掉所有干擾字串。 移除衝突碼:我從掃描清單中移除了 43 與 44 碼,因為這兩個碼在 ASCII 字串中出現頻率極高,極易造成誤判。

2026/03/26 持續修改現金模組判斷問題

完成了 CashPayDialog.java 的全面修復與優化,現在代碼已恢復正常並加入了針對 10/50 元誤判的精準修復:

  1. 修正 10 元誤判為 50 元: 我改寫了 MDB 解析邏輯,現在會精確瞄準報文的 第 2 個位元組,不再會被報文尾巴的校驗碼(例如 54給誤導。這能確保像 68 52 54 這樣的數據會正確識別為 10 元。
  2. 解決連續交易反應慢: 已確保在對話框關閉時會「立即」停止 USB 讀取,讓第二筆交易能秒速接手硬體資源。
  3. 代碼完整性修復: 剛才在修改過程中因工具異常導致的部分代碼錯位與語法錯誤已全數手動導正,您可以放心地進行編譯與測試。

2026/04/23 S_12_XY_U_Standard_-10_08_1_R 版本 1.在後台系統設定新增一個欄位,在掃悠遊卡及一卡通後可以顯示卡片序號 -> ok

2026/05/05 修改 S_12_XY_U_Standard_-10_08_2_R 版本 1.開始改成將網域改為 demo-cloud.setdomains.work 2.ComPort.java: 將 ttyS1 修改為 ttyS7 將 ttyS2 修改為 ttyS6 3. 修正 Star-Cloud 管理員登入流程與 ApiKey 持久化機制,解決 401 授權與 App 重啟後 ApiKey 未正確還原之問題。

2026/05/07 - 2026/05/11 修改 S_12_XY_U_Standard_-10_08_3_R 版本

  1. MQTT 通訊與維護功能優化:
    • 優化 Android MQTT 通訊架構與商品同步語義。
    • 新增遠端維護鎖定模式與隱藏後門調試機制。
    • 串接刷卡機重啟與遠端結帳 MQTT 指令。
  2. 遠端控制與交易功能實作:
    • 實作遠端找零與遠端出貨功能。
    • 優化 MQTT 連線生命週期與重啟邏輯。
    • 整合 MQTT 交易結案邏輯,並優化 NFC 刷卡生命週期管理。
    • 攔截硬體 Enter 鍵防止外部輸入誤觸,並修正遠端出貨交易紀錄。

2026/05/12 - 2026/05/14 修改 S_12_XY_U_Standard_-10_08_4_R 版本

  1. 遠端出貨與重啟安全防護:
    • 修復遠端出貨流程與對應的 MQTT 指令回傳機制。
    • 統一重啟邏輯安全防護,避免交易過程中意外重啟,並規範 MQTT 交易結案規格。
    • 優化 MQTT 遠端重啟邏輯與機台忙碌狀態的精準判定。
  2. UI 體驗與同步穩定性修復:
    • 優化出貨流程 UI 體驗,並修復雙重倒數計時 Bug。
    • 修正商品圖片同步後,銷售平台未即時更新問題,並改善 Gradle 編譯穩定性。
    • 修復廣告同步導致的 Activity 銷毀崩潰,並修正局部廣告清空失效問題。
  3. 遠端更新與佈局優化:
    • 實作遠端更新商品指令與圖片顯示優化。
    • 修正銷售平台圖片廣告下方的間距顯示問題。
    • 最佳化主介面佈局設計,並實作 MQTT 優雅重啟邏輯。

2026/05/15 - 2026/05/20 修改 S_12_XY_U_Standard_-10_08_5_R 版本 (最新合併至 main)

  1. 連線與環境配置:
    • 實作機器連線環境切換功能,支援 Demo 測試站與正式站切換。
    • 關閉閒置 30 分鐘主動重啟 APP 的舊機制,以維持與 MQTT 連線的長期穩定。
  2. 介面操作與防呆機制優化:
    • 優化貨道資料上傳流程,並在出貨完成後隱藏「取貨確認」按鈕以簡化流程。
    • 優化商品選購之出貨口狀態檢查,並實作防重複點擊的防呆機制。
    • 修復閒置逾時觸發判定,補上對話框關閉時釋放音訊/影片等資源之邏輯,並修正介面繁體中文字串。