Skip to Content
進階功能工作區設定檔

工作區設定檔(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,三個項目與指令一一對應:

File 選單展開 Profile 子選單,三個項目 Save profile、Load profile、Browse
File ▸ Profile ▸
  • Save profile…:開表單,填名稱(或 .ini 的絕對路徑)。同名已存在會再問一次是否覆寫。
  • Load profile…:開清單(下圖)。
  • Browse…:用檔案對話框挑任意位置的 .ini 載入。
Profiles 清單列出 board_a 與 board_b,下方有 Load、Delete、Cancel 三顆按鈕
Load profile 清單

選取列的右側有一行摘要:存檔時間、各 Tab 的掛載位址與 Plugin、定義檔檔名,太長會被截斷。 滑鼠單擊只是選取,不會載入(避免誤載);要載入請按 Enter 或 Load 按鈕。 Delete 刪除選到的那份,會再確認一次;Cancel 或 Esc 關閉。

終端機版沒有選單:在指令列打不帶名稱的 profile load,會開出同一份清單,操作相同。

終端機版的 Profiles 清單,與視窗版相同
終端機版的 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)。

分享給同事

  1. 把 profiles\<名稱>.ini 複製過去,放進對方的 profiles\ 資料夾;或放在任何位置,用 profile load <完整路徑> 載入。
  2. 設定檔裡的定義檔路徑是你機器上的路徑。載入時依序找:原本的路徑,找不到再找設定檔所在資料夾裡的同名檔。 所以最簡單的分享方式是 .ini 與定義檔放在同一個資料夾。兩邊都找不到會列為警告,路徑原樣保留。
  3. 監看與觸發裡的 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。

指令語法見指令參考,選單對照見File 選單。