Cis.Application
Cb -> Camera base
Api 分组名
Api 分组排序
数据库标识
CbCamera 表名
CbCamera 表描述
CbCameraParams 表名
CbCameraParams 表描述
相机表
名称
ip 地址
账号
密码
相机参数 Id
相机参数表
名称
相机类型
sdk 端口
FocusX
FocusY
zoom变化函数
相机参数服务
equal:cameraType,id,isDelete; like:name; between:[startTime,endTime];
equal:cameraType,isDelete; like:name; between:[startTime,endTime];
equal:cameraType,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
Cm -> Camera mark
Api 分组名
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
标签服务
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 分组名
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
更新相机计算参数
添加标签计算参数
删除标签计算参数
是否存在标签计算参数
更新相机计算参数
配置应用所需服务,在该方法中可以添加应用所需要的功能或服务
配置应用请求处理管道
Sys -> System
Api 分组名
Api 分组排序
数据库标识
SysDictType 表名
SysDictType 表描述
SysDataType 表名
SysDataType 表描述
系统字典值表
字典类型Id
值
编码
排序
备注
状态
系统字典类型表
名称
编码
排序
备注
状态
系统字典值服务
equal:sysDictTypeId,code,id,isDelete; between:[startTime,endTime];
equal:sysDictTypeId,code,isDelete; between:[startTime,endTime];
equal:sysDictTypeId,code,isDelete; 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