在 Linux 上以多個實例啟動基於 pylon 的應用程式時可能發生的問題#
在罕見的使用情況下,您可能需要執行應用程式的多個實例來管理多台相機。
如果所有相機均為相同型號、使用相同的韌體版本,且應用程式的所有實例同時啟動,GenICam 將因檔案存取違規而擲回例外狀況。
原因是當使用相同的相機型號和相同的韌體時,將會使用相同的 GenICam 快取檔案名稱。
pylon 用於 Windows 的版本已針對此情況進行保護,但 Linux 版本則否。
因應措施 1#
首先以單一實例啟動應用程式,以將相機的 XML 快取檔案寫入磁碟。一旦特定相機的 GenICam 快取檔案存在於硬碟上,系統將僅授予讀取存取權,且應不再引發例外狀況。
因應措施 2#
如果作業系統安裝在 ROM 上,上述因應措施將無效,因為系統在重新開機後會遺失 XML 快取檔案。
在此情況下,為每個應用程式實例指定個別的 GenICam 快取目錄將可解決此問題,例如:
GENICAM_CACHE_V2_3=/home/$username/Genicam_cache1 ./GrabGENICAM_CACHE_V2_3=/home/$username/Genicam_cache2 ./Grab
資訊
使用 GENICAM_CACHE_V2_3 適用於 pylon 4,以及 GENICAM_CACHE_V3_0 適用於 pylon 5 或更高版本。請確保目標目錄存在,且使用者擁有寫入權限。