跳至內容
測試伺服器
開發伺服器

User-Defined Data#

「使用者自訂資料」相機功能可讓您將使用者自訂的資料儲存至相機中。

使用功能#

運作原理#

您有三種方式可將使用者自訂資料儲存至相機中:

設定使用者自訂值#

相機最多可儲存五個使用者自訂的數值。這些數值可能是您在應用程式中所需的參數(例如:全景影像的光學參數值)。這些數值為 32 位元有號整數,您可以依需求進行設定與讀取。它們僅作為儲存位置,對相機的運作並無影響。

這些數值的名稱是 Value1 設為 Value5.

若要設定自訂值:

  1. 將相機中的 UserDefinedValueSelector 將參數設定為所需的自訂值,例如: Value1.
  2. 請輸入 UserDefinedValue 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。

設定裝置 User ID#

透過 DeviceUserID 透過此參數,您可以為攝影機指派一個自訂名稱。

若要為攝影機指派自訂名稱:

  1. 請輸入名稱: DeviceUserID 表格中顯示 裝置控制 類別。該 DeviceUserID 可以由數字、字母和空格的任意組合構成。

對於 GigE 相機,您可以設定 DeviceUserID 另見《IP Configurator 》中的相關內容。

對於 USB 3.0 攝影機,您必須使用DeviceReset指令重置攝影機,變更設定才能生效。

另請參閱有關其他裝置資訊參數的說明。

將使用者資料儲存為二進位檔案#

您可以在相機上儲存二進位資料(ace 2 系列相機最多約 200 kB)。此資料會以名為「User Data」的獨立檔案形式儲存,並透過《pylon Viewer 》中的「檔案存取」功能進行傳輸。

典型使用者資料的範例:

  • 校準資料
  • 陰影修正資料

將使用者資料上傳至相機#

若要使用 pylon Viewer:

  1. 在「pylon Viewer 」中,開啟您要將使用者資料檔案上傳至的相機。
  2. 在「pylon Viewer 」的「相機」選單中,點選「檔案存取」。
  3. 在「相機檔案」下拉式選單中,選取「使用者資料」。
  4. 點擊「上傳」,然後瀏覽至您要上傳的檔案。該檔案的副檔名必須為*.dll。
  5. 點擊「開啟」。
  6. 關閉「相機檔案存取」對話方塊。

該檔案儲存於您的相機中。

從相機下載使用者資料#

若要使用 pylon Viewer:

  1. 在「pylon Viewer 」中,開啟您要從中下載使用者資料檔案的相機。
  2. 在「pylon Viewer 」的「相機」選單中,點選「檔案存取」。
  3. 在「相機檔案」下拉式選單中,選取「使用者資料」。
  4. 點擊「下載」,瀏覽至您要儲存檔案的目錄,並輸入您想要的檔案名稱,檔案副檔名請設為*.dll。
  5. 按一下 Save。
  6. 關閉「相機檔案存取」對話方塊。

該檔案已下載至指定的目錄中。

範例程式碼#

// 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);
# Select user-defined value 1
camera.UserDefinedValueSelector.Value = "Value1"
# Set the value for the UserDefinedValue parameter
camera.UserDefinedValue.Value = 1000
# Get the value of user-defined value 1
camera.UserDefinedValueSelector.Value = "Value1"
UserValue1 = camera.UserDefinedValue.Value

您也可以 use the pylon Viewer 來輕鬆設定參數。