切换到宽版
  • 9768阅读
  • 9回复

[STM]有人知道组态屏的工作原理吗? [复制链接]

上一主题 下一主题
离线南天音乐
 

发帖
180
M币
49
专家
5
粉丝
5
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-04-13
        市面上有很多这种组态屏,界面设计在电脑端上位机完成,包括按钮控件、文本控件等只需拖放到对应位置即可,界面设计好后下载到组态屏上,看到的就是电脑中设计的样子,还能完成人机交互(如切换页面)而不需要其他控制器。这种屏的好处就是UI设计是独立的,客户无需关注UI到底要怎么实现,只需通过通信的方式去操作组态屏就可以了。
        买过一个组态屏,分辨率是320*240,整个屏只有一个STM32F030控制器。很好奇,这么一个MCU,是如何实现将上位机制作好的界面给重现出来,并且还可以实现交互动作呢?
        我个人猜想,上位机设计好每个页面后,应该生成了一系列页面元素的控件类型、位置、大小、颜色等信息,并把这些信息传输给组态屏的控制器。控制器通过读取这些元素描述,动态的在页面上绘制出这些控件。
        但我有几个问题不明白。第一,就是平时我自己写GUI程序时,比如用emwin,在显示屏上创建控件都是直接用代码编写的,控件都是先定义好的,通过编译后,控件什么的也就定死了。但这个屏,貌似单片机程序是固化的,只需上位机软件传输一些不知道是什么数据过去,就能动态的创建各种控件,那到底是如何实现动态创建控件呢?或者换句话说,如何做到单片机程序固定,UI可变,即程序和UI是彻底分离的?
        第二,就算我通过读取控件描述实现了控件绘制,那控件执行的事件(如按键触摸),到底又是如何在固化好的单片机程序中执行起来的呢??还是说,其实这个组态设计软件其实内含编译功能,会将UI跟单片机程序重新进行编译,每次下载进单片机的其实是重新刷新固件?但我问过一些相关人士,他们给出了否定的答案,单片机程序就是固化的。。。
        第三,如果真是解析运行,STM32F030这种单片机内存也不大,运行速度也不低,居然运行挺流畅。。连我在裸机时代要实现变化的文本透明底色的功能,在他这里也仅仅是上位机设定一个属性就解决了。。。
        网上貌似找不到相关的资料,特来问问大伙,有人知道这种组态屏,到底是怎么实现的吗?
离线lvehe

发帖
94
M币
220
专家
4
粉丝
7
只看该作者 1楼 发表于: 2018-04-13
请登录后查看
离线南天音乐

发帖
180
M币
49
专家
5
粉丝
5
只看该作者 2楼 发表于: 2018-04-13
回 lvehe 的帖子
请登录后查看
离线捱多年

发帖
139
M币
148
专家
0
粉丝
2
只看该作者 3楼 发表于: 2018-04-13
请登录后查看
离线jzz788

发帖
3204
M币
733
专家
2
粉丝
220
只看该作者 4楼 发表于: 2018-04-13
请登录后查看
离线南天音乐

发帖
180
M币
49
专家
5
粉丝
5
只看该作者 5楼 发表于: 2018-04-13
回 捱多年 的帖子
请登录后查看
离线捱多年

发帖
139
M币
148
专家
0
粉丝
2
只看该作者 6楼 发表于: 2018-04-13
请登录后查看
离线南天音乐

发帖
180
M币
49
专家
5
粉丝
5
只看该作者 7楼 发表于: 2018-04-13
回 捱多年 的帖子
请登录后查看
离线撒卡丁车

发帖
22
M币
-468
专家
0
粉丝
4
只看该作者 8楼 发表于: 2018-04-14
请登录后查看
离线join22life
发帖
4
M币
-497
专家
0
粉丝
0
只看该作者 9楼 发表于: 2019-08-06
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个