msOS选用128*64的字库是非屏,下降硬件规划复杂度,这个屏一行能够显现8个汉字或许16个字母,一共4行。界面开发根据面向目标方法,把界面笼统为几个页面,而页面又由控件组成,以我做的高频机为例,笼统了5个页面,每个页面上都由布景文字、标签和文本组成。

上图为作业页面,由一张布景文字(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选用的菜单界面,十分简略,是一个架构性的菜单界面,很合适用户看懂之后,自己修正、增删,也能够应用于彩屏。菜单界面的细节部分,请参阅源码。