跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

用户自定义数据#

使用 User-Defined Data camera feature 可以在相机中存储用户自定义数据。

该功能的使用#

运作原理#

您有三种选项可在相机中存储用户自定义数据:

配置 User-Defined Values#

相机最多可以存储五个用户定义的值,它们可以是您的应用可能需要的值(例如,全景图像的光学参数值)。这些值是您可以根据需要设置和获取的 32 位有符号整数值。它们充当存储位置,对相机的操作没有影响。

这些值的名称为 Value1 变为 Value5.

要配置用户定义的值:

  1. 设置 UserDefinedValueSelector 参数设置为所需的用户自定义值,例如 Value1.
  2. 输入所需的 UserDefinedValue 参数。

设置设备用户 ID#

通过使用 DeviceUserID 参数,您可以为相机指定一个用户自定义名称。

要为相机指定用户自定义名称:

  1. 为 DeviceUserID 表格中显示 Device Control 类别输入名称。该 DeviceUserID 可以由数字、字母和空格的任意组合组成。

对于 GigE 相机,您也可以在 DeviceUserID 中设置 IP Configurator。

对于 USB 3.0 相机,您必须使用 DeviceReset 命令重置相机,更改才能生效。

另请参见有关其他 device information parameters 的信息。

将用户数据存储为二进制文件#

您可以在相机上存储二进制数据(在 ace 2 相机上最高约为 200 kB)。该数据作为名为 User Data 的独立文件进行保存,并通过 pylon Viewer 中的 File Access 功能进行传输。

典型用户数据的示例:

  • 标定数据
  • Shading Correction 数据

将 User Data 上传至相机#

要使用 pylon Viewer 上传用户数据文件:

  1. 在 pylon Viewer 中,打开要上传用户数据文件的相机。
  2. 在 pylon Viewer 的相机菜单中,单击文件访问权限。
  3. 在 Camera File 下拉框中,选择 User Data。
  4. 单击 Upload 并浏览找到要上传的文件。该文件的扩展名必须为 *.dll。
  5. 单击打开。
  6. 关闭相机文件访问对话框。

该文件存储在您的相机上。

从相机下载用户数据#

要使用 pylon Viewer 下载用户数据文件,请执行以下操作:

  1. 在 pylon Viewer 中,打开您要从中下载用户数据文件的相机。
  2. 在 pylon Viewer 的相机菜单中,单击文件访问权限。
  3. 在 Camera File 下拉框中,选择 User Data。
  4. 单击 Download,导航到要保存文件的目录,然后输入所需的带文件后缀 *.dll 的文件名。
  5. 点击保存。
  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

您也可以使用 pylon Viewer 轻松设置参数。