当前位置:首页 > 公众号精选 > 漫长当下

有时候项目需求中需要人机交互,显示设备选择的是单色OLED屏,不支持触摸,操作接口是按键,如果你不想移植复杂的窗口式GUI库,就可以使用这种简洁的菜单式GUI(其实也不能完全的称之为GUI,一个GUI包含很多东西,我只是提供了一种思路,可以叫做框架吧),当然这种多级菜单结构也不限于用在OLED屏上,某些需要做一些菜单结构的场景也同样适用,只要你能用OLED显示内容,那么就可以很简单的用起来,最终实现效果就和我们用电脑的上、下、左、右、Enter、Backspace键操作文件夹和文件类似,只不过文件夹变成了菜单选项而已,具体可参见下面的视频演示,当然在OLED这种小屏上还有其它需要考虑的很多问题。

    实录效果:

部分图形绘制代码参考了

开源GUI库,如画线、画框等,当然你也可以自己提供这些函数的实现;程序虽然用的是C语言实现,但是包含了面向对象的思想,增加、删除、替换一个菜单都是轻而易举的事情,不像网上流传的那些使用索引来组织各个菜单的方法,如果你想修改一个菜单那么极有可能你要修改与之关联的各个环节的代码,几乎没有可移植性,为什么这样说呢,因为我现在接手的项目是上一位同事留下的,使用的方法就是通过索引将各个菜单关联起来,如果想修改一个菜单,必须将整个关联部分全部重新修改一遍,你就知道这种方法有多难用了。

为什么不直接移植一个GUI呢,现在流行的GUI那么多,如emWin、TouchGFX、LittlevGL等,之前也想过移植一个,但发现项目中使用的都是256*64或者128*32的单色OLED屏,直接移植这些GUI带来的内存开销太大,而且操作方式是按键不支持触摸,这类GUI对按键的支持都不算很好,所以移植现成GUI不太适合,便自己写了一个简洁的多级菜单式GUI,但如果是全彩屏又支持触摸,那么就完全可以移植现成的GUI来用,肯定比自己重新写要强得多,而且有很多控件可以将画面做得很绚丽。

后续的文章会渐进的将整个程序原型实现出来。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