feat: initial release v0.1.0

- KKTerm-style UI: Activity Rail, Connection Sidebar, Tabbed Workspace
- Serial Port connection (System.IO.Ports)
- SSH connection (SSH.NET, password/key/keyboard-interactive)
- Local Shell via Windows ConPTY (PowerShell/Bash/Cmd)
- VT100/ANSI terminal rendering (owner-drawn, double-buffered)
- TTL script engine: send, sendln, wait, pause, timeout, if/while, messagebox
- Group execution: waitall, sendlnall, sendlngroup (Barrier sync)
- Run All / Run Group toolbar buttons
- SFTP file browser sidebar (SSH.NET SftpClient)
- PDU control via SNMP (pduconnect/pductrl commands)
- Settings: Terminal prefs, Shell config, PDU monitoring
- About page with changelog
- AppSettings persisted to %LocalAppData%\ETTerms\
- Dark theme throughout (KKTerm purple accent)
This commit is contained in:
2026-06-03 17:09:55 +08:00
commit 2bfb2c6575
46 changed files with 5838 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# ETTerms
原生 Windows 終端機工作台(C# .NET 8 WinForms),支援 **SSH****Serial Port** 連線,
並內建從 MyTeraTerm 移植的 **TTL 腳本引擎**做自動化。單機、無雲、無登入系統。
詳細架構見 [ARCHITECTURE.md](ARCHITECTURE.md)。
## 建置 / 執行
```powershell
dotnet build
dotnet run --project src\ETTerms\ETTerms.csproj
```
## TTL 腳本
在任一連線分頁頂部的腳本列按 **▶ Script** 載入 `.ttl` 對該連線執行;左側狀態列即時顯示
執行到的行號與指令,**■ Stop** 可中止。完整語法與範例見
[docs/ttl-script-reference.md](docs/ttl-script-reference.md),範例腳本在 `tools/scripts/`
### 目前支援的指令
| 指令 | 說明 |
|------|------|
| `send '文字'` | 送出文字(不加換行) |
| `sendln '文字'` | 送出文字並附加 `\r\n` |
| `wait '字串'` | 一直等到接收緩衝出現該字串才往下(預設無限等待,可按 Stop 取消);命中後 `result=1` |
| `flushrecv` | 清空接收緩衝區 |
| `pause 秒數` | 暫停 N 秒(可被 Stop 中止) |
| `timeout = 秒數` | 設定 `wait` 逾時秒數;`0`=無限等待,`N>0` 超時會中止腳本並報錯 |
| `if … then` / `elseif … then` / `else` / `endif` | 條件分支(可巢狀) |
| `while …` / `endwhile` | 迴圈(可巢狀,可被 Stop 中止) |
| `名稱 = 值` | 變數指派;支援 `+ - * /` 整數運算與字串;內建變數 `result` |
| `logopen '檔名'` | 開啟 log 檔(覆寫) |
| `logwrite '文字'` | 寫一行到 log |
| `logclose` | 關閉 log(腳本結束自動關閉) |
| `messagebox '訊息'` | 跳出對話框(會顯示在最上層) |
| `; 註解` | 行內註解(`;` 之後到行尾) |
| `:label` | 標籤行(會被略過) |
**條件運算子**`if` / `elseif` / `while`):`>=` `<=` `>` `<` `==` `!=` `=`,或無運算子(非零為真)。
> `pductrl` / `pduconnect`SNMP PDU 控制)屬 Phase 7,目前尚未支援。