使用者自訂資料#
使用此功能#
運作原理#
您有三個選項可用於在相機中儲存使用者定義的資料:
配置 User-Defined Values#
相機最多可儲存五個使用者定義的值。這些可以是您的應用程式可能需要的值(例如用於全景影像的光學參數值)。這些值是 32 位元帶號整數值,您可以根據需要進行設定和取得。它們作為儲存位置,對相機的運作沒有任何影響。
這些值的名稱為 Value1 設定為 Value5.
若要設定使用者定義的值:
- 將
UserDefinedValueSelector參數設為所需的使用者定義值,例如Value1. - 輸入
UserDefinedValue參數的值。
設定裝置使用者 ID#
透過 DeviceUserID 參數,您可以為相機指派使用者定義的名稱。
若要為相機指派使用者定義的名稱:
- 輸入名稱以供
DeviceUserID資料夾內的 Device Control 類別。此DeviceUserID可由數字、字母和空格的任意組合組成。
對於 GigE 相機,您可以設定 DeviceUserID 同樣也可以在 pylon IP Configurator 中進行。
在 USB 3.0 相機上,您必須使用 DeviceReset 命令重設相機,變更才會生效。
另請參閱關於其他 device information parameters 的資訊。
將使用者資料儲存為二進位檔案#
您可以在相機上儲存二進位資料(在 ace 2 相機上最高可達約 200 kB)。此資料會儲存為名為 User Data 的獨立檔案,並使用 pylon Viewer 中的 File Access 功能進行傳輸。
典型使用者資料的範例:
- 校正資料
- Shading Correction 資料
將使用者資料上傳至相機#
若要使用 pylon Viewer 上傳使用者資料檔案:
- 在 pylon Viewer 中,開啟您要上傳使用者資料檔案的相機。
- 在 pylon Viewer 的 Camera 功能表中,按一下 File Access。
- 在 Camera File 下拉方塊中,選取 User Data。
- 按一下 Upload 並瀏覽至您要上傳的檔案。該檔案的副檔名必須為 *.dll。
- 按一下 Open。
- 關閉 Camera File Access 對話方塊。
檔案已儲存至您的相機。
從相機下載使用者資料#
若要使用 pylon Viewer 下載使用者資料檔案:
- 在 pylon Viewer 中,開啟您要下載使用者資料檔案的相機。
- 在 pylon Viewer 的 Camera 功能表中,按一下 File Access。
- 在 Camera File 下拉方塊中,選取 User Data。
- 按一下 Download,瀏覽至您要儲存檔案的目錄,然後輸入所需的檔名以及副檔名 *.dll。
- 按一下 Save。
- 關閉 Camera File Access 對話方塊。
檔案已下載至指定的目錄。
相關功能#
範例程式碼#
// 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);
您也可以使用 pylon Viewer 來輕鬆設定參數。