以读取云台的补光模式参数与设置云台的补光模式参数为例
在这里插入代码片
//读取补光灯参数
DWORD channel = 1;
NET_DVR_BUILTIN_SUPPLEMENTLIGHT supplementlight_config;
memset(&supplementlight_config, 0, sizeof(supplementlight_config));
NET_DVR_STD_CONFIG std_cfg;
memset(&std_cfg, 0, sizeof(std_cfg));
std_cfg.lpOutBuffer = &supplementlight_config;
std_cfg.dwOutSize = sizeof(supplementlight_config);
std_cfg.lpCondBuffer = &channel;
std_cfg.dwCondSize = sizeof(channel);
std_cfg.lpStatusBuffer = nullptr;
std_cfg.dwStatusSize = 0;
if(!NET_DVR_GetSTDConfig(DeviceID,NET_DVR_GET_SUPPLEMENTLIGHT,&std_cfg))
{
QString str = QString(QStringLiteral("获取补光灯参数失败,ErrorCode:%1")).arg(NET_DVR_GetLastError());
LOGUI(KLogWarn,str.toStdString());
}
由于函数NET_DVR_GetSTDConfig()传参如下图:
lUserID 为初始化相机返回的句柄
dwCommand 为配置命令
lpConfigParam 为配置的输入输出参数
因此在获取对应参数时需要对NET_DVR_STD_CONFIG 类型的输入机构体中的lpOutBuffer与dwOutSize进行赋值。
设置相机参数同理,需要对lpInBuffer 与dwInSize参数进行赋值,程序如下
在这里插入代码片
//设置补光灯参数
supplementlight_config.byMode = 1;
supplementlight_config.byBrightnessLimit = 100;
std_cfg.lpInBuffer = &supplementlight_config;
std_cfg.dwInSize = sizeof(supplementlight_config);
if(!NET_DVR_SetSTDConfig(DeviceID,NET_DVR_SET_SUPPLEMENTLIGHT,&std_cfg))
{
QString str = QString(QStringLiteral("设置补光灯参数失败,ErrorCode:%1")).arg(NET_DVR_GetLastError());
LOGUI(KLogWarn,str.toStdString());
}