Cis.Application Cb -> Camera base Api 分组名 CbCameraNode Api 分组排序 CbCamera Api 分组排序 CbCameraParams Api 分组排序 数据库标识 CbCameraNode 表名 CbCameraNode 表描述 CbCamera 表名 CbCamera 表描述 CbCameraParams 表名 CbCameraParams 表描述 相机 BO cbCameraId cbCamera 实体类 cbCameraParams 实体类 相机表 名称 ip 地址 账号 密码 相机参数 Id 相机节点表 组标识 名称 相机 Id 父节点 Id 子节点列表 相机参数表 名称 相机厂商 sdk 端口 相机类型 FocusX FocusY zoom变化函数 相机节点服务 获取树 equal:ParentId(default:0); 相机参数服务 获取实体类 equal:manufactor,type,id,isDelete; like:name; between:[startTime,endTime]; 批量获取实体类 equal:manufactor,type,isDelete; like:name; between:[startTime,endTime]; 批量获取分页实体类 equal:manufactor,type,isDelete; like:name; between:[startTime,endTime]; index,size 相机服务 获取实体类 equal:cbCameraParamsId,id,isDelete; like:ip,name; between:[startTime,endTime]; 批量获取实体类 equal:cbCameraParamsId,isDelete; like:ip,name; between:[startTime,endTime]; 批量获取分页实体类 equal:cbCameraParamsId,isDelete; like:ip,name; between:[startTime,endTime]; index,size 获取实体类 BO 实体类 id 批量获取实体类 BO equal:cbCameraParamsId,isDelete; like:ip,name; between:[startTime,endTime]; Cm -> Camera mark Api 分组名 CmMarkGroup Api 分组排序 CmMarkLabel Api 分组排序 数据库标识 CmMarkGroup 表名 CmMarkGroup 表描述 CmMarkLabel 表名 CmMarkLabel 表描述 标记分组表 名称 排序 备注 标签表 相机 Id 标记组 Id 名称 Pan 坐标 Tilt 坐标 Zoom 坐标 视频宽度 视频高度 画布 left 距离比例 画布 top 距离比例 备注 标记分组服务 获取实体类 equal:id,isDelete; like:name; between:[startTime,endTime]; 批量获取实体类 equal:isDelete; like:name; between:[startTime,endTime]; 批量获取分页实体类 equal:isDelete; like:name; between:[startTime,endTime]; index,size 标签服务 添加实体类 实体类 添加实体类并返回 id 实体类 批量添加实体类 实体类列表 获取实体类 equal:cbCameraId,cmMarkGroupId,id,isDelete; like:name; between:[startTime,endTime]; 批量获取实体类 equal:cbCameraId,cmMarkGroupId,isDelete; like:name; between:[startTime,endTime]; 批量获取分页实体类 equal:cbCameraId,cmMarkGroupId,isDelete; like:name; between:[startTime,endTime]; index,size {cameraId, List(MarkLabelCalcResult)} 初始化线程 刷新所有相机 ptz 有待改善,应设置超时计数机制 https://blog.csdn.net/qq_28368039/article/details/118597396 刷新相机 ptz 刷新所有 markSearcher 刷新 markSearcher CameraId2Ip 字典 CameraIpCounts 字典 CameraPtzInfos 字典 Api 分组名 MarkSearch Api 分组排序 Onvif Api 分组排序 ZLMediaKit Api 分组排序 循环间隔,单位毫秒 超时时间,单位毫秒 相机 sdk 服务类 {ip, ICameraSDK} 相机 sdk 服务接口 注册相机 注销相机 是否存在相机 获取 ptz 获取 ptz 获取 ptz 获取 ptz 获取 ptz 相机计算参数 Camera Id Ptz 信息 FocusX FocusY ZoomVaryExpr 视频宽度 视频高度 标签计算参数 MarkLabel Id Ptz 信息 视频宽度 视频高度 画布 left 距离比例 画布 top 距离比例 标签计算结果 MarkLabel Id true 显示(在当前视频画面里面) false 不显示(不在当前视频画面里面) 画布 left 距离比例 画布 top 距离比例 追踪标签服务接口 激活相机进入运算 解除相机进入运算 是否存在相机进入运算 获取 Searcher 激活标签进入运算 解除标签进入运算 是否存在标签进入运算 获取标签计算结果列表 激活相机进入运算 解除相机进入运算 是否存在相机进入运算 获取 Searcher 激活标签进入运算 解除标签进入运算 是否存在标签进入运算 获取标签计算结果列表 追踪标签服务类 {cbCameraId, MarkSearcherBase} MarkSearcherDict 原子操作锁 MarkSearcherDict 中 MarkLabel 原子操作锁 ActivateSearcher 原子操作 DeactivateSearcher 原子操作 ActivateMarkLabel 原子操作 DeactivateMarkLabel 原子操作 当前相机计算参数 相机当前位置的世界坐标转化为相机坐标矩阵 {markLabelId, MarkLabelCalcParams} {markLabelId, MarkLabelCalcParams} 判断相机是否进行了转动,转动了则需要重新计算世界坐标到相机坐标的转换矩阵 此方法计算在球机zoom值最小的情况下成像矩阵中的 f 本质为获取像元大小 尝试方案1:通过计算的方式来获取 尝试方案2:通过张正友相机标定的方法来生成成像矩阵中的 f 获取将世界坐标系中的点转化为相机坐标系中的点的转换矩阵 获取将相机坐标系中的点转化为世界坐标系中的点的转换矩阵 计算标签位置过程 将Pan值转化为角度 将Tilt转化为角度 根据当前zoom值获取相机矩阵参数 将计算公式存储到数据库,实现动态计算公式 https://github.com/houlongchao/HLC.Expression https://blog.csdn.net/cxb2011/article/details/100837168 https://github.com/zz1231118/Rabbit 更新相机计算参数 添加标签计算参数 删除标签计算参数 是否存在标签计算参数 更新相机计算参数 注册 onvifClient 注册 onvifClient(异步) 注销 onvifClient 是否存在 onvifClient 获取 onvifClient 获取 onvifClient {cameraId, OnvifClient} 虚拟主机 应用名 流id 标签追踪服务 激活 Searcher cbCameraId 解除 Searcher cbCameraId 是否存在 Searcher cbCameraId 激活标签 cbCameraId cmMarkLabelId 解除标签 cbCameraId cmMarkLabelId 是否存在标签 cbCameraId cmMarkLabelId 获取标签计算结果列表 cbCameraId onvif 服务 注册 onvifClient cbCameraId 注销 onvifClient cbCameraId 是否存在 onvifClient cbCameraId 变焦绝对移动 cbCameraId 变焦移动绝对点:[-1,1] 变焦相对移动 cbCameraId 变焦移动相对点:[-1,1] 变焦持续移动 cbCameraId 持续移动方向:[-1,1] 停止变焦 cbCameraId 获取播放视频 URL cbCameraId 获取抓图 URL cbCameraId 获取抓图 Base64 cbCameraId 绝对移动 cbCameraId 水平方向移动绝对点:[-1,1] 垂直方向移动绝对点:[-1,1] 变倍绝对点:[-1,1] 可以理解为移动速度:[0,1],默认 0.1 相对移动 cbCameraId 水平方向移动相对点:[-1,1] 垂直方向移动相对点:[-1,1] 变倍相对点:[-1,1] 移动速度:[0,1],默认 0.1 持续移动 cbCameraId 水平方向移动方向:[-1,1] 垂直方向移动方向:[-1,1] 变倍移动方向:[-1,1] 超时时间,ms 停止移动 cbCameraId zlmediakit 服务 添加码流拉流代理(只支持H264/H265/aac/G711负载) cbCameraId 码流级别[0,2], default:0 关闭拉流代理 cbCameraId 码流级别[0,2], default:0 获取流列表 cbCameraId 码流级别[0,2], default:0 判断直播流是否在线 cbCameraId 码流级别[0,2], default:0 配置应用所需服务,在该方法中可以添加应用所需要的功能或服务 配置应用请求处理管道 Sys -> System Api 分组名 SysDictType Api 分组排序 SysDictData Api 分组排序 数据库标识 SysDictType 表名 SysDictType 表描述 SysDataType 表名 SysDataType 表描述 sysDictTypeId sysDictType 实体类 sysDictData 实体类列表 系统字典值表 字典类型Id 名称 编码 排序 备注 状态 系统字典类型表 名称 编码 排序 备注 状态 系统字典值服务 获取实体类 equal:sysDictTypeId,id,isDelete; like:name,code; between:[startTime,endTime]; 批量获取实体类 equal:sysDictTypeId,isDelete; like:name,code; between:[startTime,endTime]; 批量获取分页实体类 equal:sysDictTypeId,isDelete; like:name,code; between:[startTime,endTime]; index,size 系统字典类型服务 获取实体类 equal:code,id,isDelete; like:name; between:[startTime,endTime]; 批量获取实体类 equal:code,isDelete; like:name; between:[startTime,endTime]; 批量获取分页实体类 equal:code,isDelete; like:name; between:[startTime,endTime]; index,size 获取实体类 BO sys_dict_type code