13.1.14. 第三方儲存庫#
IDE 隨附 OpenMV 自己的開發板、韌體、範例、機器學習模型和編輯器存根,但它也可以載入來自其他公司的相同類型的內容 - 合作夥伴建立的開發板、在其上運行的韌體、為其調整的範例和模型,以及韌體添加的 API 的程式碼完成。這些內容以 third-party repositories 的形式到達:IDE 與自己的內容合併並保持最新的內容資料夾。
此頁面有兩個受眾。其中大部分是供安裝和管理其他人發布的儲存庫的人使用的。最後一部分,authoring a repository,用於供應商建置。
13.1.14.1. 第三方儲存庫頁面#
一切都透過編輯 → 首選項 → OpenMV → 第三方儲存庫進行管理。表格列出了每個已安裝的儲存庫,以及每個儲存庫的顯示名稱、短 ID(無論是 Built-in 或 User)、它提供的每種內容的已安裝版本(韌體、範例、模型、存根)以及它更新的 URL。
Built-in 表示儲存庫由供應商提供的安裝程式放置到應用程式自己的目錄中,就像驅動程式套件將檔案新增至程式一樣。 User 表示您自己透過 URL 安裝了它。唯一的實際區別是您無法從 IDE 中刪除內建儲存庫——它是透過卸載放置在其中的任何內容來刪除的——因此「刪除」按鈕對其停用。
13.1.14.2. 安裝儲存庫#
從 URL 安裝會詢問儲存庫的 config.json(供應商發布的小清單檔案)的位址,並安裝它指向的所有內容。貼上供應商給您的 URL; IDE 下載清單,取得韌體、範例、模型和它列出的存根,並驗證每個下載。安裝、刪除和更新儲存庫都會在重新啟動後生效,因此 IDE 會在安裝完成後重新啟動。
供應商還可以將儲存庫作為安裝程式分發,直接將其放入應用程式目錄中,在這種情況下,它在您第一次開啟頁面時僅顯示為 Built-in 行 - 無需安裝任何內容。
13.1.14.3. 保持儲存庫更新#
每次 IDE 啟動時都會檢查帶有更新 URL 的儲存庫。當有更新的內容可用時,IDE 會告訴您什麼 - 列出每個儲存庫和涉及的版本 - 並提供安裝它,所有這些都在一個提示中完成。檢查更新按需運行相同的檢查。
13.1.14.4. 優先權和覆蓋#
儲存庫是一個有序列表,最高優先權位於頂部,上移和下移會對所選儲存庫重新排序。只有當兩個來源提供 same 事物時,順序才重要:具有相同 USB 識別碼的板,或具有相同名稱的範例、模型或存根。當這種情況發生時,更高的條目會獲勝,並且每個儲存庫都會勝過 OpenMV 的內建內容。這是經過深思熟慮的——供應商為共享 OpenMV 板 USB 標識符的板提供自己的固件,替換 IDE 為其提供的庫存固件,或者用為其硬件編寫的示例替換庫存示例。
因為覆蓋會默默地改變熟悉名稱的功能,所以頁面永遠不會隱藏它。覆蓋警告面板列出了每個有效的覆蓋範圍——哪個存儲庫的板、示例、模型或存根正在覆蓋哪個——並且相同的列表在第一次看到存儲庫時作為訊息出現一次。如果某個板子、範例或模型的行為不符合 OpenMV 文件所描述的方式,那麼首先要查看此面板。
13.1.14.5. 儲存庫提供什麼#
這四種內容分別出現在 IDE 中的常用位置,因此安裝儲存庫後,就沒有什麼新內容要學習了:
Boards and firmware. 儲存庫的板的行為與 OpenMV 板完全相同 - 它在連接時被識別,其類型顯示在狀態列中,並且其韌體透過 IDE 更新,包括安裝最新開發版本路徑。參見韌體更新與復原。
Examples. 存储库的示例出现在“文件”→“示例”中,并合并到类别树中:供应商与 OpenMV 类别命名相同的类别中的示例位于 OpenMV 类别旁边,新类别成为其自己的子菜单。像任何示例一样,它们会被过滤到它们支持的板。參見指令碼、範例與文件資料夾。
Models. 儲存庫的模型出現在 Model Zoo 中,並以相同的方式合併到瀏覽器樹中,並帶有供應商自己的描述。
Stubs. 儲存庫可以傳送
.pyi存根文件,因此 editor 為其韌體添加的功能提供補全、簽章和文件 - 與 OpenMV 自己的模組以及供應商的自訂 API 獲得的補全相同。