文本显示器HMI开发- 静态文本控件效果
本帖最后由 mcu_lover 于 2016-1-6 22:15 编辑兴趣使然,从12年开始这个文本HMI 组态软件的上位软件 以及下位软件的开发。
因为是业余时间整,所以时间非常非常难以保证。今年基本上才写了不到5000行。
一直想有大把的时间投入上去,但是生活艰辛。只能抽空去整一整。
静态文本显示控件应该算是定型了。
顾名思义,静态文本就是显示预先设定好的静态文本字符串。
字符串可以支持任意字符,可以在任意位置显示。
字符串水平方向支持 左/中/右三种对齐方式。
垂直方向支持 上/中/下 三种对齐方式。
字符串外框支持 22 种显示风格。
支持 闪烁方式 显示 ,快 / 中 /慢 三种闪烁方式。
两种闪烁模式 : 正常 / 隐藏 正常/取反
支持滚动方式显示 ,滚动时间,每次滚动点数均可以自由设置。
滚动方向支持 上/下/左/右四个方向
功能应该算得上是比较强大的了。
文本控件属性设置界面如下:
部分外观如下:
视频更直接:
http://v.youku.com/v_show/id_XNzcyNDc2MTYw.html
http://v.youku.com/v_show/id_XOTQxNzY5OTcy.html
http://v.youku.com/v_show/id_XNzY4MTY0NTU2.html
牛气呀,做的太极致了!! 给大神顶起,这GUI做得很强, 看过您很多帖子, 很受益,谢谢。
(也看过您的一些代码片段, 总感觉风格有些农民讲习所的味道, 嘿嘿~~) 厉害,我前段时间也为公司做了一个文本显示器,基本控件都有。 上位机用的那个? 顶,太牛X了……看过大师不少贴子,都是经典! 可以参考zlg gui foxpro2005 发表于 2016-1-6 23:04
给大神顶起,这GUI做得很强, 看过您很多帖子, 很受益,谢谢。
(也看过您的一些代码片段, 总感觉风格有 ...
农民讲习所的编程思想还是挺不错的。来源于他自身本来也是做上位机的。
建议有空的话,可以学习下WIN32程序设计,对于程序结构,编程思想,会大有裨益。 Excellence 发表于 2016-1-7 08:38
上位机用的那个?
上位机自己开发的。上下位机都需要自己开发。从零开始。 fengyunyu 发表于 2016-1-7 09:08
可以参考zlg gui
传统的GUI都没有办法比拟的。 如果能灵活的定义外维按键,做一些非标的界面机,比起信捷来才会有竞争力 谢谢分享,看过楼主之前发的GUI设计的资料,很受启发。
楼主可以更进一步,做一个工具把GUI设计集成起来,以后GUI设计可以完全自动化。 现在很多GUI没有字体渐变遮挡,比如下拉段落显示一般都是直接出现或隐藏,整字跳变。楼主这GUI估计用显示范围直接影响字体打印函数。 本帖最后由 Excellence 于 2016-1-7 10:35 编辑
又看看了楼主的文章。
楼主现在做的主要是文本显示器,类似VC6上的按键,进度条等等控件都做吗?
如果能把控件做好,这一点工作量就不小。大彩的就几个控件,迪文也不多。
上位机和UCBUILDER有点类似,下位机和串口屏想象。
自己做,工程巨大。
我现在仅仅用串口屏。通过单片机和串口屏通讯,感觉写程序很纠结,一会画图,一会码代码。
自己开发,上下位机,编程序,感觉很分裂。呵呵。
楼主上位机用的c#吗? mcu_lover 发表于 2016-1-7 09:13
上位机自己开发的。上下位机都需要自己开发。从零开始。
是C#吗? 上位机点阵显示的底层函数能指导一下不? 这个点阵显示不太会用C#来实现; 要不然,我也上了这个东西啦; kinsno 发表于 2016-1-7 12:22
是C#吗? 上位机点阵显示的底层函数能指导一下不? 这个点阵显示不太会用C#来实现; 要不然,我也上了这个东 ...
UCGUI有VC6的例程,可以参考。 开源吗? Excellence 发表于 2016-1-7 10:34
又看看了楼主的文章。
楼主现在做的主要是文本显示器,类似VC6上的按键,进度条等等控件都做吗?
如果能把 ...
是啊,要做的组态控件很多。
HMI组态软件,比串口屏要复杂的多。
工作量超大。上位机的代码最终应该在15W~20W之间。现在上位机代码写了不到3W行。
下位机也是同步进行。
一般这类东西,都是一个团队来做。周立功投入了一个几十人的团队,花了三四年,几千万投入做出来的HMI,现在也基本停掉了。定位没做好,成本控制做不下来。
而且这类系统软件都是上下位机同时进行,因为都是在不断的测试调整。 河图洛书 发表于 2016-1-7 11:42
楼主上位机用的c#吗?
C++. 开发环境VC。
这类系统软件用C++会比较方便一些。 楼主有兴趣合作开发么? kinsno 发表于 2016-1-7 12:22
是C#吗? 上位机点阵显示的底层函数能指导一下不? 这个点阵显示不太会用C#来实现; 要不然,我也上了这个东 ...
C++。
能具体点说吗?我看看是哪个部分。 楼主很专注这个,赞! 本帖最后由 foxpro2005 于 2016-1-7 13:56 编辑
这个显示的原理是不是:
在RAM建立了一个GUI显示缓存,然后有一个专门负责屏幕刷新维护的任务(或线程,它定时整屏刷新 或 数据有变化时只刷新变化区域), 而每个控件(或直接显示字符串等)相关的任务直接操作的GUI显示缓存。
另外请教下,看您的这些控件或图形,是不是还涉及到了显示层(Layer,上一层可以覆盖下一层的部分显示区域)的概念? 如果是, 控件显示冲突(或者说干涉)怎么处理的呢? 有没有建立控件与层的相关属性?
mcu_lover 发表于 2016-1-7 13:20
C++。
能具体点说吗?我看看是哪个部分。
比如,画点函数和汉字取模点阵之间的转换; 例如,一个汉字,如何使用画点函数实现出来;
PS: 不过话说回来, 这个东西,确实很好, 其实好多时间,我们的理想往往都没有时间实现; foxpro2005 发表于 2016-1-7 13:55
这个显示的原理是不是:
在RAM建立了一个GUI显示缓存,然后有一个专门负责屏幕刷新维护的任务(或线程,它 ...
显示有缓存。这个界面就是我发表过得裸机界面开发介绍的一个实现。控件的状态变化了才去刷新。控件之间有z序的关系。刷新时候要考虑它们之间的关系。 kinsno 发表于 2016-1-7 16:59
比如,画点函数和汉字取模点阵之间的转换; 例如,一个汉字,如何使用画点函数实现出来;
PS: 不过话说回来,...
上位机有setpixel 之类的函数,可以用来绘制图形,文字可以直接drawtext 输出。为了实现上位机显示效果和下位机一致,需要对字符串取模。可以drawtext到画布,然后getpixel ,这个是最简单直观的方法。 本帖最后由 kinsno 于 2016-1-7 21:33 编辑
mcu_lover 发表于 2016-1-7 18:29
上位机有setpixel 之类的函数,可以用来绘制图形,文字可以直接drawtext 输出。为了实现上位机显示效果和 ...
搞定,上网找了一个取模软件;找个时间,我也搞个文本显示器; MARK文本显示器HMI开发- 静态文本控件效果有VC 上位机程序GUI 开发 mark 一下 有vc 上位机 程序 ,GUI 开发 类似 农民讲习所 的代码风格
页:
[1]