工作區設定檔(profile)
換一塊板子、換一個專案,就要重新掛載、重設監看與觸發、排面板、載入暫存器定義檔。
**設定檔(profile)**把這整套工作區存成一個具名的 .ini 檔,之後一個指令或一次點選就切換回來,
也可以直接複製給同事或產線使用。
設定檔存什麼、不存什麼
存下來的是「這塊板子怎麼測」:
- 四個 Tab 的掛載(位址、位址模式、Plugin、輪詢週期、每個掛載綁的 Dongle)
- 監看與觸發(含觸發時要執行的
do指令) - 四個象限的面板配置、UART 面板參數、Log 面板的匯流排;視窗版每個面板的版面也一併存下
- 暫存器定義檔(
regdef)的綁定 poll開關、目前的 Tab、預設 Dongle
不存的是「這台機器、這個人的偏好」:指令歷史、主題、字型、Log 等級、視窗位置與最大化狀態、
Plugin 自己的設定([Plugin.*]),以及 PASSWORD 的解鎖狀態(絕不存)。
所以載入設定檔不會換掉你的主題,也不會把別人的字型帶進來。
存檔、載入、列出、刪除
profile save board_a 存成 board_a
profile load board_a 載入 board_a
profile list 列出所有設定檔
profile delete board_a 刪除 board_a(會先確認)視窗版另有選單 ☰ ▸ File ▸ Profile,三個項目與指令一一對應:

- Save profile…:開表單,填名稱(或
.ini的絕對路徑)。同名已存在會再問一次是否覆寫。 - Load profile…:開清單(下圖)。
- Browse…:用檔案對話框挑任意位置的
.ini載入。

選取列的右側有一行摘要:存檔時間、各 Tab 的掛載位址與 Plugin、定義檔檔名,太長會被截斷。
滑鼠單擊只是選取,不會載入(避免誤載);要載入請按 Enter 或 Load 按鈕。
Delete 刪除選到的那份,會再確認一次;Cancel 或 Esc 關閉。
終端機版沒有選單:在指令列打不帶名稱的 profile load,會開出同一份清單,操作相同。

