User-Defined Data#
该功能的使用#
运作原理#
您有三种选项可在相机中存储自定义数据:
配置 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 下拉框中,选择 User Data。
- 点击 Upload 并导航至您要上传的文件。该文件的后缀名必须为 *.dll。
- 单击打开。
- 关闭 Camera File Access 对话框。
该文件已存储在您的相机上。
从相机下载用户数据#
若要使用 pylon Viewer 下载用户数据文件:
- 在 pylon Viewer 中,打开您要从中下载用户数据文件的相机。
- 在 pylon Viewer 的相机菜单中,单击文件访问权限。
- 在 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 轻松设置参数。