远程红外测温检测仪概要设计
1. 需求规定
- 支持红外和可见光视频显示,且具备多路视频设备的扩展性
- 具备报警功能。对发热旅客、携带高温物体、未带口罩或人群过度密集等进行自动报警功能
- 具备鼠标移动测温功能。
- 具备一定的存储能力和数据同步。需要记录历史数据,并提供历史查询分析功能,能够同步本地和服务器历史数据。
- 具备设备管理功能。可添加、修改和删除视频设备。
- 具备系统设置和图像调试功能。主要可以对报警参数、屏蔽区域、黑体区域、图像配置、测温参数、存储位置和存储空间等进行设置。
- 红外设备相关代码作为sdk输出,并提供demo和说明文档。
1.2 运行环境
支持Windows 7以上
1.3 基本设计
1.3.1 设计框架图
1.3.2 设备管理与数据处理
该模块负责管理外围红外摄像设备,设备连接断开、设备添加删除、设备保存查询、数据传输、数据同步、数据转换、数据存储等。
设备连接后处理流程:
如果服务器要求数据同步,还需要将每帧数据上传到服务端。
关闭视频流程:
1.3.3 文件记录
负责历史记录文件的存储和搜索,确保数据正确完整。保存历史视频、历史报警、手动存储的画面等。
1.3.4 数据库
负责各种配置参数、设备信息的存取。
1.3.5 交互界面(HMI)
- 界面设计
界面示意图:
- 功能说明
- 打开/关闭视频
打开视频开始接收红外摄像设备数据,并实时显示视频。关闭视频停止数据接收。 - 拍照
截取当前画面并展示在报警列表当中。 - 语音播报
用语音播报的方式自动提醒,或手动提醒 - 设备管理
设备管理页面会显示数据库中之前已经连过的设备列表。用户可对列表中设备进行删除或修改通信参数等操作。
用户还可以进行搜索设备,对搜索到的新设备可以添加进来。 - 系统设置
系统设置包括报警参数、屏蔽区域、图像校准、测温参数、历史记录等几个方面。设置内容 相关参数 描述 报警设置 是否允许报警、报警温度范围、报警灵敏度 只有不在温度范围内的才报警 屏蔽区域 用户在场景中选择区域,保存后该区域不报警 图形校准 选择可见光和红外光三对配准点进行校准 红外设置 色带选择、调焦、快门补偿 红外光图像设置 可见光设置 焦距、变倍 可见光图像设置 历史记录 报警图片存储路径、视频存储路径、本地存储最大天数 设置历史记录存储路径等,当超过本地存储最大天数将优先上传到服务器,然后删除过期记录 数据库设置 备份、恢复 可对数据库进行备份,如果损害可从备份数据库恢复 - 历史记录
记录视频和报警图片,提供搜索和简单介绍,方便用户分析。 - 鼠标跟踪测温
当鼠标在可见光或红外光画面上移动时实时测量体温。
- 打开/关闭视频
2、接口设计
2.1 对外接口设计
本项目将设备管理和数据处理部分向外提供接口。
参照下方接口
//初始化红外设备
extern "C" ZJTYTech_API int __stdcall ZJTYTech_Init();
//打开红外设备
extern "C" ZJTYTech_API int __stdcall ZJTYTech_Open(int userId, LPDEVICE_INFO pDeviceInfo,PDEVICE_RECEIVEDATA_CALLBACK pReceiveDataCallBack, void *pUserData);
//重连红外设备
extern "C" ZJTYTech_API int __stdcall ZJTYTech_Reconnect(int userId, LPDEVICE_INFO pDeviceInfo);
// 关闭设备
extern "C" ZJTYTech_API void __stdcall ZJTYTech_Close(int userId);
//串口通信
extern "C" ZJTYTech_API void __stdcall ZJTYTech_SerialSend(int userId,DWORD dwCommand, char *lpInBuffer,DWORD dwInBufferSize);
//获取专家菜单
extern "C" ZJTYTech_API void __stdcall ZJTYTech_GetExpertMenu(int userId,LPEXPERTMENU pExpertMenu);
//获取测温参数
extern "C" ZJTYTech_API void __stdcall ZJTYTech_GetMeasureTemptrParam(int userId,LPMEASURETEMPTR pMeasureTemptr,int pageIndex);
// 搜索设备IP地址
extern "C" ZJTYTech_API int __stdcall ZJTYTech_SearchDevice(PDEVICE_SEARCH_CALLBACK pDeviceFindNotify, void *pUserData);
// 停止设备搜索
extern "C" ZJTYTech_API void __stdcall ZJTYTech_StopSearch();
// 修改网络参数
extern "C" ZJTYTech_API int __stdcall ZJTYTech_ModifyNetwork(LPDEVICE_INFO pOldDeviceInfo,LPDEVICE_INFO pNewDeviceInfo, void *pUserData);
// 保存已修改网络参数
extern "C" ZJTYTech_API int __stdcall ZJTYTech_SaveNetwork(LPDEVICE_INFO pNewDeviceInfo , void *pUserData );
// 设置测温参数
extern "C" ZJTYTech_API void __stdcall ZJTYTech_SetMeasureParameter(int iUserId, double dA, double dB, double dC, double dD,int pageIndex);
2.2 内部接口设计
内部模块之间使用。(略)
3、出错处理设计
主要包括两个方面,一是log文件,二是错误提示,即弹出对话框。
流程如下:
提示框分为四个级别:error、warning、info、debug.
info、和debug仅用于调试模式,正式发布时取消。