終端機版的存檔只能用指令(profile save)。
存檔的位置是 %USERPROFILE%\.config\nexus_tui\profiles\<名稱>.ini(config.ini 旁邊的 profiles\ 資料夾)。
名稱規則
- 只能用英文字母、數字、底線、句點與減號,最長 32 字元;大小寫視為同名(
Board_A與board_a是同一份)。 - 底線開頭保留給系統(例如
_previous),你不能用它存檔,但可以載入。 - 參數含
\、/或:時視為路徑,副檔名必須是.ini,不套用名稱規則。
載入是「整個取代」
載入不是合併。目前的掛載、監看與觸發會先全部卸載,再照設定檔重建四個 Tab;
視窗版與終端機版的面板版面兩邊都會更新,換另一個執行檔開啟也是新版面。
載入之後的狀態照常寫進 config.ini;設定檔本身不會被自動改動(之後你調整了工作區,要再 profile save 才會更新它)。
- 卸載最久會等 10 秒(讓進行中的 I2C 工作收尾)。這段時間所有指令(包含
quit)都會被拒絕, 訊息是profile load in progress,等載入結束再下即可。 - Lua 腳本、
record錄製或連續觸發執行中,不能載入,會拒絕並說明原因;先停掉它們再載。
載到不對的怎麼退回:_previous
每次載入之前,程式會先自動把目前的工作區存成 _previous。載錯了就:
profile load _previous_previous 每次載入都會被覆寫,所以它只能退回「最近一次載入之前」的狀態。
連載入 _previous 本身也會先把當下的狀態存進 _previous,所以再載一次 _previous 就會切回來(來回切換)。
批次模式不寫 _previous。
警告與錯誤
| 情況 | 結果 |
|---|---|
檔案不存在、讀不到、.ini 解析失敗、檔案版本比程式新、被執行中的工作擋住 | 致命:整個拒絕,什麼都不套用 |
| Dongle 沒插、Plugin 沒安裝、定義檔找不到 | 警告:其餘照常載入,有問題的項目仍保留在設定中,不會被刪掉 |
有警告時,視窗版會跳出一個唯讀的清單列出每一條;終端機版把警告寫進 Log,
指令列回 profile loaded: <名稱> (N warnings, see log)。
分享給同事
- 把
profiles\<名稱>.ini複製過去,放進對方的profiles\資料夾;或放在任何位置,用profile load <完整路徑>載入。 - 設定檔裡的定義檔路徑是你機器上的路徑。載入時依序找:原本的路徑,找不到再找設定檔所在資料夾裡的同名檔。
所以最簡單的分享方式是
.ini與定義檔放在同一個資料夾。兩邊都找不到會列為警告,路徑原樣保留。 - 監看與觸發裡的
do指令字串不會被解析或改寫;其中若寫了你機器上的路徑,要自己改。
profile save <路徑>/profile load <路徑> 的路徑不能含空白(指令列沒有引號語法)。
Browse... 遇到有空白的路徑會自動改用短檔名;若磁碟停用了短檔名仍無法載入,請把檔案移到沒有空白的路徑。
profile save <路徑> 不會覆寫 config.ini,也不會覆寫任何已存在但不是設定檔的檔案,加了 force 也一樣拒絕。
狀態列的 PROFILE 標示
載入或存檔之後,視窗夠寬時,狀態列右側會出現 PROFILE <名稱>,表示目前工作區最後一次載入或存成的是哪一份。
它不會反映載入後有沒有再改過。
不帶名稱的 profile save 會存回這一份(已存在,所以會要求確認覆寫)。
載入 _previous 這類系統保留名稱不會改變這個標示。
(標示的名稱依實際載入或存檔的參數而定;若是用完整路徑,顯示名稱超過 32 字元會被截斷,路徑照常使用。用 Browse... 載入有空白的路徑時,標示可能是短檔名(例如 BOARD_~1)。)
產線與批次模式
兩個執行檔都接受啟動參數 --profile <名稱或路徑>,在 --cmd 或腳本之前先載入:
nexus_tui.exe --batch --profile it6622 --run test.lua- 批次模式只套用到記憶體,不會改寫
config.ini,也不會存_previous。 - 致命錯誤:中止並回傳非
0的 Exit Code。 - 部分失敗:印
WARN:警告後繼續執行。 - 同時給了
--dongle時,設定檔裡的 Dongle 不會套用(印警告);--log-level在載入後仍然有效。 這是為了避免產線指定的硬體或 Log 等級被設定檔換掉。 - 批次模式下
profile save、profile delete遇到確認時必須加force。 - 互動模式的
--profile等同啟動後馬上profile load,會照常寫入config.ini。
Exit Code 的完整規則見指令參考。
常見問題
載入了錯的設定檔怎麼辦?
profile load _previous,一步退回載入前的狀態。
載入後主題、字型沒變? 這是設計:這些屬於你的個人偏好,不存在設定檔裡。
載入後有些面板是空的、或顯示離線? 看警告清單:離線多半是 Dongle 沒插或裝置沒上電;空白面板多半是 Plugin 沒安裝。補上之後再載一次即可,設定都還在。
載入時指令全被拒絕? 載入進行中(最久 10 秒)本來就不接受指令,稍等;結束後恢復。
Lua 腳本跑到一半能換設定檔嗎?
不行,先讓腳本結束(或停掉 record、連續觸發)。
能不能刪掉別人放在共用資料夾的設定檔?
profile delete 只收名稱、不收路徑,要刪路徑上的檔案請用檔案總管。
設定檔會跟著我後來的修改自動更新嗎?
不會。載入是一次性的複製;要更新請重新 profile save。