diff --git a/docs/bigscreen/index.html b/docs/bigscreen/index.html index 4d3bc5b..bb085e0 100644 --- a/docs/bigscreen/index.html +++ b/docs/bigscreen/index.html @@ -199,6 +199,7 @@ mark .md-meta { color: rgb(0, 0, 0); } .typora-export-no-collapse-outline .outline-expander::before { content: "" !important; } .typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; } .md-inline-math-container mjx-container { zoom: 0.95; } +mjx-container { break-inside: avoid; } .CodeMirror { height: auto; } @@ -671,11 +672,11 @@ header, .context-menu, .megamenu-content, footer{
V20220417
V20211015
V20210323
系统支持多种数据源,比如数据库采集、http请求、串口通信、网络通信、模拟数据等,为了简化测试过程,默认内置采用的是模拟数据。
系统内置了多种启动窗体,默认大屏系统,可以通过鼠标右键菜单进入系统设置,启动窗体下拉框选择进行切换,切换后会自动重启应用,还可选择控件演示、模块演示,在控件演示和模块演示窗体中,左侧是对应子窗体导航,会自动记住最后选中的子界面索引。 +
V20220718
V20220417
V20211015
V20210323
系统支持多种数据源,比如数据库采集、http请求、串口通信、网络通信、模拟数据等,为了简化测试过程,默认内置采用的是模拟数据。
系统内置了多种启动窗体,默认大屏系统,可以通过鼠标右键菜单进入系统设置,启动窗体下拉框选择进行切换,切换后会自动重启应用,还可选择控件演示、模块演示,在控件演示和模块演示窗体中,左侧是对应子窗体导航,会自动记住最后选中的子界面索引。
在大屏的顶部中间标题栏或者子模块以外的标题栏,鼠标右键弹出的是系统的菜单,包括布局切换和样式切换等。
-
在模块的标题栏,鼠标右键弹出的是模块可视化的菜单,这个是Qt内置生成的,加载了多少个子模块就会生成多少个菜单项,可以对每个模块进行显示隐藏切换。
在弹出的系统菜单选择布局方案,在弹出的二级菜单选择默认已经设置好的布局方案,直接切换即可。
在弹出的系统菜单选择新建布局,在弹出的框中输入布局名称,确认后,自由拖动调整模块位置,打开模块、隐藏模块,之后单击保存布局即可。
在弹出的系统菜单选择配色方案,在弹出的二级菜单选择对应的配色方案,默认有四种:紫色风格、蓝色风格、深蓝风格、黑色风格。
鼠标移动到子模块的标题栏,鼠标按下可以拖动这个模块到任意位置,模块也可以拖动独立位置展示,也可以嵌入到对应布局中,拖动好位置以后自动保存到布局方案,下次启动自动应用。双击模块标题栏可以剥离窗体使之悬浮。
鼠标移动到模块与模块的边缘,鼠标变成调整间距样式,可以左右或者上下拉动,调整好间距以后自动保存到布局方案,下次启动自动应用。
系统设置中的参数,可能会不定期做调整和修改及增加,下面的图示和参数描述未必全部一致,以最新的为准。
参数说明
参数说明
1QStringList listVideoUrl;
2//本地视频文件
3listVideoUrl << "f:/mp5/1.mp4";
4//USB摄像头-默认
5listVideoUrl << "video=USB2.0 PC CAMERA";
6//USB摄像头-指定分辨率和帧率
7listVideoUrl << "video=USB Video Device|1280x720|30";
8//网络摄像机地址-大华
9listVideoUrl << "rtsp://admin:12345@192.168.1.15:554/media/video1";
10//网络摄像机地址-海康
11listVideoUrl << "rtsp://admin:Admin123456@192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_2";
12//网络视频流地址-美国
13listVideoUrl << "http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4";
14//网络视频流地址-中国
15listVideoUrl << "http://vfx.mtime.cn/Video/2019/03/18/mp4/190318231014076505.mp4";
16//网络视频流地址-海康萤石
17listVideoUrl << "https://hls01open.ys7.com/openlive/6e0b2be040a943489ef0b9bb344b96b8.hd.m3u8";
采集间隔设置不用做说明,一看就懂,单位毫秒,可定制每个模块都对应自己的采集方式、数据库、间隔等。
理论上支持Qt支持的所有数据库,和具体程序无关,只要有对应的数据库的动态库和插件库就行,或者支持odbc数据源也可以,程序打通了odbc数据源的通信方式,所以支持各种数据库,可以先自己用对应的数据库工具连接数据库试试,通了数据库正常后在来测试程序。
亲测 Sqlite(Qt内置无需额外动态库)、MySql(高版本Qt需要自行编译插件)、PostgreSQL(开源免费的数据库,很好用)、SqlServer(需要设置ODBC数据源)、kingbase(国产人大金仓数据库,该数据库其实是基于PostgreSQL改的,通过odbc数据源方式测试无误)。
连接测试用来测试当前选择的数据库类型以及数据库信息,是否能连接数据库正常,可以避免数据库不通的情况下用来检测是否信息填写正确。
初始化数据库按钮用来执行sql脚本来生成对应的数据库,部分数据库支持数据库文件不存在的情况下通过sql语句来创建数据库,比如mysql、postgres等就支持直接sql语句新建数据库,有部分数据库可能不支持,需要手动先在数据库管理工具中新建好数据库,然后再来这里执行初始化数据库用来新建表和初始数据。
本系统支持多种工作模式,以便适应各种需求,默认采用随机模拟数据,大屏基础版本也采用此工作模式。
x1void frmModule1::loadPlot1()
2{
3 //对应表名(返回的时候充当唯一标识符flag)和字段名
4 QString tableName = "t_1_1_mold_prod_total";
5 QString columnName = "name,prod_1,prod_2";
6
-
7 //模拟数据采用随机数据 其他采用调用函数接口查询和请求数据
8 if (AppConfig::WorkMode == "timer") {
9 double min = 1, max = 50;
10 vdouble value1, value2;
11 for (int i = 0; i < rowNames1.count(); ++i) {
12 value1 << QUIHelper::getRandValue(min, max);
13 value2 << QUIHelper::getRandValue(min, max);
14 }
15 loadPlot1(lvdouble() << value1 << value2);
16 } else if (AppConfig::WorkMode == "db") {
17 DbData::DbLocal->select(tableName, columnName, true);
18 } else if (AppConfig::WorkMode == "http") {
19 DbData::DbHttp->select(tableName, columnName, true);
20 }
21}
如果工作模式选择的是模拟数据,则采用随机数模拟生成数据并设置。
具体数据库表字段说明参见后面的数据库说明。
如果工作模式选择的是数据库采集,则会自动连接设置的数据库,可以用对应的数据库管理工具连接数据库,打开对应的表,然后更改其中的数据,保存,可看到对应的数据反应到界面上。
系统支持一个系统下的软件远程访问另一个系统下的数据库,比如linux系统或者mac系统远程访问win系统上的mysql数据库,数据库也可以放在云端比如阿里云(亲测无误),只要对应IP和端口可达就行,验证是否可达可以用对应的数据库管理工具连接即可。
理论上odbc的方式支持多种数据库,比如sql server,oracle,postgresql等,所以如果没有插件支持的数据库可以考虑用odbc的方式,odbc也是跨平台的。
如果需要远程访问mysql数据库,mysql数据库需要设置用户 root@% +
在模块的标题栏,鼠标右键弹出的是模块可视化的菜单,这个是Qt内置生成的,加载了多少个子模块就会生成多少个菜单项,可以对每个模块进行显示隐藏切换。
在弹出的系统菜单选择布局方案,在弹出的二级菜单选择默认已经设置好的布局方案,直接切换即可。
在弹出的系统菜单选择新建布局,在弹出的框中输入布局名称,确认后,自由拖动调整模块位置,打开模块、隐藏模块,之后单击保存布局即可。
在弹出的系统菜单选择配色方案,在弹出的二级菜单选择对应的配色方案,默认有四种:紫色风格、蓝色风格、深蓝风格、黑色风格。
鼠标移动到子模块的标题栏,鼠标按下可以拖动这个模块到任意位置,模块也可以拖动独立位置展示,也可以嵌入到对应布局中,拖动好位置以后自动保存到布局方案,下次启动自动应用。双击模块标题栏可以剥离窗体使之悬浮。
鼠标移动到模块与模块的边缘,鼠标变成调整间距样式,可以左右或者上下拉动,调整好间距以后自动保存到布局方案,下次启动自动应用。
系统设置中的参数,可能会不定期做调整和修改及增加,下面的图示和参数描述未必全部一致,以最新的为准。
参数说明
参数说明
1QStringList listVideoUrl;
2//本地视频文件
3listVideoUrl << "f:/mp5/1.mp4";
4//USB摄像头-默认
5listVideoUrl << "video=USB2.0 PC CAMERA";
6//USB摄像头-指定分辨率和帧率
7listVideoUrl << "video=USB Video Device|1280x720|30";
8//网络摄像机地址-大华
9listVideoUrl << "rtsp://admin:12345@192.168.1.15:554/media/video1";
10//网络摄像机地址-海康
11listVideoUrl << "rtsp://admin:Admin123456@192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_2";
12//网络视频流地址-美国
13listVideoUrl << "http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4";
14//网络视频流地址-中国
15listVideoUrl << "http://vfx.mtime.cn/Video/2019/03/18/mp4/190318231014076505.mp4";
16//网络视频流地址-海康萤石
17listVideoUrl << "https://hls01open.ys7.com/openlive/6e0b2be040a943489ef0b9bb344b96b8.hd.m3u8";
采集间隔设置不用做说明,一看就懂,单位毫秒,可定制每个模块都对应自己的采集方式、数据库、间隔等。
理论上支持Qt支持的所有数据库,和具体程序无关,只要有对应的数据库的动态库和插件库就行,或者支持odbc数据源也可以,程序打通了odbc数据源的通信方式,所以支持各种数据库,可以先自己用对应的数据库工具连接数据库试试,通了数据库正常后在来测试程序。
亲测 Sqlite(Qt内置无需额外动态库)、MySql(高版本Qt需要自行编译插件)、PostgreSQL(开源免费的数据库,很好用)、SqlServer(需要设置ODBC数据源)、kingbase(国产人大金仓数据库,该数据库其实是基于PostgreSQL改的,通过odbc数据源方式测试无误)。
连接测试用来测试当前选择的数据库类型以及数据库信息,是否能连接数据库正常,可以避免数据库不通的情况下用来检测是否信息填写正确。
初始化数据库按钮用来执行sql脚本来生成对应的数据库,部分数据库支持数据库文件不存在的情况下通过sql语句来创建数据库,比如mysql、postgres等就支持直接sql语句新建数据库,有部分数据库可能不支持,需要手动先在数据库管理工具中新建好数据库,然后再来这里执行初始化数据库用来新建表和初始数据。
本系统支持多种工作模式,以便适应各种需求,默认采用随机模拟数据,大屏基础版本也采用此工作模式。
xxxxxxxxxx
211void frmModule1::loadPlot1()
2{
3 //对应表名(返回的时候充当唯一标识符flag)和字段名
4 QString tableName = "t_1_1_mold_prod_total";
5 QString columnName = "name,prod_1,prod_2";
6
+
7 //模拟数据采用随机数据 其他采用调用函数接口查询和请求数据
8 if (AppConfig::WorkMode == "timer") {
9 double min = 1, max = 50;
10 vdouble value1, value2;
11 for (int i = 0; i < rowNames1.count(); ++i) {
12 value1 << QUIHelper::getRandValue(min, max);
13 value2 << QUIHelper::getRandValue(min, max);
14 }
15 loadPlot1(lvdouble() << value1 << value2);
16 } else if (AppConfig::WorkMode == "db") {
17 DbData::DbLocal->select(tableName, columnName, true);
18 } else if (AppConfig::WorkMode == "http") {
19 DbData::DbHttp->select(tableName, columnName, true);
20 }
21}
如果工作模式选择的是模拟数据,则采用随机数模拟生成数据并设置。
具体数据库表字段说明参见后面的数据库说明。
如果工作模式选择的是数据库采集,则会自动连接设置的数据库,可以用对应的数据库管理工具连接数据库,打开对应的表,然后更改其中的数据,保存,可看到对应的数据反应到界面上。
系统支持一个系统下的软件远程访问另一个系统下的数据库,比如linux系统或者mac系统远程访问win系统上的mysql数据库,数据库也可以放在云端比如阿里云(亲测无误),只要对应IP和端口可达就行,验证是否可达可以用对应的数据库管理工具连接即可。
理论上odbc的方式支持多种数据库,比如sql server,oracle,postgresql等,所以如果没有插件支持的数据库可以考虑用odbc的方式,odbc也是跨平台的。
如果需要远程访问mysql数据库,mysql数据库需要设置用户 root@% sql server数据库的配置规则,下面的链接只是参考,基本上正常电脑安装好以后都不需要下面的配置。 https://blog.csdn.net/mozhi111/article/details/80281388 @@ -684,7 +685,7 @@ header, .context-menu, .megamenu-content, footer{ https://blog.csdn.net/weixin_36816337/article/details/81739819 人大金仓数据库kingbase,其实就是postgresql数据库改的,如果是WIN10系统建议安装在系统盘以外,不然没有权限,导致奇奇怪怪的问题。
特别提示
需要定制协议,比如RS232、RS485、Modbus、Mqtt等
需要定制协议,比如tcp client、tcp server、udp client、udp server、websocket等。
找到bigscreen可执行文件所在目录下的httpserver文件,双击运行,切换到网络请求服务器页面,回复数据选择文件内容,单击启动服务器,左侧消息栏可以看到实时打印的数据,从json文件读取的数据,实际中可以是从数据库中采集的数据等。网络请求客户端/服务器工具httpserver,也是纯Qt编写的工具。
功能特点
请求地址:http://127.0.0.1:6000 可以自行在系统设置中更改。
其他表请求格式完全一致。 -tag=t_1_1_mold_prod_total&tableName=t_1_1_mold_prod_total&columnName=name,prod_1,prod_2
名称 | 说明 |
---|---|
tag | 标识符,用于服务端接收到请求后按照这个标识符返回数据,这里内容填的是具体的表名,方便收到数据直接解析并发送信号到对应模块窗体显示数据。 |
tableName | 要查询的表名。 |
columnName | 对应表的字段名称集合,用英文逗号隔开。 |
xxxxxxxxxx
191{
2 "tag": "t_1_1_mold_prod_total",
3 "result": [{
4 "internal_id": 1,
5 "name": "设变",
6 "prod_1": 16,
7 "prod_2": 12
8 }, {
9 "internal_id": 2,
10 "name": "修模",
11 "prod_1": 20,
12 "prod_2": 25
13 }, {
14 "internal_id": 3,
15 "name": "新模",
16 "prod_1": 40,
17 "prod_2": 25
18 }]
19}
名称 | 说明 |
---|---|
tag | 唯一标识符,用于标识当前接收到哪个请求的回复数据,对方请求的时候会发过来。 |
result | 结果数组,内容按照表格行一行行包装的数据。 |
客户端发送请求,指定了唯一标识符+表名+要查询的字段名称集合,服务器收到请求后,解析表名+字段名称集合,从数据库中查询对应的内容组成json字符串返回,带上唯一标识符。
具体解析数据在datahttp类中,如果是自定义的表和字段,则需要在datahttp类中的initTable方法自行添加表名和字段名即可,非常方便,一个表只需要增加一行代码。
现在数据采集无论是数据库采集还是网络请求采集,对应的表名和字段名都是写死在代码中,尽管目前已经封装好了可以自行添加表和字段,但是还不够通用,后期打算通过从配置文件读取。
数据库表的设计按照模块的顺序,比如frmmodule1主模块中包括4个子模块,每个子模块都对应一个表,所有表名的前缀是 t_ 以便区分,第一个数字表示主模块编号,第二个数字表示子模块编号。
表名格式如下:
源码目录下的bigscreen.sql为数据库脚本,可以在系统设置中单击初始化数据来执行。 +tag=t_1_1_mold_prod_total&tableName=t_1_1_mold_prod_total&columnName=name,prod_1,prod_2
名称 | 说明 |
---|---|
tag | 标识符,用于服务端接收到请求后按照这个标识符返回数据,这里内容填的是具体的表名,方便收到数据直接解析并发送信号到对应模块窗体显示数据。 |
tableName | 要查询的表名。 |
columnName | 对应表的字段名称集合,用英文逗号隔开。 |
xxxxxxxxxx
191{
2 "tag": "t_1_1_mold_prod_total",
3 "result": [{
4 "internal_id": 1,
5 "name": "设变",
6 "prod_1": 16,
7 "prod_2": 12
8 }, {
9 "internal_id": 2,
10 "name": "修模",
11 "prod_1": 20,
12 "prod_2": 25
13 }, {
14 "internal_id": 3,
15 "name": "新模",
16 "prod_1": 40,
17 "prod_2": 25
18 }]
19}
名称 | 说明 |
---|---|
tag | 唯一标识符,用于标识当前接收到哪个请求的回复数据,对方请求的时候会发过来。 |
result | 结果数组,内容按照表格行一行行包装的数据。 |
客户端发送请求,指定了唯一标识符+表名+要查询的字段名称集合,服务器收到请求后,解析表名+字段名称集合,从数据库中查询对应的内容组成json字符串返回,带上唯一标识符。
具体解析数据在datahttp类中,如果是自定义的表和字段,则需要在datahttp类中的initTable方法自行添加表名和字段名即可,非常方便,一个表只需要增加一行代码。
现在数据采集无论是数据库采集还是网络请求采集,对应的表名和字段名都是写死在代码中,尽管目前已经封装好了可以自行添加表和字段,但是还不够通用,后期打算通过从配置文件读取。
数据库表的设计按照模块的顺序,比如frmmodule1主模块中包括4个子模块,每个子模块都对应一个表,所有表名的前缀是 t_ 以便区分,第一个数字表示主模块编号,第二个数字表示子模块编号。
表名格式如下:
源码目录下的bigscreen.sql为数据库脚本,可以在系统设置中单击初始化数据来执行。 如果是需要对接自己的系统,可能涉及到部分数据不一致的情况,你可以: 第一:尽量用现有的表,现有的表各种各样都有,你找到你类似的往里面填数据就行。 第二:如果没有合适的表,则需要调整对应的模块代码。
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
模具产量 | t_1_1_mold_prod_total |
每月模具产量趋势图 | t_1_2_mold_prod_monthly |
零件产量 | t_1_3_wp_prod_total |
每月零件产量趋势图 | t_1_4_wp_prod_monthly |
表名:t_1_1_mold_prod_total
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
name | 名称 | VARCHAR | 255 | 不为空 |
prod_1 | 系列1 | INTEGER | 11 | |
prod_2 | 系列2 | INTEGER | 11 |
默认数据:
internal_id | name | prod_1 | prod_2 |
---|---|---|---|
1 | 设变 | 14 | 12 |
2 | 修模 | 20 | 25 |
3 | 新模 | 40 | 25 |
表名:t_1_2_mold_prod_monthly
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
year | 年份 | INTEGER | 4 | 不为空 |
month | 月份 | INTEGER | 4 | 不为空 |
prod_1 | 系列1 | INTEGER | 11 | |
prod_2 | 系列2 | INTEGER | 11 | |
prod_3 | 系列3 | INTEGER | 11 |
默认数据:
internal_id | year | month | prod_1 | prod_2 | prod_3 |
---|---|---|---|---|---|
1 | 2018 | 5月 | 32 | 54 | 80 |
2 | 2018 | 6月 | 42 | 34 | 33 |
3 | 2018 | 7月 | 45 | 62 | 44 |
4 | 2018 | 8月 | 23 | 38 | 65 |
5 | 2018 | 9月 | 12 | 12 | 77 |
6 | 2018 | 10月 | 22 | 33 | 34 |
7 | 2018 | 11月 | 23 | 45 | 22 |
8 | 2018 | 12月 | 32 | 65 | 43 |
9 | 2019 | 1月 | 12 | 23 | 65 |
10 | 2019 | 2月 | 21 | 77 | 55 |
11 | 2019 | 3月 | 22 | 87 | 33 |
12 | 2019 | 4月 | 23 | 45 | 34 |
表名:t_1_3_wp_prod_total
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
name | 名称 | VARCHAR | 255 | 不为空 |
prod_1 | 系列1 | INTEGER | 11 | |
prod_2 | 系列2 | INTEGER | 11 |
默认数据:
internal_id | name | prod_1 | prod_2 |
---|---|---|---|
1 | 其他 | 8544 | 10000 |
2 | 钢件 | 1000 | 5002 |
3 | 电极 | 2000 | 3000 |
表名:t_1_4_wp_prod_monthly
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
year | 年份 | INTEGER | 4 | 不为空 |
month | 月份 | INTEGER | 4 | 不为空 |
prod_1 | 系列1 | INTEGER | 11 | |
prod_2 | 系列2 | INTEGER | 11 | |
prod_3 | 系列3 | INTEGER | 11 |
默认数据:
internal_id | year | month | prod_1 | prod_2 | prod_3 |
---|---|---|---|---|---|
1 | 2018 | 5月 | 32 | 54 | 23 |
2 | 2018 | 6月 | 42 | 34 | 30 |
3 | 2018 | 7月 | 45 | 62 | 44 |
4 | 2018 | 8月 | 23 | 38 | 65 |
5 | 2018 | 9月 | 12 | 12 | 77 |
6 | 2018 | 10月 | 22 | 33 | 34 |
7 | 2018 | 11月 | 23 | 45 | 22 |
8 | 2018 | 12月 | 32 | 65 | 43 |
9 | 2019 | 1月 | 12 | 23 | 65 |
10 | 2019 | 2月 | 21 | 77 | 55 |
11 | 2019 | 3月 | 22 | 87 | 33 |
12 | 2019 | 4月 | 23 | 45 | 34 |
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
模具达成率 | t_2_1_mold_achie_rate |
零件达成率 | t_2_2_wp_achie_rate |
零件数 | t_2_3_wp_achie_number |
每日工序达成数 | t_2_4_process_achie_number |
表名:t_2_1_mold_achie_rate
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
plan | 计划数 | INTEGER | 11 | |
achieved | 达成数 | INTEGER | 11 |
默认数据:1 200 110
表名:t_2_2_wp_achie_rate
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
name | 名称 | VARCHAR | 255 | 不为空 |
plan | 计划数 | INTEGER | 11 | |
achieved | 达成数 | INTEGER | 11 |
默认数据:
internal_id | name | plan | achieved |
---|---|---|---|
1 | 模仁 | 100 | 200 |
2 | 镶件 | 122 | 100 |
3 | 辅件 | 300 | 500 |
4 | 电极 | 155 | 200 |
表名:t_2_3_wp_achie_number
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
wp_achie_number | 零件数 | INTEGER | 11 |
默认数据:1 1234
表名:t_2_4_process_achie_number
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
day | 日期 | VARCHAR | 2 | |
green | 绿色数量 | INTEGER | 11 | |
blue | 蓝色数量 | INTEGER | 11 | |
red | 红色数量 | INTEGER | 11 |
默认数据:
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 |
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
设备运行状态 | t_3_1_device_runtime |
稼动率 | t_3_2_oee |
表名:t_3_1_device_runtime
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
group_name | 分组名称 | VARCHAR | 4 | 不为空 |
no_id | 分组编号 | INTEGER | 11 | 不为空 |
name | 名称 | VARCHAR | 255 | 不为空 |
text_1 | 文字1 | VARCHAR | 255 | |
text_2 | 文字2 | VARCHAR | 255 | |
status | 状态 1-开机 2-待机 3-维护 4-空 | INTEGER | 1 | 不为空 |
progress | 进度 | INTEGER | 3 | |
flicker | 是否闪烁 | INTEGER | 1 |
默认数据:
internal_id | group_name | no_id | name | text_1 | text_2 | status | progress | flicker |
---|---|---|---|---|---|---|---|---|
1 | CNC | 1 | CNC1 | 190411 | PID11 | 1 | 0 | 0 |
2 | CNC | 2 | CNC2 | 190412 | PID12 | 1 | 0 | 0 |
3 | CNC | 3 | CNC3 | 190413 | PID13 | 1 | 0 | 0 |
4 | CNC | 4 | CNC4 | 190414 | PID14 | 2 | 0 | 0 |
5 | CNC | 5 | CNC5 | 190415 | PID15 | 1 | 0 | 0 |
6 | CNC | 6 | CNC6 | 190416 | PID16 | 2 | 0 | 0 |
7 | CNC | 7 | CNC7 | 190417 | PID17 | 1 | 0 | 0 |
8 | CNC | 8 | 4 | 0 | 0 | |||
9 | EDM | 1 | EDM1 | 190421 | PID21 | 1 | 0 | 0 |
10 | EDM | 2 | EDM2 | 190422 | PID23 | 2 | 0 | 0 |
11 | EDM | 3 | EDM3 | 190423 | PID23 | 1 | 0 | 0 |
12 | EDM | 4 | EDM4 | 190424 | PID24 | 3 | 0 | 0 |
13 | EDM | 5 | EDM5 | 190425 | PID25 | 1 | 0 | 0 |
14 | EDM | 6 | EDM6 | 190426 | PID26 | 1 | 0 | 0 |
15 | EDM | 7 | EDM7 | 190427 | PID27 | 1 | 0 | 0 |
16 | EDM | 8 | EDM8 | 190428 | PID28 | 2 | 0 | 0 |
17 | WEDM | 1 | WEDM1 | 190431 | PID28 | 1 | 0 | 0 |
18 | WEDM | 2 | WEDM2 | 190432 | PID28 | 3 | 0 | 0 |
19 | WEDM | 3 | WEDM3 | 190434 | PID29 | 2 | 0 | 0 |
20 | WEDM | 4 | WEDM4 | 190435 | PID30 | 1 | 0 | 0 |
21 | WEDM | 5 | WEDM5 | 190436 | PID36 | 1 | 0 | 0 |
22 | WEDM | 6 | WEDM6 | 190437 | PID37 | 3 | 0 | 0 |
23 | WEDM | 7 | 4 | 0 | 0 | |||
24 | WEDM | 8 | 4 | 0 | 0 |
表名:t_3_2_oee
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
cnc | 类别-cnc | INTEGER | 3 | 不为空 |
edm | 类别-edm | INTEGER | 3 | 不为空 |
wedm | 类别-wedm | INTEGER | 3 | 不为空 |
默认数据:1 110 90 90
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
模具进度 | t_4_1_mold_progress |
模具状态统计 | t_4_2_mold_status_parcent |
加工中模具数量 | t_4_3_mold_processing_num |
表名:t_3_2_oee
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
mold_no | 模具编号 | VARCHAR | 11 | |
tn_no | 版本号 | VARCHAR | 11 | |
type | 类型 | VARCHAR | 255 | |
status | 状态 | VARCHAR | 255 | |
product_name | 产品名称 | VARCHAR | 255 | |
plan_date | 计划交期 | VARCHAR | 255 | |
green | 当前进度绿色 | INTEGER | 11 | |
yellow | 当前进度黄色 | INTEGER | 11 | |
red | 当前进度红色 | INTEGER | 11 |
默认数据:
internal_id | mold_no | tn_no | type | status | product_name | plan_date | green | yellow | red |
---|---|---|---|---|---|---|---|---|---|
1 | IK19001 | T0 | 新模 | 加工中 | 后盖 | 2019/3/29 | 60 | 20 | 20 |
2 | IK19002 | T1 | 修模 | 加工中 | 前盖 | 2019/4/3 | 50 | 50 | 0 |
3 | IK29003 | T2 | 修模 | 加工中 | 外壳 | 2019/4/8 | 30 | 70 | 0 |
4 | IK19004 | T0 | 新模 | 加工中 | 侧边 | 2019/4/18 | 90 | 5 | 5 |
5 | IK19005 | T3 | 修模 | 加工中 | 边框 | 2019/4/3 | 60 | 40 | 0 |
6 | IK19006 | T0 | 新模 | 加工中 | 后盖 | 2019/4/26 | 70 | 25 | 5 |
7 | IK19007 | T0 | 新模 | 加工中 | 面板 | 2019/4/7 | 25 | 25 | 50 |
8 | IK19008 | T0 | 新模 | 加工中 | 插件 | 2019/3/31 | 20 | 40 | 40 |
9 | IK19009 | T1 | 修模 | 加工中 | 面板 | 2019/3/12 | 10 | 60 | 30 |
10 | IK19010 | T2 | 修模 | 加工中 | 后盖 | 2019/2/12 | 0 | 100 | 0 |
表名:t_4_2_mold_status_parcent
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
finished | 正常交付百分比 | INTEGER | 11 | 不为空 |
processing | 加工中百分比 | INTEGER | 11 | 不为空 |
delay | 延期百分比 | INTEGER | 11 | 不为空 |
默认数据: @@ -693,7 +694,7 @@ header, .context-menu, .megamenu-content, footer{ 1, 100, 99, 89, 95, 95, 92, 98, 100, 96, 97, 98, 99, 90, 85, 84
表名:t_6_2_ele_qual_rate
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
date_1 | 第1天合格率 | INTEGER | 3 | |
date_x | 第x天合格率 | INTEGER | 3 | |
date_15 | 第15天合格率 | INTEGER | 3 |
默认数据: 1, 100, 99, 89, 95, 95, 92, 98, 100, 96, 97, 98, 99, 90, 85, 84
表名:t_6_3_qual_rate_today
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
qual_rate | 合格率 | INTEGER | 3 |
默认数据:90
表名:t_6_4_mold_qual_rate
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
mold_name | 模块名称 | VARCHAR | 255 | |
qual_rate | 合格率 | INTEGER | 3 |
默认数据:
internal_id | mold_name | qual_rate |
---|---|---|
1 | IK19001 | 95 |
2 | IK19002 | 88 |
3 | IK19003 | 94 |
4 | IK19004 | 75 |
5 | IK19005 | 94 |
6 | IK19006 | 89 |
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
品质占比 | t_7_1_qual_percent |
班组合格率 | t_7_2_group_qual_rate |
每日合格率统计 | t_7_3_qual_rate_daily |
表名:t_7_1_qual_percent
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
green | 绿色百分比 | INTEGER | 3 | |
blue | 蓝色百分比 | INTEGER | 3 | |
yellow | 黄色百分比 | INTEGER | 3 | |
red | 红色百分比 | INTEGER | 3 |
默认数据: 1 45 30 15 10
表名:t_7_2_group_qual_rate
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
group_name | 分组名称 | VARCHAR | 255 | |
qual_rate | 合格率 | INTEGER | 3 |
默认数据:
internal_id | group_name | qual_rate |
---|---|---|
1 | CNC | 90 |
2 | EDM | 85 |
3 | WEDM | 92 |
4 | 磨床 | 94 |
5 | 铣床 | 93 |
6 | 外协 | 92 |
表名:t_7_3_qual_rate_daily
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
group_name | 分组名称 | VARCHAR | 255 | |
day_1 | 第1天 | INTEGER | 3 | |
day_x | 第x天 | INTEGER | 3 | |
day_31 | 第31天 | INTEGER | 3 |
默认数据: -1, 'all', 90, 90, 97, 91, 92, 88, 89, 90, 78, 87, 86, 90, 80, 97, 87, 87, 88, 89, 90, 90, 89, 86, 90, 80, 97, 87, 87, 89, 89, 89, 90
子模块表名对应表:
子模块标题 | 子模块表名 |
---|---|
库存占比 | t_8_1_key_invt |
主要零件库存 | t_8_2_invt_table |
表名:t_8_1_key_invt
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
name | 名称 | VARCHAR | 255 | |
upper_bound | 上限 | INTEGER | 11 | |
current | 库存 | INTEGER | 11 |
默认数据:
internal_id | name | upper_bound | current |
---|---|---|---|
1 | 刀具A1 | 200 | 110 |
2 | 顶针B | 100 | 70 |
3 | 线割丝C | 100 | 300 |
4 | 树脂D | 100 | 10 |
表名:t_8_2_invt_table
字段名 | 中文名 | 类型 | 长度 | 说明 |
---|---|---|---|---|
internal_id | 序号 | INTEGER | 11 | 主键自增 |
invt_no | 编号 | VARCHAR | 255 | |
name | 品名 | VARCHAR | 255 | |
spec | 规格 | VARCHAR | 255 | |
mat | 材料 | VARCHAR | 255 | |
size | 尺寸 | VARCHAR | 255 | |
target | 目标库存 | INTEGER | 11 | |
current | 当前库存 | INTEGER | 11 |
默认数据:
internal_id | invt_no | name | spec | mat | size | target | current |
---|---|---|---|---|---|---|---|
1 | SSDDS1 | 品名1 | 规格1 | 材料1 | 345420 | 200 | 90 |
2 | SSDDS2 | 品名2 | 规格2 | 材料2 | 345420 | 100 | 120 |
3 | SSDDS3 | 品名3 | 规格3 | 材料3 | 345420 | 100 | 67 |
4 | SSDDS4 | 品名4 | 规格4 | 材料4 | 345420 | 100 | 88 |
5 | SSDDS5 | 品名5 | 规格5 | 材料5 | 345420 | 100 | 45 |
6 | SSDDS6 | 品名6 | 规格6 | 材料6 | 345420 | 100 | 87 |
7 | SSDDS7 | 品名7 | 规格7 | 材料7 | 345420 | 100 | 9 |
8 | SSDDS8 | 品名8 | 规格8 | 材料8 | 345420 | 100 | 44 |
9 | SSDDS9 | 品名9 | 规格9 | 材料9 | 345420 | 100 | 100 |
字段 | 描述 | 默认值 |
---|---|---|
IndexStart | 启动窗体索引 0-大屏系统 1-控件演示 2-模块演示 | 0-大屏系统 |
IndexControl | 控件演示窗体选中子窗体索引 | 0 |
IndexModule | 模块演示窗体选中子窗体索引 | 0 |
WorkMode | 工作模式 | timer |
MapStyle | 中间地图样式 | point |
Title | 软件标题,默认值:数字化工厂信息中心 | |
Ratio | 分辨率,目前无意义,备用参数 | 1920*1080 |
Layout | 布局方案,每次切换布局方案以后都会保存 | 完整布局 |
Theme | 配色方案,每次切换配色方案以后都会保存 | 紫色风格 |
HttpUrl | 网络请求地址,默认http://127.0.0.1:6000 |
工作模式
地图样式
字段 | 描述 | 默认值 |
---|---|---|
AutoRun | 是否开机启动 | false |
MoveEnable | 模块是否可以拖动,启用以后模块可以任意拖动 | true |
CutLeftBottom | 底部布局左侧是否切掉 | true |
CutRightBottom | 底部布局右侧是否切掉 | true |
StaticLine | 是否绘制静态定位线,为假则绘制游标十字线 | false |
ShowPercent | Y轴是否显示百分比 | false |
StepY | Y轴大尺度步长 | 6 |
CursorHideTime | 用户不操作鼠标自动隐藏鼠标的时间间隔,单位秒 | 5 |
字段 | 描述 | 默认值 |
---|---|---|
VideoFillImage | 视频缩放,拉伸填充整个窗体 | false |
VideoCallback | 视频回调,开启后采用painter走GPU绘制视频 | false |
VideoPlayAudio | 播放音频,开启后视频同步播放音频 | true |
VideoPlayRepeat | 视频循环播放,开启后视频会循环播放 | false |
VideoUrl | 视频流地址,视频模块播放的视频地址 | 变动的 |
字段 | 描述 | 默认值 |
---|---|---|
ColorMainBg | 主背景颜色 | QColor(4, 7, 38) |
ColorPanelBg | 面板背景颜色 | QColor(26, 29, 60) |
ColorLine | 十字线定位线颜色 | QColor(255, 0, 0) |
ColorLine1 | 线条1颜色 | QColor(0, 176, 180) |
ColorLine2 | 线条2颜色 | QColor(32, 159, 223) |
ColorLine3 | 线条3颜色 | QColor(255, 192, 0) |
字段 | 描述 | 默认值 |
---|---|---|
ColorTitleBg | 标题栏背景颜色 | QColor(48, 48, 85) |
ColorTitleText | 标题栏文字颜色 | QColor(255, 255, 255) |
ColorChartBg | 曲线图表背景颜色 | QColor(38, 41, 74) |
ColorChartText | 曲线图表文字颜色 | QColor(250, 250, 250) |
ColorChartGrid | 曲线图表网格颜色 | QColor(180, 180, 180) |
字段 | 描述 | 默认值 |
---|---|---|
ColorOk | 正常颜色 | QColor(0, 176, 180) |
ColorLow | 警戒颜色 | QColor(255, 192, 0) |
ColorAlarm | 报警颜色 | QColor(214, 77, 84) |
ColorDisable | 禁用背景颜色 | QColor(210, 210, 210) |
ColorPercent | 环形百分比背景颜色 | QColor(0, 254, 254) |
字段 | 描述 | 默认值 |
---|---|---|
MainFont | 全局字号 | 微软雅黑,12 |
NameFont | 软件名称字号 | 19 |
LabFont | 加粗标签字号 | 12 |
DeviceFont | 设备面板字号 | 12 |
SubTitleFont | 模块子标题栏字号 | 13 |
TitleFont | 模块标题栏字号 | 15 |
字段 | 描述 | 默认值 |
---|---|---|
TitleHeight | 模块标题栏高度 | 23 |
HeadHeight | 表格表头高度 | 28 |
RowHeight | 表格行高度 | 25 |
LayoutSpacing | 布局空隙间隔 | 6 |
SwitchBtnWidth | 开关按钮宽度 | 65 |
SwitchBtnHeight | 开关按钮高度 | 26 |
ScrollWidth | 滚动条宽度 | 15 |
字段 | 描述 | 默认值 |
---|---|---|
IntervalModule1 | 模块1采集间隔,单位毫秒 | 5000 |
IntervalModule2 | 模块2采集间隔,单位毫秒 | 5100 |
IntervalModule3 | 模块3采集间隔,单位毫秒 | 5200 |
IntervalModule4 | 模块4采集间隔,单位毫秒 | 5300 |
IntervalModule5 | 模块5采集间隔,单位毫秒 | 5400 |
IntervalModule6 | 模块6采集间隔,单位毫秒 | 5500 |
IntervalModule7 | 模块7采集间隔,单位毫秒 | 5600 |
IntervalModule8 | 模块8采集间隔,单位毫秒 | 5700 |
字段 | 描述 | 默认值 |
---|---|---|
LocalDBType | 本地数据库类型,Sqlite、Mysql等 | Sqlite |
LocalDBIP | 本地数据库主机地址 | 127.0.0.1 |
LocalDBPort | 本地数据库端口 | 3306 |
LocalDBName | 本地数据库名称 | bigscreen |
LocalUserName | 本地数据库用户名 | root |
LocalUserPwd | 本地数据库密码,以密文存储 | root |
整个大屏系统就是由一个个子模块组成,每个子模块都用到了一些自定义控件,再打通数据库采集和网络请求采集等,将采集到的数据设置到对应的模块界面上。
主模块 | 说明 |
---|---|
3rd | 一些第三方开源的类库,比如图表qcustomplot。 |
class | 存放系统初始化、样式控制、自定义控件等。 |
core | 本人一直持续更新完善的通用的类库,比如ffmpeg视频监控。 |
ui | 所有的界面都分门别类放在这里。 |
主模块 | 子模块 | 说明 |
---|---|---|
3rd | 3rd_qcustomplot | 大名鼎鼎的第三方开源的图表组件。 |
class | api | 存放数据库表映射成对应的全局队列数据、通用的辅助函数类。 |
class | app | 全局配置参数管理类、秘钥管理类、通用函数。 |
class | usercontrol | 当前系统的自定义控件全部放在这里,其中包括自定义饼图控件、进度仪表盘、百分比仪表盘、环形进度条、三态进度条等控件。 |
core | core_control | 通用自定义控件,很多系统经常用到的控件全部放在这里。 |
core | core_customplot | 继承自qcustomplot类的自定义图表组件,专为大屏系统定制的各种图表组件。 |
core | core_db | 数据库集成应用组件,比如数据库管理线程类、数据库清理线程类、数据库采集类、网络请求采集类等 |
core | core_ffmpeg | 视频监控内核,采用ffmpeg解码,支持各种视频流和本地视频文件,支持声音播放和音视频同步。 |
core | core_map | 地图内核,包括了百度echart封装类,区域轮廓数据转换js函数封装类,百度地图封装类等。 |
core | core_opengl | 视频绘制类,采用opengl绘制,走GPU绘制。 |
core | core_webview | 通用浏览器控件类,同时支持webkit、wenengine、miniblink三种内核,打通了所有的Qt版本。 |
ui | frmcontrol | 大屏控件演示示例,每个功能演示都是个独立的窗体,方便查看代码学习如何使用。 |
ui | frmmain | 主界面模块,包括了系统配置界面、大屏主界面、大屏指定分辨率用于截图的主界面、设备面板窗体。 |
ui | frmmodule | 大屏子模块,包括了产量汇总、当月计划、设备监控、模具进度、负荷分布、送检合格率、品质管理、物料管理、视频监控、大屏地图等。 |
将对应的用户表映射到变量队列存储,以便用户登录和整体判断权限等。
这个类就像万能胶一样,在本人写的所有的项目中都有,本类就是将平时常用的一些通用函数都丢在这里,不断完善和持续改进,包括了16进制数据转换、图形字体设置、自定义消息框、错误框、提示框等,集成设置窗体居中显示、设置翻译文件、设置编码、设置延时、设置系统时间等静态方法。
xxxxxxxxxx
2711
2
3
+1, 'all', 90, 90, 97, 91, 92, 88, 89, 90, 78, 87, 86, 90, 80, 97, 87, 87, 88, 89, 90, 90, 89, 86, 90, 80, 97, 87, 87, 89, 89, 89, 902.8 物料管理模块
子模块表名对应表:
子模块标题 子模块表名 库存占比 t_8_1_key_invt 主要零件库存 t_8_2_invt_table
2.8.1 库存占比
表名:t_8_1_key_invt
字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 name 名称 VARCHAR 255 upper_bound 上限 INTEGER 11 current 库存 INTEGER 11
默认数据:
internal_id name upper_bound current 1 刀具A1 200 110 2 顶针B 100 70 3 线割丝C 100 300 4 树脂D 100 10
2.8.2 主要零件库存
表名:t_8_2_invt_table
字段名 中文名 类型 长度 说明 internal_id 序号 INTEGER 11 主键自增 invt_no 编号 VARCHAR 255 name 品名 VARCHAR 255 spec 规格 VARCHAR 255 mat 材料 VARCHAR 255 size 尺寸 VARCHAR 255 target 目标库存 INTEGER 11 current 当前库存 INTEGER 11
默认数据:
internal_id invt_no name spec mat size target current 1 SSDDS1 品名1 规格1 材料1 345420 200 90 2 SSDDS2 品名2 规格2 材料2 345420 100 120 3 SSDDS3 品名3 规格3 材料3 345420 100 67 4 SSDDS4 品名4 规格4 材料4 345420 100 88 5 SSDDS5 品名5 规格5 材料5 345420 100 45 6 SSDDS6 品名6 规格6 材料6 345420 100 87 7 SSDDS7 品名7 规格7 材料7 345420 100 9 8 SSDDS8 品名8 规格8 材料8 345420 100 44 9 SSDDS9 品名9 规格9 材料9 345420 100 100
3 配置参数说明
3.1 基本配置1
字段 描述 默认值 IndexStart 启动窗体索引 0-大屏系统 1-控件演示 2-模块演示 0-大屏系统 IndexControl 控件演示窗体选中子窗体索引 0 IndexModule 模块演示窗体选中子窗体索引 0 WorkMode 工作模式 timer MapStyle 中间地图样式 point Title 软件标题,默认值:数字化工厂信息中心 Ratio 分辨率,目前无意义,备用参数 1920*1080 Layout 布局方案,每次切换布局方案以后都会保存 完整布局 Theme 配色方案,每次切换配色方案以后都会保存 紫色风格 HttpUrl 网络请求地址,默认http://127.0.0.1:6000
工作模式
- timer-模拟数据
- db-数据库采集
- com-串口采集
- tcp-网络采集
- http-post请求
地图样式
- image-静态图片
- point-闪烁效果
- move-迁徙效果
- world-世界地图
- area-区域地图
3.2 基本设置2
字段 描述 默认值 AutoRun 是否开机启动 false MoveEnable 模块是否可以拖动,启用以后模块可以任意拖动 true CutLeftBottom 底部布局左侧是否切掉 true CutRightBottom 底部布局右侧是否切掉 true StaticLine 是否绘制静态定位线,为假则绘制游标十字线 false ShowPercent Y轴是否显示百分比 false StepY Y轴大尺度步长 6 CursorHideTime 用户不操作鼠标自动隐藏鼠标的时间间隔,单位秒 5
3.3 视频设置
字段 描述 默认值 VideoFillImage 视频缩放,拉伸填充整个窗体 false VideoCallback 视频回调,开启后采用painter走GPU绘制视频 false VideoPlayAudio 播放音频,开启后视频同步播放音频 true VideoPlayRepeat 视频循环播放,开启后视频会循环播放 false VideoUrl 视频流地址,视频模块播放的视频地址 变动的
3.4 颜色配置1
字段 描述 默认值 ColorMainBg 主背景颜色 QColor(4, 7, 38) ColorPanelBg 面板背景颜色 QColor(26, 29, 60) ColorLine 十字线定位线颜色 QColor(255, 0, 0) ColorLine1 线条1颜色 QColor(0, 176, 180) ColorLine2 线条2颜色 QColor(32, 159, 223) ColorLine3 线条3颜色 QColor(255, 192, 0)
3.5 颜色配置2
字段 描述 默认值 ColorTitleBg 标题栏背景颜色 QColor(48, 48, 85) ColorTitleText 标题栏文字颜色 QColor(255, 255, 255) ColorChartBg 曲线图表背景颜色 QColor(38, 41, 74) ColorChartText 曲线图表文字颜色 QColor(250, 250, 250) ColorChartGrid 曲线图表网格颜色 QColor(180, 180, 180)
3.6 颜色配置3
字段 描述 默认值 ColorOk 正常颜色 QColor(0, 176, 180) ColorLow 警戒颜色 QColor(255, 192, 0) ColorAlarm 报警颜色 QColor(214, 77, 84) ColorDisable 禁用背景颜色 QColor(210, 210, 210) ColorPercent 环形百分比背景颜色 QColor(0, 254, 254)
3.7 字体配置
字段 描述 默认值 MainFont 全局字号 微软雅黑,12 NameFont 软件名称字号 19 LabFont 加粗标签字号 12 DeviceFont 设备面板字号 12 SubTitleFont 模块子标题栏字号 13 TitleFont 模块标题栏字号 15
3.8 尺寸配置
字段 描述 默认值 TitleHeight 模块标题栏高度 23 HeadHeight 表格表头高度 28 RowHeight 表格行高度 25 LayoutSpacing 布局空隙间隔 6 SwitchBtnWidth 开关按钮宽度 65 SwitchBtnHeight 开关按钮高度 26 ScrollWidth 滚动条宽度 15
3.9 采集速度
字段 描述 默认值 IntervalModule1 模块1采集间隔,单位毫秒 5000 IntervalModule2 模块2采集间隔,单位毫秒 5100 IntervalModule3 模块3采集间隔,单位毫秒 5200 IntervalModule4 模块4采集间隔,单位毫秒 5300 IntervalModule5 模块5采集间隔,单位毫秒 5400 IntervalModule6 模块6采集间隔,单位毫秒 5500 IntervalModule7 模块7采集间隔,单位毫秒 5600 IntervalModule8 模块8采集间隔,单位毫秒 5700
3.10 数据库配置
字段 描述 默认值 LocalDBType 本地数据库类型,Sqlite、Mysql等 Sqlite LocalDBIP 本地数据库主机地址 127.0.0.1 LocalDBPort 本地数据库端口 3306 LocalDBName 本地数据库名称 bigscreen LocalUserName 本地数据库用户名 root LocalUserPwd 本地数据库密码,以密文存储 root
4 程序框架说明
4.1 整体代码结构
整个大屏系统就是由一个个子模块组成,每个子模块都用到了一些自定义控件,再打通数据库采集和网络请求采集等,将采集到的数据设置到对应的模块界面上。
4.2 主模块说明
主模块 说明 3rd 一些第三方开源的类库,比如图表qcustomplot。 class 存放系统初始化、样式控制、自定义控件等。 core 本人一直持续更新完善的通用的类库,比如ffmpeg视频监控。 ui 所有的界面都分门别类放在这里。
4.3 子模块说明
主模块 子模块 说明 3rd 3rd_qcustomplot 大名鼎鼎的第三方开源的图表组件。 class api 存放数据库表映射成对应的全局队列数据、通用的辅助函数类。 class app 全局配置参数管理类、秘钥管理类、通用函数。 class usercontrol 当前系统的自定义控件全部放在这里,其中包括自定义饼图控件、进度仪表盘、百分比仪表盘、环形进度条、三态进度条等控件。 core core_common 通用函数,包括通用秘钥、通用导航、通用样式、声音播放、日志记录、运行时间记录等。 core core_control 通用自定义控件,很多系统经常用到的控件全部放在这里。 core core_customplot 继承自qcustomplot类的自定义图表组件,专为大屏系统定制的各种图表组件。 core core_db 数据库集成应用组件,比如数据库管理线程类、数据库清理线程类、数据库采集类、网络请求采集类等。 core core_form 通用的用户登录、用户退出、用户管理、数据库配置界面类等。 core core_map 地图内核,包括了百度echart封装类,区域轮廓数据转换js函数封装类,百度地图封装类等。 core core_qui 通用的辅助类,包括自定义对话框,全局辅助函数,图形字体等。 core core_video 视频播放核心类,包括了监控画面切换控件、视频回放控件、视频播放组件结构体、视频播放辅助函数、视频解码线程类、视频显示控件类等。 core core_videobase 视频相关基类,包括音视频文件保存基类、视频解码基类、视频控件基类、视频悬浮工具栏、视频控件结构体等。 core core_videoffmpeg 视频监控内核ffmpeg版本,本系统默认采用的内核。 core core_videoopengl opengl封装类,支持打开yuv/nv12文件,绘制yuv/nv12帧数据,一般搭配ffmpeg视频内核显示视频,直接走GPU绘制。 core core_webview 通用浏览器控件类,同时支持webkit、wenengine、miniblink三种内核,打通了所有的Qt版本。 ui frmconfig 系统设置界面,包括常规设置、数据库设置、采集间隔设置、视频参数设置等。 ui frmcontrol 大屏控件演示示例,每个功能演示都是个独立的窗体,方便查看代码学习如何使用。 ui frmmain 主界面模块,包括了系统配置界面、大屏主界面、大屏指定分辨率用于截图的主界面、设备面板窗体。 ui frmmodule 大屏子模块,包括了产量汇总、当月计划、设备监控、模具进度、负荷分布、送检合格率、品质管理、物料管理、视频监控、大屏地图等。
4.4 辅助处理
4.4.1 数据库表映射
将对应的用户表映射到变量队列存储,以便用户登录和整体判断权限等。
4.4.2 通用辅助函数类
这个类就像万能胶一样,在本人写的所有的项目中都有,本类就是将平时常用的一些通用函数都丢在这里,不断完善和持续改进,包括了16进制数据转换、图形字体设置、自定义消息框、错误框、提示框等,集成设置窗体居中显示、设置翻译文件、设置编码、设置延时、设置系统时间等静态方法。
x1
2
3
4
5
6
7
8class QUIHelper
9{
10public:
11 //获取当前鼠标所在屏幕索引+尺寸
12 static int getScreenIndex();
13 static QRect getScreenRect(bool available = true);
14
15 //获取桌面宽度高度
16 static int deskWidth();
17 static int deskHeight();
18 static QSize deskSize();
19
@@ -745,7 +746,7 @@ header, .context-menu, .megamenu-content, footer{
4.5 内核模块
4.5.1 通用自定义控件
名称 说明 bottomwidget 通用底部状态栏控件,可以设置软件名称、版本号、运行时间等。 colorcombobox 颜色下拉框控件,在系统设置中有。 cpumemorylabel CPU和内存使用情况标签控件,主界面右上角显示。 customtitlebar 停靠窗体自定义标题栏控件。 devicebutton 设备按钮控件,比如图片地图模块中用到,可设置不同的图标样式和状态等,双击发出信号进行相应处理比如弹出对应视频预览等。 framelesswidget 无边框窗体管理类,无边框拖动+拉伸,主界面就用到了这个类。 lcddatetime 软件右上角显示时间的控件。 panelwidget 面板容器控件,主界面子模块表格消息,就用到此控件,用于将一堆widget放到此容器进行管理,自动形成滚动条等。 switchbutton 开关按钮控件,在系统设置中存在大量该控件。 xslider 滑动条控件,在原有滑动条基础上增加了鼠标按下立即定位等。
4.5.2 图表组件内核
名称 说明 customplot 自定义图表组件类。 customplotbarh 自定义形状-横向柱状图。 customplotbarv 自定义形状-垂直柱状图。 customplothead 当前组件通用头文件。 customplothelper 当前组件通用辅助函数文件。 customplotline 自定义形状-平滑曲线图。 customplottracer 自定义图层绘制十字线,也叫游标,定位线。 smoothcurve 平滑曲线算法类,内置多种平滑算法,可以自行增加其他算法。
4.5.3 数据库应用内核
本系统只用到了该类库中的dbconnthread、dbhttpthread。
dbconnthread:封装的一个通用的数据库通信类,支持sqlite、mysql、PostgreSQL等数据库,功能包括了数据库的打开和关闭,线程执行sql语句队列信号发出执行结果等,支持重连。
-dbhttpthread:本系统除了支持数据库采集模式以外,还支持发送http网络请求的方式来采集数据,请求中带对应要查询的表,字段等信息,这个类就是专门的请求类,请求结果自动过滤运算并信号发出去,返回数据的信号和数据库采集的信号完全一致,使得主界面关联到同一个槽函数就能正常工作。
名称 说明 dbcleanthread 自动清理数据线程类。 dbconnthread 数据库通信管理线程类。 dbdelegate 自定义委托全家桶,包括复选框、下拉框、密码框、按钮等。 dbhead 当前组件通用头文件。 dbhelper 各种数据库应用函数封装,比如初始化数据库、执行sql语句等。 dbhttpthread 网络请求数据采集类。 dbpage 数据库通用翻页类。 dbpagemodel 数据库翻页类数据模型。 navpage 分页导航控件。
4.5.4 视频监控内核
名称 说明 ffmpegconvert ffmpeg各种转换处理函数封装。 ffmpeghead ffmpeg引入头文件。 ffmpeghelper ffmpeg辅助类,包括版本号,校验url地址、获取流索引等。 ffmpegsync ffmpeg音视频同步类,包括了同步以及发出当前播放进度信号。 ffmpegthread ffmpeg核心解码类,包括音视频的解码。 ffmpegtool ffmpeg工具类,用于执行ffmpeg的命令获取结果。 ffmpegwidget ffmpeg视频显示窗体类,依赖ffmpegthread。 videoffmpeg ffmpeg多通道管理类。
4.5.5 大屏地图内核
名称 说明 echartjs echart模块中用到的json文件转js文件,获取js文件中的名字和经纬度等处理。 echarts echart封装类,可加载仪表盘、闪烁点图、迁徙图、世界地图、区域地图等,每个点可自定义颜色和提示信息等。 mapbaidu 百度地图封装类,支持在线和离线两种模式。
4.5.6 视频绘制内核
名称 说明 nv12glwidget 继承自QGLWidget的NV12格式OPENGL绘制窗体。 nv12openglwidget 继承自QOpenGLWidget的NV12格式OPENGL绘制窗体。 yuvglwidget 继承自QGLWidget的YUV格式OPENGL绘制窗体。 yuvopenglwidget 继承自QOpenGLWidget的YUV格式OPENGL绘制窗体。
4.5.7 通用浏览器内核
名称 说明 webcore.pri 通用的根据不同的Qt版本、不同的编译器环境、不同的操作系统,加载对应的浏览器内核模块和定义不同的变量。 miniblink miniblink封装处理类。 webhelper 经纬度转换、获取小数点经纬度值等常用处理函数。 webjsdata 通用的浏览器控件和Qt程序交互数据中转类。 webview 通用浏览器控件,支持webkit、webengine、miniblink。
4.6 界面模块
4.6.1 大屏控件演示
名称 说明 frmcontrol 大屏控件演示主界面,负责加载所有控件演示子窗体。 frmplotarea 曲线面积图。 frmplotbarh 横向柱状图。 frmplotbarhs 横向分组图。 frmplotbars 柱状堆积图。 frmplotbarv 标准柱状图。 frmplotbarvs 柱状分组图。 frmplotdata 数据转曲线。 frmplotnormal 标准曲线图。 frmplotsin 模拟曲线图。 frmplotsmooth 平滑曲线图。
4.6.2 大屏模块演示
名称 说明 frmmodule 大屏子模块演示主界面,负责加载所有子模块界面。 frmmodule1 年度产量汇总。 frmmodule2 当月计划达成率。 frmmodule3 设备监控。 frmmodule4 模具进度。 frmmodule5 负荷分布。 frmmodule6 送检一次合格率。 frmmodule7 品质管理。 frmmodule8 物料管理。 frmmodule9 备用模块。 frmmodulecenter 中心窗体。 frmmodulemap 大屏地图。 frmmodulevideo 视频监控。
4.6.3 主界面模块
名称 说明 frmdevice 设备面板界面。 frmmain 大屏主界面。 frmmain2 以特定分辨率设置的大屏主界面用于截图。
5 效果图
5.1 布局方案
5.1.1 自定义布局1
5.1.2 自定义布局2
5.1.3 自定义布局3
5.1.4 自定义布局4
5.1.5 自定义布局5
5.1.6 自定义布局6
5.1.7 自定义布局7
5.1.8 自定义布局8
5.2 配色方案
5.2.1 紫色风格
5.2.2 蓝色风格
5.2.3 深蓝风格
5.2.4 黑色风格
5.3 模块效果图
5.3.1 产量汇总
5.3.2 当月计划
5.3.3 设备监控
5.3.4 模具进度
5.3.5 负荷分布
5.3.6 送检合格
5.3.7 品质管理
5.3.8 物料管理
5.3.9 视频监控
5.3.10 大屏地图
5.3.10.1闪烁效果
5.3.10.2 迁徙效果
5.3.10.3 世界地图
5.3.10.4 区域地图
5.3.11 系统设置
5.4 控件效果图
5.4.1 标准曲线
5.4.2 曲线面积
5.4.3 模拟曲线
5.4.4 标准柱状
5.4.5 柱状堆积
5.4.6 柱状分组
5.4.7 横向柱状
5.4.8 横向分组
5.4.9 数据曲线
5.4.10 平滑曲线
5.4.11 多坐标轴
5.4.12 多曲线图
5.5 数据库效果图
5.5.1 数据库-sqlite
5.5.2 数据库-mysql
5.5.3 数据库-sqlserver
5.5.4 数据库-postgresql
5.5.5 数据库-oracle
5.5.6 数据库-kingbase
人大金仓数据库-kingbase,其实就是postgresql数据库改的,配置文件都一样,所以可以用连接postgresql数据库的方式进行处理。
5.5.7 数据库-远程访问
5.5.8 数据库-odbc
ODBC连接字符串格式如上图所示。
5.6 各系统运行图
5.6.1 windows-mingw
5.6.2 windows-msvc
5.6.3 linux-ubuntu
5.6.4 linux-uos
5.6.5 linux-kylin
5.6.6 linux-neokylin
5.6.7 linux-fedoar
5.6.8 unix-mac
+dbhttpthread:本系统除了支持数据库采集模式以外,还支持发送http网络请求的方式来采集数据,请求中带对应要查询的表,字段等信息,这个类就是专门的请求类,请求结果自动过滤运算并信号发出去,返回数据的信号和数据库采集的信号完全一致,使得主界面关联到同一个槽函数就能正常工作。名称 说明 dbcleanthread 自动清理数据线程类。 dbconnthread 数据库通信管理线程类。 dbdelegate 自定义委托全家桶,包括复选框、下拉框、密码框、按钮等。 dbhead 当前组件通用头文件。 dbhelper 各种数据库应用函数封装,比如初始化数据库、执行sql语句等。 dbhttpthread 网络请求数据采集类。 dbpage 数据库通用翻页类。 dbpagemodel 数据库翻页类数据模型。 navpage 分页导航控件。
4.5.4 大屏地图内核
名称 说明 echartjs echart模块中用到的json文件转js文件,获取js文件中的名字和经纬度等处理。 echarts echart封装类,可加载仪表盘、闪烁点图、迁徙图、世界地图、区域地图等,每个点可自定义颜色和提示信息等。 mapbaidu 百度地图封装类,支持在线和离线两种模式。
4.5.5 视频监控内核
4.5.5.1 视频播放组件
名称 说明 videobox 监控画面切换控件,将所有通道切换处理全部集中到一个类,通用异形布局切换函数,可以参考进行自定义异形布局,通道布局切换发出信号通知,支持自定义子菜单布局内容。 videohelper 视频播放内核辅助函数,比如根据url地址取出ip地址、校验网络地址是否可达、检查地址是否正常、加载解析内核到下拉框、根据地址获取本地摄像头参数、创建视频采集类、对采集线程设置参数等。 videomanage 视频线程管理类,全局单例,将所有视频控件发给此类管理,负责挨个打开视频、应用录像计划等。 videoplayback 视频回放控件,支持多个通道,显示每个通道对应的视频段。 videostruct 视频播放组件结构体定义类,包括解析内核枚举值、视频类型枚举值、解码策略枚举值、视频采集参数结构体。 videotask 视频任务线程类,全局单例,可以随时插入一些视频相关的任务进行处理,比如vlc录制视频后需要重命名文件,mpv内核关闭视频后鼠标指针打圈圈需要复位。 videothread 视频解码线程类,内置了共享解码线程处理逻辑,可以打开视频、关闭视频、设置视频宽高比例、获取文件总时长、获取媒体信息、获取和设置播放位置、获取和设置播放速度、获取和设置音量大小、获取和设置静音状态等。 videourl 视频地址相关静态函数,可以读取和写入地址到文本文件,用作历史记录,内置了各种类型(rtsp、http、音频文件、视频文件、网络文件、本地USB摄像头)的测试音视频地址集合。 videowidgetx 视频播放控件,一个控件对应一个解码线程,提供播放成功、播放结束、收到截图、工具栏按钮单击等处理,提供开始播放、停止播放、暂停播放、继续播放、抓拍截图、开始录制、暂停录制、停止录制等接口。
4.5.5.2 视频基类组件
名称 说明 abstractsavethread 音视频存储基类,可以设置需要保存的音视频文件类型,比如音频文件类型有pcm、wav、aac,视频文件类型有yuv、h264、mp4,提供开始保存、暂停保存、停止保存等接口。 abstractvideosurface 视频回调基类,用于Qt中的QCamera和QMedia类播放后拿到回调视频数据,这样可以取到一张张图片。 abstractvideothread 视频解码线程基类,摄像头采集线程和视频采集线程都继承自此类,将各种公用的变量、函数、接口、信号槽全部放在基类,包括了停止线程标志位、打开是否成功标志位、暂停采集标志位、开始截图标志位、正在录制标志位,提供了虚函数开始播放、停止播放、暂停播放、继续播放、抓拍截图、截图完成、开始录制、暂停录制、停止录制等,提供写入视频数据到文件、写入音频数据到文件槽函数。 abstractvideowidget 视频显示控件基类, audioplayer 音频播放类,空的,纯粹为了在没有Qt音频播放类QAudioOutput的时候使用,有些Qt版本或者嵌入式板子环境未必有这个类,但是又不能影响整个组件的运行,于是定义了空的类,函数正常调用但是不做任何处理。 bannerwidget 悬浮工具栏控件,可以设置各种颜色、按钮图标集合、按钮名称集合、按钮提示信息集合等,悬浮条位置支持上下左右四个方位。 imagelabel 图片标签控件,多线程绘制传入的图片,性能比setpixmap更优。 widgethelper 窗体相关辅助函数,包括传入图片尺寸和窗体区域及边框大小返回居中区域(scaleMode: 0-自动调整 1-等比缩放 2-拉伸填充)、绘制矩形区域比如人脸框、绘制点集合多边形路径比如三角形、绘制路径集合、显示截图预览等。
4.5.5.3 视频监控ffmpeg组件
名称 说明 ffmpeghelper 相关辅助函数,包括打印输出各种信息、打印设备列表和参数、格式枚举值转字符串、视频帧旋转、通用硬解码、通用软解码、通用软编码、释放数据帧数据包、超时回调(包括打开超时和读取超时)等。 ffmpegrun 执行ffmpeg命令,包括yuv420p文件转mp4文件、mp4文件转yuv420p文件、wav文件转aac文件、合并aac以及h264文件或者mp4文件到带声音的mp4文件、转换视频文件到mp4文件等。 ffmpegrunthread 执行ffmpeg命令行线程,可以设置执行完成是否删除转换前的文件、可执行文件路径,传入需要执行的指令即可。 ffmpegsave 视频存储类,用于保存h264和mp4文件。 ffmpegsync 音视频同步线程类,解码后的音视频数据发给本类进行时间同步处理,采用的外部时钟同步策略。音视频播放的进度也在本类中。 ffmpegthread 视频解码线程核心,从打开地址、分配解码器、初始化参数、取出音视频数据解码、关闭并释放资源等都在本类实现。
4.5.5.4 视频绘制组件
名称 说明 openglinclude 当前组件头文件。 nv12glwidget 空类,用于没有opengl的Qt版本中保证程序能够继续运行。 nv12openglwidget 继承自QOpenGLWidget的NV12格式OPENGL绘制窗体。 yuvglwidget 空类,用于没有opengl的Qt版本中保证程序能够继续运行。 yuvopenglwidget 继承自QOpenGLWidget的YUV格式OPENGL绘制窗体。
4.5.6 通用浏览器内核
名称 说明 webcore.pri 通用的根据不同的Qt版本、不同的编译器环境、不同的操作系统,加载对应的浏览器内核模块和定义不同的变量。 miniblink miniblink封装处理类。 webhelper 经纬度转换、获取小数点经纬度值等常用处理函数。 webjsdata 通用的浏览器控件和Qt程序交互数据中转类。 webview 通用浏览器控件,支持webkit、webengine、miniblink。
4.6 界面模块
4.6.1 大屏控件演示
名称 说明 frmcontrol 大屏控件演示主界面,负责加载所有控件演示子窗体。 frmplotarea 曲线面积图。 frmplotbarh 横向柱状图。 frmplotbarhs 横向分组图。 frmplotbars 柱状堆积图。 frmplotbarv 标准柱状图。 frmplotbarvs 柱状分组图。 frmplotdata 数据转曲线。 frmplotnormal 标准曲线图。 frmplotsin 模拟曲线图。 frmplotsmooth 平滑曲线图。
4.6.2 大屏模块演示
名称 说明 frmmodule 大屏子模块演示主界面,负责加载所有子模块界面。 frmmodule1 年度产量汇总。 frmmodule2 当月计划达成率。 frmmodule3 设备监控。 frmmodule4 模具进度。 frmmodule5 负荷分布。 frmmodule6 送检一次合格率。 frmmodule7 品质管理。 frmmodule8 物料管理。 frmmodule9 备用模块。 frmmodulecenter 中心窗体。 frmmodulemap 大屏地图。 frmmodulevideo 视频监控。
4.6.3 主界面模块
名称 说明 frmdevice 设备面板界面。 frmmain 大屏主界面。 frmmain2 以特定分辨率设置的大屏主界面用于截图。
5 效果图
5.1 布局方案
5.1.1 自定义布局1
5.1.2 自定义布局2
5.1.3 自定义布局3
5.1.4 自定义布局4
5.1.5 自定义布局5
5.1.6 自定义布局6
5.1.7 自定义布局7
5.1.8 自定义布局8
5.2 配色方案
5.2.1 紫色风格
5.2.2 蓝色风格
5.2.3 深蓝风格
5.2.4 黑色风格
5.3 模块效果图
5.3.1 产量汇总
5.3.2 当月计划
5.3.3 设备监控
5.3.4 模具进度
5.3.5 负荷分布
5.3.6 送检合格
5.3.7 品质管理
5.3.8 物料管理
5.3.9 视频监控
5.3.10 大屏地图
5.3.10.1闪烁效果
5.3.10.2 迁徙效果
5.3.10.3 世界地图
5.3.10.4 区域地图
5.3.11 系统设置
5.4 控件效果图
5.4.1 标准曲线
5.4.2 曲线面积
5.4.3 模拟曲线
5.4.4 标准柱状
5.4.5 柱状堆积
5.4.6 柱状分组
5.4.7 横向柱状
5.4.8 横向分组
5.4.9 数据曲线
5.4.10 平滑曲线
5.4.11 多坐标轴
5.4.12 多曲线图
5.5 数据库效果图
5.5.1 数据库-sqlite
5.5.2 数据库-mysql
5.5.3 数据库-sqlserver
5.5.4 数据库-postgresql
5.5.5 数据库-oracle
5.5.6 数据库-kingbase
人大金仓数据库-kingbase,其实就是postgresql数据库改的,配置文件都一样,所以可以用连接postgresql数据库的方式进行处理。
5.5.7 数据库-远程访问
5.5.8 数据库-odbc
ODBC连接字符串格式如上图所示。
5.6 各系统运行图
5.6.1 windows-mingw
5.6.2 windows-msvc
5.6.3 linux-ubuntu
5.6.4 linux-uos
5.6.5 linux-kylin
5.6.6 linux-neokylin
5.6.7 linux-fedoar
5.6.8 unix-mac