User-Defined Data#
使用功能#
運作原理#
您有三種方式可將使用者自訂資料儲存至相機中:
設定使用者自訂值#
相機最多可儲存五個使用者自訂的數值。這些數值可能是您在應用程式中所需的參數(例如:全景影像的光學參數值)。這些數值為 32 位元有號整數,您可以依需求進行設定與讀取。它們僅作為儲存位置,對相機的運作並無影響。
這些數值的名稱是 Value1 設為 Value5.
若要設定自訂值:
- 將相機中的
UserDefinedValueSelector將參數設定為所需的自訂值,例如:Value1. - 請輸入
UserDefinedValue參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
設定裝置 User ID#
透過 DeviceUserID 透過此參數,您可以為攝影機指派一個自訂名稱。
若要為攝影機指派自訂名稱:
- 請輸入名稱:
DeviceUserID表格中顯示 裝置控制 類別。該DeviceUserID可以由數字、字母和空格的任意組合構成。
對於 GigE 相機,您可以設定 DeviceUserID 另見《IP Configurator 》中的相關內容。
對於 USB 3.0 攝影機,您必須使用DeviceReset指令重置攝影機,變更設定才能生效。
另請參閱有關其他裝置資訊參數的說明。
將使用者資料儲存為二進位檔案#
您可以在相機上儲存二進位資料(ace 2 系列相機最多約 200 kB)。此資料會以名為「User Data」的獨立檔案形式儲存,並透過《pylon Viewer 》中的「檔案存取」功能進行傳輸。
典型使用者資料的範例:
- 校準資料
- 陰影修正資料
將使用者資料上傳至相機#
若要使用 pylon Viewer:
- 在「pylon Viewer 」中,開啟您要將使用者資料檔案上傳至的相機。
- 在「pylon Viewer 」的「相機」選單中,點選「檔案存取」。
- 在「相機檔案」下拉式選單中,選取「使用者資料」。
- 點擊「上傳」,然後瀏覽至您要上傳的檔案。該檔案的副檔名必須為*.dll。
- 點擊「開啟」。
- 關閉「相機檔案存取」對話方塊。
該檔案儲存於您的相機中。
從相機下載使用者資料#
若要使用 pylon Viewer:
- 在「pylon Viewer 」中,開啟您要從中下載使用者資料檔案的相機。
- 在「pylon Viewer 」的「相機」選單中,點選「檔案存取」。
- 在「相機檔案」下拉式選單中,選取「使用者資料」。
- 點擊「下載」,瀏覽至您要儲存檔案的目錄,並輸入您想要的檔案名稱,檔案副檔名請設為*.dll。
- 按一下 Save。
- 關閉「相機檔案存取」對話方塊。
該檔案已下載至指定的目錄中。
相關功能#
範例程式碼#
// Select user-defined value 1
camera.UserDefinedValueSelector.SetValue(UserDefinedValueSelector_Value1);
// Set the value for the UserDefinedValue parameter
camera.UserDefinedValue.SetValue(1000);
// Get the value of user-defined value 1
camera.UserDefinedValueSelector.SetValue(UserDefinedValueSelector_Value1);
int64_t UserValue1 = camera.UserDefinedValue.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select user-defined value 1
CEnumParameter(nodemap, "UserDefinedValueSelector").SetValue("Value1");
// Set the value for the UserDefinedValue parameter
CIntegerParameter(nodemap, "UserDefinedValue").SetValue(1000);
// Get the value of user-defined value 1
CEnumParameter(nodemap, "UserDefinedValueSelector").SetValue("Value1");
int64_t UserValue1 = CIntegerParameter(nodemap, "UserDefinedValue").GetValue();
// Select user-defined value 1
camera.Parameters[PLCamera.UserDefinedValueSelector].SetValue(PLCamera.UserDefinedValueSelector.Value1);
// Set the value for the UserDefinedValue parameter
camera.Parameters[PLCamera.UserDefinedValue].SetValue(1000);
// Get the value of user-defined value 1
camera.Parameters[PLCamera.UserDefinedValueSelector].SetValue(PLCamera.UserDefinedValueSelector.Value1);
Int64 UserValue1 = camera.Parameters[PLCamera.UserDefinedValue].GetValue();
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
int64_t UserValue1 = 0;
/* Select user-defined value 1 */
errRes = PylonDeviceFeatureFromString(hdev, "UserDefinedValueSelector", "Value1");
CHECK(errRes);
/* Set the value for the UserDefinedValue parameter */
errRes = PylonDeviceSetIntegerFeature(hdev, "UserDefinedValue", 1000);
CHECK(errRes);
/* Get the value of user-defined value 1 */
errRes = PylonDeviceFeatureFromString(hdev, "UserDefinedValueSelector", "Value1");
CHECK(errRes);
errRes = PylonDeviceGetIntegerFeature(hdev, "UserDefinedValue", &UserValue1);
CHECK(errRes);
您也可以 use the pylon Viewer 來輕鬆設定參數。