From 7610a28042ce2555219e3c6bbd4c2f38e2674ec2 Mon Sep 17 00:00:00 2001 From: accusys Date: Sun, 29 Mar 2026 00:28:29 +0800 Subject: [PATCH] Add Java architecture analysis for migration reference --- README_GUI.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/README_GUI.md b/README_GUI.md index 1ddcd7e..c72140d 100644 --- a/README_GUI.md +++ b/README_GUI.md @@ -134,6 +134,69 @@ nc localhost 8923 {"id":"test","type":"response","status":"success","data":{"controllers":[...]}} ``` +--- + +## Java Source Code Architecture (Reference for Migration) + +### 1. System Architecture + +``` +┌─────────────────────────────────────────────────────────────┐ +│ GUI Client (Swing) │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ +│ │ frmMain │ │ frmSettings │ │ frmCreateArray │ │ +│ └──────────────┘ └──────────────┘ └──────────────────┘ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ +│ │ jpController │ │ dlgServer │ │ dlgDiskInfo │ │ +│ └──────────────┘ └──────────────┘ └──────────────────┘ │ +├─────────────────────────────────────────────────────────────┤ +│ Global Data Layer │ +│ ┌─────────────────────────────────────────────────────┐ │ +│ │ PageDataDB.java (~7300 lines) │ │ +│ └─────────────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────────────────┤ +│ Protocol Layer │ +│ ┌──────────────────┐ ┌──────────────────────────┐ │ +│ │ InBandAPI │ │ SNMP │ │ +│ │ Port 8922 │ │ Port 162/8922 │ │ +│ └──────────────────┘ └──────────────────────────┘ │ +└─────────────────────────────────────────────────────────────┘ +``` + +### 2. In-Band API Protocol (Port 8922) + +**OpCodes:** +| OpCode | Function | +|--------|----------| +| 0x01 | GET_PAGE (read info pages) | +| 0x1D | SEND_PASSWORD (authentication) | +| 0xBC | Unlock | +| 0x1B | Erase RAID | +| 0xCC | Create RAID | +| 0xCE | Set Global Config | +| 0x26 | Commit Config | + +**Page Codes:** +- Page 0: Controller Info +- Page 1: RAID Snapshot +- Page 7: LUN Map Table +- Page 10-14: RAID Info +- Page 16-17: Disk/Slice Names +- Page 20: Array Info +- Page 26: Enclosure Info +- Page 27: Disk List + +### 3. Key Java Files + +| File | Description | +|------|-------------| +| `InBandAPI/SendCmd.java` | TCP communication core | +| `InBandAPI/BasePage.java` | Abstract base for page data | +| `PageDataDB.java` | Global database (~7300 lines) | +| `frmMain.java` | Main window (~318KB) | + +--- + ## License Proprietary - Accusys Inc.