如题,听说灵闪3.9中新增了可配置的相机库参数读写屏蔽通路,那是个啥
当前相机库可以对每个参数进行获取/设置,所有参数均允许读写。但在部分项目场景下,不希望相机库根据自身默认逻辑对某些参数进行读写(尤其是写操作),而是希望相机以配置文件为核心进行工作。
由于每个参数是否允许读写都可能需要动态调整,写在代码中并不合适,而且参数数量较多,逐个开放控制接口过于臃肿,因此采用配置文件驱动的访问控制方案。
配置文件需要控制模式(config_rw_ctrl_mode)、读取参数列表(read_config_list)和写入参数列表(write_config_list)三个组成:
| 值 | 含义 | 行为 |
|---|---|---|
| 0 | 不限制(默认) | 所有参数正常读写 |
| 1 | 白名单(仅允许) | 只允许列表中的参数读写,其余阻止 |
| 2 | 黑名单(禁止) | 列表中的参数被组织读写,其余正常 |
| 字段 | 类型 | 说明 |
|---|---|---|
| config_rw_ctrl_mode | string("0"/"1"/"2"),其余按照 "0" 处理 | 控制模式 |
| read_config_list | string 数组 | 受控的读参数属性名列表 |
| write_config_list | string 数组 | 受控的写参数属性名列表 |
举个例子:禁止外部修改触发模式和像素格式,只允许读取宽高(白名单模式):
{
"config_rw_ctrl_mode": "1",
"read_config_list": ["Width", "Height"],
"write_config_list": []
}
仅 Width、Height 的读操作被允许,所有写操作和其他读操作均被阻止。
配置文件与DLL位于同一目录,文件名与DLL完全相同,后缀替换成Json
plugins/
├── lpcCameraVirtual.dll
├── lpcCameraVirtual.json ← 对应配置文件
├── lpcCameraHik.dll
└── lpcCameraHik.json