diff --git a/docs/bigscreen/index.html b/docs/bigscreen/index.html index 1afa3a3..d732103 100644 --- a/docs/bigscreen/index.html +++ b/docs/bigscreen/index.html @@ -6,7 +6,7 @@ Qt编写的可视化大屏系统开发及使用说明
-
  • 0 前言

    0.1 编译说明

    1. 编译后可执行文件在和源码文件夹同级目录的bin文件夹下,配置文件bigscreen.ini文件在可执行文件所在目录下的config文件夹下,数据库文件在可执行文件所在目录下的db文件夹下。
    2. 编译后记得将源码下的file文件夹下的所有文件复制到可执行文件同一目录。
    3. 大屏中用到了视频监控模块,所以还需要拷贝ffmpeg的动态库文件到可执行文件同一目录,编译成功后记得将dll_ffmpeg4(64位的构建套件对应的是dll_ffmpeg4_64)对应目录下的库复制到可执行文件同一目录。如果是linux系统则那些exe和dll都不需要拷贝,那个是ffmpeg对应win的运行库,linux上采用的静态库。
    4. dll+lib 链接: https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA 提取码: ujm7。
    5. 如果程序异常结束并提示 miniblink.dll 文件不存在请先拷贝,你还需要在dll+lib下载地址的地方找到 dll_miniblink.zip 下载并解压出来拷贝文件到可执行文件目录。一般这个是因为你用的mingw编译器,win+qt5.6以上+mingw编译器,没有浏览器控件,采用的miniblink第三方浏览器控件。
    6. 如果是linux系统,记得将ffmpeg目录下的linuxlib 找到你系统的版本位数,将文件夹版本位数去掉,比如你操作系统是ubuntu16.04 64位的,则将linuxlib16.04.64改成linuxlib即可,这些是ffmpeg对应linux系统的静态库。
    7. 当然你也可以选择不启用视频监控模块,只需要将pro中的videoffmpeg改成videoffmpeg1即可。
    8. 目录下的bigscreen.sql为数据库脚本,可以在系统设置中单击初始化数据来执行。bigscreen_mysql.sql脚本为Navicat工具对应的导入脚本。
    9. 如果发现地图打不开,请先确认file目录下的所有文件有没有拷贝过去,还有就是将MapBaiDu::Instance()->setSaveFile(false); 改成true;
    10. 如果是用vs+qt可能报错 error LNK2026: 模块对于 SAFESEH 映像是不安全的。

    0.2 版本说明

    V20210323

    1. 编写开发和使用说明书。
    2. 系统设置增加视频拉伸、视频循环播放等配置参数。
    3. 增加多屏幕支持,自动识别多个屏幕。
    4. 新增2K分辨率布局文件夹。
    5. 增加示例自定义添加多个窗体。
    6. 重新设计配置参数界面,重新拆分配置参数分组,使得更清晰明了。
    7. 新增停靠窗体默认尺寸占比,这样在没有布局文件以及新建布局文件的时候自动按照这个尺寸设置停靠窗体的位置,之前没有布局文件默认是挤在一块的。
    8. 配置文件密码改成密文存储。

    0.3 体验地址

    1. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 文件名:bin_bigscreen.zip。
    2. 国内站点:https://gitee.com/feiyangqingyun
    3. 国际站点:https://github.com/feiyangqingyun
    4. 个人主页:https://blog.csdn.net/feiyangqingyun
    5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun
    6. 在线文档:https://feiyangqingyun.gitee.io/qwidgetdemo/bigscreen

    0.4 功能特点

    1. 采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。
    2. 子控件包括饼图+圆环图+曲线图+柱状图+柱状分组图+横向柱状图+横向柱状分组图+合格率控件+百分比控件+进度控件+设备状态面板+表格数据+地图控件+视频控件等。
    3. 二级界面可以自由拖动悬浮,支持最小化最大化关闭,响应双击自定义标题栏。
    4. 数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。
    5. 采用纯QWidget编写,亲测Qt4.6到Qt5.15任意版本,理论上支持后续其他Qt版本,亲测win+linux+mac+uos+kylin等系统,效果完美,同时还支持嵌入式linux比如树莓派、香橙派、全志、imx6等。
    6. 同时集成了自定义控件+qchart饼图+echart地图功能。
    7. 内置多套配色风格样式(紫色、蓝色、深蓝、黑色),默认紫色,支持任何分辨率。
    8. 可设置标题+目标分辨率+布局方案,启动立即应用。
    9. 可设置主背景颜色+面板颜色+十字线游标颜色。
    10. 可设置多条曲线颜色,没有设置颜色的情况下内置15套精美颜色随机应用。
    11. 可设置标题栏背景颜色+文字颜色。
    12. 可设置曲线图表背景颜色+文字颜色+网格颜色。
    13. 可设置正常颜色+警戒颜色+报警颜色+禁用颜色+百分比进度颜色。
    14. 可分别设置各种字体大小,比如全局+软件名称+标题栏+子标题栏+加粗标签等。
    15. 可设置标题栏高度+表头高度+行高度。
    16. 曲线支持游标+悬停高亮数据点和显示值,柱状图支持顶部(可设置顶端+上部+中间+底部)显示数据,全部自适应计算位置。
    17. 主界面直接鼠标右键切换布局+配色方案+关闭开启某个二级窗体。
    18. 自动记忆所有子窗口的大小和位置,下次启动立即应用。
    19. 动态加载布局方案菜单,可以动态新建布局、恢复布局、保存布局、另存布局等,用户可以制造任意布局。
    20. 二级窗体,双击从主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原,相当于子模块也可以全屏显示作为一个大屏,这样就可以一个大屏拓展出多个子大屏,放大查看子模块的数据详情。
    21. 每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理,后期还可以拓展每个子模块都独立的数据库采集。
    22. 提供系统设置窗口进行整体的配置参数设置。
    23. 支持多屏幕,可以将某个模块剥离出来放在独立的屏幕最大化。
    24. 提供精美炫酷的大屏地图模块,包括静态图片+闪烁效果+迁徙效果+世界地图+区域地图等,可指定点的经纬度坐标,识别单击响应,可以做地图跳转等,每个点都可以不同的颜色和提示信息,功能超牛逼。
    25. 除了提供大屏系统外,还将每个模块都做了独立的模块示例界面,每个模块都可以独立学习使用,里面用到的控件也单独做了控件示例界面,方便学习每个控件如何使用,考虑着实周到。
    26. 超级详细的开发和使用手册,其中包括详细的数据库说明、模块对照图、控件对照图、项目结构代码说明、使用方法等。

     

    1 操作说明

    1.1 使用方法

      系统支持多种数据源,比如数据库采集、http请求、串口通信、网络通信、模拟数据等,为了简化测试过程,默认内置采用的是模拟数据。

    1.1.1 启动窗体

      系统内置了多种启动窗体,默认大屏系统,可以通过鼠标右键菜单进入系统设置,启动窗体下拉框选择进行切换,切换后会自动重启应用,还可选择控件演示、模块演示,在控件演示和模块演示窗体中,左侧是对应子窗体导航,会自动记住最后选中的子界面索引。

    +

  • 0 前言

    0.1 编译说明

    1. 编译后可执行文件在和源码文件夹同级目录的bin文件夹下,配置文件bigscreen.ini文件在可执行文件所在目录下的config文件夹下,数据库文件在可执行文件所在目录下的db文件夹下。
    2. 编译后记得将源码下的file文件夹下的所有文件复制到可执行文件同一目录。
    3. 大屏中用到了视频监控模块,所以还需要拷贝ffmpeg的动态库文件到可执行文件同一目录,编译成功后记得将dll_ffmpeg4(64位的构建套件对应的是dll_ffmpeg4_64)对应目录下的库复制到可执行文件同一目录。如果是linux系统则那些exe和dll都不需要拷贝,那个是ffmpeg对应win的运行库,linux上采用的静态库。
    4. dll+lib 链接: https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA 提取码: ujm7。
    5. 如果程序异常结束并提示 miniblink.dll 文件不存在请先拷贝,你还需要在dll+lib下载地址的地方找到 dll_miniblink.zip 下载并解压出来拷贝文件到可执行文件目录。一般这个是因为你用的mingw编译器,win+qt5.6以上+mingw编译器,没有浏览器控件,采用的miniblink第三方浏览器控件。
    6. 如果是linux系统,记得将ffmpeg目录下的linuxlib 找到你系统的版本位数,将文件夹版本位数去掉,比如你操作系统是ubuntu16.04 64位的,则将linuxlib16.04.64改成linuxlib即可,这些是ffmpeg对应linux系统的静态库。
    7. 当然你也可以选择不启用视频监控模块,只需要将pro中的videoffmpeg改成videoffmpeg1即可。
    8. 目录下的bigscreen.sql为数据库脚本,可以在系统设置中单击初始化数据来执行。bigscreen_mysql.sql脚本为Navicat工具对应的导入脚本。
    9. 如果发现地图打不开,请先确认file目录下的所有文件有没有拷贝过去,还有就是将MapBaiDu::Instance()->setSaveFile(false); 改成true;
    10. 如果是用vs+qt可能报错 error LNK2026: 模块对于 SAFESEH 映像是不安全的。
    • 第一步:打开该项目的“属性页”对话框。
    • 第二步:单击“链接器”文件夹。
    • 第三步:单击“命令行”属性页。
    • 第四步:将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。

    0.2 版本说明

    V20210323

    1. 编写开发和使用说明书。
    2. 系统设置增加视频拉伸、视频循环播放等配置参数。
    3. 增加多屏幕支持,自动识别多个屏幕。
    4. 新增2K分辨率布局文件夹。
    5. 增加示例自定义添加多个窗体。
    6. 重新设计配置参数界面,重新拆分配置参数分组,使得更清晰明了。
    7. 新增停靠窗体默认尺寸占比,这样在没有布局文件以及新建布局文件的时候自动按照这个尺寸设置停靠窗体的位置,之前没有布局文件默认是挤在一块的。
    8. 配置文件密码改成密文存储。

    0.3 体验地址

    1. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 文件名:bin_bigscreen.zip。
    2. 国内站点:https://gitee.com/feiyangqingyun
    3. 国际站点:https://github.com/feiyangqingyun
    4. 个人主页:https://blog.csdn.net/feiyangqingyun
    5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun
    6. 在线文档:https://feiyangqingyun.gitee.io/qwidgetdemo/bigscreen

    0.4 功能特点

    1. 采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。
    2. 子控件包括饼图、圆环图、曲线图、柱状图、柱状分组图、横向柱状图、横向柱状分组图、合格率控件、百分比控件、进度控件、设备状态面板、表格数据、地图控件、视频控件等。
    3. 二级界面可以自由拖动悬浮,支持最小化隐藏、最大化关闭、响应双击自定义标题栏。
    4. 数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。
    5. 采用纯QWidget编写,亲测Qt4.6到Qt6.2任意版本,理论上支持后续其他Qt版本。
    6. 超强跨平台,亲测windows、linux、mac、国产uos、国产银河麒麟kylin等系统,效果完美,同时还支持嵌入式linux比如树莓派、香橙派、全志、imx6等。
    7. 同时集成了自定义控件、qchart饼图、echart地图等功能。
    8. 内置多套配色风格样式(紫色、蓝色、深蓝、黑色),默认紫色,自适应任意分辨率。
    9. 可设置系统标题、目标分辨率、布局方案,启动立即应用。
    10. 可设置主背景颜色、面板颜色、十字线游标颜色等各种颜色。
    11. 可设置多条曲线不同颜色,没有设置颜色的情况下内置多套精美颜色随机应用。
    12. 可设置标题栏背景颜色、文字颜色。
    13. 可设置曲线图表背景颜色、文字颜色、网格颜色。
    14. 可设置正常颜色、警戒颜色、报警颜色、禁用颜色、百分比进度颜色。
    15. 可分别设置各种字体大小,比如全局字体、软件名称、标题栏、子标题栏、加粗标签等。
    16. 可设置标题栏高度、表头高度、行高度。
    17. 曲线支持游标、定位线、悬停高亮数据点、悬停显示值。
    18. 柱状图支持顶部(可设置顶端、上部、中间、底部)显示数据,全部自适应计算位置。
    19. 支持平滑曲线,内置多种平滑曲线算法,还支持面积图平滑。
    20. 面积图填充颜色可选多种规则比如单色透明度填充、透明度渐变填充等。
    21. 数据库支持sqlite、mysql、postgresql、oracle、国产人大金仓等数据库。
    22. 主界面直接鼠标右键切换布局、配色方案、关闭开启某个二级窗体。
    23. 自动记忆所有子窗口的大小和位置,下次启动立即应用。
    24. 动态加载布局方案菜单,可以动态新建布局、恢复布局、保存布局、另存布局等,用户可以制造任意布局。
    25. 二级窗体,双击从主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原。
    26. 子模块也可以全屏显示作为一个大屏,这样就可以一个大屏拓展出多个子大屏,放大查看子模块的数据详情,适用多屏展示。
    27. 每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理,后期还可以拓展每个子模块都独立的数据库采集。
    28. 提供系统设置模块进行整体的配置参数设置,效果立即应用。
    29. 提供精美炫酷的大屏地图模块,包括静态图片、闪烁效果、迁徙效果、世界地图、区域地图等,可指定点的经纬度坐标,识别单击响应,可以做地图跳转等,每个点都可以不同的颜色和提示信息。
    30. 除了提供大屏系统外,还将每个模块都做了独立的模块示例界面,每个模块都可以独立学习使用,里面用到的控件也单独做了控件示例界面,方便学习每个控件如何使用。
    31. 非常详细的开发和使用手册,其中包括数据库说明、模块对照图、控件对照图、项目结构、代码说明(精确到每个类)、演示demo、使用方法等。

    1 操作说明

    1.1 使用方法

      系统支持多种数据源,比如数据库采集、http请求、串口通信、网络通信、模拟数据等,为了简化测试过程,默认内置采用的是模拟数据。

    1.1.1 启动窗体

      系统内置了多种启动窗体,默认大屏系统,可以通过鼠标右键菜单进入系统设置,启动窗体下拉框选择进行切换,切换后会自动重启应用,还可选择控件演示、模块演示,在控件演示和模块演示窗体中,左侧是对应子窗体导航,会自动记住最后选中的子界面索引。

    大屏系统效果图:

    模块演示效果图:

    控件演示效果图:

    1.1.2 系统菜单

      在大屏的顶部中间标题栏或者子模块以外的标题栏,鼠标右键弹出的是系统的菜单,包括布局切换和样式切换等。

    @@ -634,7 +772,7 @@ header, .context-menu, .megamenu-content, footer{ 名称 说明 tag 标识符,用于服务端接收到请求后按照这个标识符返回数据,这里内容填的是具体的表名,方便收到数据直接解析并发送信号到对应模块窗体显示数据。 tableName 要查询的表名。 -columnName 对应表的字段名称集合,用英文逗号隔开。

    名称说明
    tag标识符,用于服务端接收到请求后按照这个标识符返回数据,这里内容填的是具体的表名,方便收到数据直接解析并发送信号到对应模块窗体显示数据。
    tableName要查询的表名。
    columnName对应表的字段名称集合,用英文逗号隔开。

    其他表请求格式完全一致。

    1.3.6.2 返回数据

    {"tag":"t_1_1_mold_prod_total", "result":[{"internal_id":1, "name":"设变", "prod_1":16, "prod_2":12}, {"internal_id":2, "name":"修模", "prod_1":20, "prod_2":25}, {"internal_id":3, "name":"新模", "prod_1":40, "prod_2":25}]} +columnName 对应表的字段名称集合,用英文逗号隔开。

    名称说明
    tag标识符,用于服务端接收到请求后按照这个标识符返回数据,这里内容填的是具体的表名,方便收到数据直接解析并发送信号到对应模块窗体显示数据。
    tableName要查询的表名。
    columnName对应表的字段名称集合,用英文逗号隔开。
    其他表请求格式完全一致。 
    1.3.6.2 返回数据

    {"tag":"t_1_1_mold_prod_total", "result":[{"internal_id":1, "name":"设变", "prod_1":16, "prod_2":12}, {"internal_id":2, "name":"修模", "prod_1":20, "prod_2":25}, {"internal_id":3, "name":"新模", "prod_1":40, "prod_2":25}]} 名称 说明 tag 唯一标识符,用于标识当前接收到哪个请求的回复数据,对方请求的时候会发过来。 result 结果数组,内容按照表格行一行行包装的数据。

    名称说明
    tag唯一标识符,用于标识当前接收到哪个请求的回复数据,对方请求的时候会发过来。
    result结果数组,内容按照表格行一行行包装的数据。
    1.3.6.3 整体流程

      客户端发送请求,指定了唯一标识符+表名+要查询的字段名称集合,服务器收到请求后,解析表名+字段名称集合,从数据库中查询对应的内容组成json字符串返回,带上唯一标识符。 @@ -714,62 +852,21 @@ header, .context-menu, .megamenu-content, footer{ 字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 plan 计划数 INTEGER 11 -achieved 达成数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    plan计划数INTEGER11:------
    achieved达成数INTEGER11:------

    默认数据: -internal_id plan achieved -1 200 110

    2.2.2 零件达成率

    表名:t_2_2_wp_achie_rate +achieved 达成数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    plan计划数INTEGER11:------
    achieved达成数INTEGER11:------
    默认数据:    
    internal_id plan achieved    
    1 200 110    

    2.2.2 零件达成率

    表名:t_2_2_wp_achie_rate 字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 name 名称 VARCHAR 255 不为空 plan 计划数 INTEGER 11 -achieved 达成数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    name名称VARCHAR255不为空
    plan计划数INTEGER11:------
    achieved达成数INTEGER11:------

    默认数据: -internal_id name plan achieved -1 模仁 100 200 -2 镶件 122 100 -3 辅件 300 500 -4 电极 155 200

    2.2.3 零件数

    表名:t_2_3_wp_achie_number +achieved 达成数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    name名称VARCHAR255不为空
    plan计划数INTEGER11:------
    achieved达成数INTEGER11:------
    默认数据:    
    internal_id name plan achieved    
    1 模仁 100 200    
    2 镶件 122 100    
    3 辅件 300 500    
    4 电极 155 200    

    2.2.3 零件数

    表名:t_2_3_wp_achie_number 字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 -wp_achie_number 零件数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    wp_achie_number零件数INTEGER11:------

    默认数据: -Internal_id wp_achie_number -1 1234

    2.2.4 每日工序达成数

    表名:t_2_4_process_achie_number +wp_achie_number 零件数 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    wp_achie_number零件数INTEGER11:------
    默认数据:    
    Internal_id wp_achie_number    
    1 1234    

    2.2.4 每日工序达成数

    表名:t_2_4_process_achie_number 字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 day 日期 INTEGER 2 green 绿色数量 INTEGER 11 blue 蓝色数量 INTEGER 11 -red 红色数量 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    day日期VARCHAR2:------
    green绿色数量INTEGER11:------
    blue蓝色数量INTEGER11:------
    red红色数量INTEGER11:------

    默认数据: -internal_id day green blue red -1 1 20 3 0 -2 2 20 2 0 -3 3 23 3 0 -4 4 32 4 0 -5 5 43 5 0 -6 6 23 3 0 -7 7 44 0 5 -8 8 12 0 5 -9 9 54 0 4 -10 10 42 0 3 -11 11 47 6 0 -12 12 34 4 0 -13 13 25 3 0 -14 14 38 6 0 -15 15 43 0 4 -16 16 56 0 3 -17 17 65 4 0 -18 18 43 5 0 -19 19 34 0 5 -20 20 55 3 0 -21 21 47 6 0 -22 22 34 4 0 -23 23 25 3 0 -24 24 38 6 0 -25 25 43 0 4 -26 26 56 0 3 -27 27 65 4 0 -28 28 43 5 0 -29 29 34 0 5 -30 30 55 3 0 -31 31 42 0 3

    2.3 设备监控模块

    子模块表名对应表: +red 红色数量 INTEGER 11

    字段名中文名类型长度说明
    internal_id序号INTEGER11主键自增
    day日期VARCHAR2:------
    green绿色数量INTEGER11:------
    blue蓝色数量INTEGER11:------
    red红色数量INTEGER11:------
    默认数据:    
    internal_id day green blue red    
    1 1 20 3 0    
    2 2 20 2 0    
    3 3 23 3 0    
    4 4 32 4 0    
    5 5 43 5 0    
    6 6 23 3 0    
    7 7 44 0 5    
    8 8 12 0 5    
    9 9 54 0 4    
    10 10 42 0 3    
    11 11 47 6 0    
    12 12 34 4 0    
    13 13 25 3 0    
    14 14 38 6 0    
    15 15 43 0 4    
    16 16 56 0 3    
    17 17 65 4 0    
    18 18 43 5 0    
    19 19 34 0 5    
    20 20 55 3 0    
    21 21 47 6 0    
    22 22 34 4 0    
    23 23 25 3 0    
    24 24 38 6 0    
    25 25 43 0 4    
    26 26 56 0 3    
    27 27 65 4 0    
    28 28 43 5 0    
    29 29 34 0 5    
    30 30 55 3 0    
    31 31 42 0 3    

    2.3 设备监控模块

    子模块表名对应表: 子模块标题 子模块表名 设备运行状态 t_3_1_device_runtime 稼动率 t_3_2_oee

    子模块标题子模块表名
    设备运行状态t_3_1_device_runtime
    稼动率t_3_2_oee

    2.3.1 设备运行状态

    表名:t_3_1_device_runtime