新闻中心

EEPW首页 > 消费电子 > 牛人业话 > 面向对象的界面编程-嵌入式微系统连载之九

面向对象的界面编程-嵌入式微系统连载之九

作者:时间:2014-09-23来源:网络收藏

  msOS采用128*64的字库黑白屏,降低硬件设计复杂度,这个屏一行可以显示8个汉字或者16个字母,总共4行。界面开发基于方式,把界面抽象为几个页面,而页面又由控件组成,以我做的高频机为例,抽象了5个页面,每个页面上都由背景文字、标签和文本组成。

本文引用地址:http://www.eepw.com.cn/article/263244.htm

  

 

  上图为工作页面,由一张背景文字(BackText),两个文本(TextBox)和五个标签(Label)组成。背景文字用于显示固定的说明文字,比如频率、功率等,这些文字在这个页面下是固定不能变化的。标签控件用于显示变量值,可以是字符串也可以是数字。文本控件具有标签的功能外,还可以通过按键等修改变量值。以上三种控件构成了最常用的页面。

  接触过PC机的,对于控件概念是非常容易接受的,若没有接触过,可以通过msOS配套的硬件开发平台msPLC Demo了解界面,这样会相对容易很多,此外也可以接触一下C#,从跟msOS配套的msMenu源码入手,这个msMenu源码比较简单,在PC机上用C#虚拟了128*64的黑白字库屏。有了msMenu,各类STM32F103的开发板都可以运行msOS,通过串口跟PC机通讯,在msMenu上显示,不需要硬件LCD屏,方便大家学习。msMenu的两个主显示区,就是由两个大的TextBox组成。

  下图为msMenu

  

 

  界面编程基于设计,首先要建立页面及各个控件的对象类型。下图为页面的对象类型。

  

 

  BackTextPointer:背景文字控件加载点,是一个16*4字节的数组,作为页面背景。

  ChartPointer:图表控件加载点,高频机项目中用到,是一个特殊控件,一般项目用不到。

  LabelPointer:标签控件加载点,一个Form可以支持多个Label,需要支持多控件级联。

  TextBoxPointer:文本控件加载点,一个Form可以支持多个TextBox,需要支持多控件级联。

  FocusTextBoxDataPointer:文本控件操作选择,设定焦点用于选择那个文本控件用于输入。

  

 

  

 

  设计程序的时候,第一步要建立页面Form,如下图:

  

 

  第二步,定义各种控件和资源。

  

 

  第三步,各个页面加载控件,初始化控件参数,关联业务逻辑数据库中的数据。

  

 

  第四步,执行MenuTask解析当前页面

  

 

  msOS采用的菜单界面,非常简单,是一个架构性的菜单界面,很适合用户看懂之后,自己修改、增删,也可以应用于彩屏。菜单界面的细节部分,请参考源码。



评论


相关推荐

技术专区

关闭