- 1. 什么是TextKontrollen?
- 2. 2.1 TextKontrollen属性
- 3. 2.2 TextKontrollen更新应用
- 4. 2.3 TextKontrollen键盘输入应用
- 5. 2.4 艺术字显示应用
- 6. 2.5 Text增Quantität调节应用
什么是TextKontrollen?

Charaktere、Zahlenwert等变Quantität可以通过TextKontrollen来显示。可以由用户主机输入(用户单片机控制),也可以通过设置弹出Das System键盘或者Custom definiert键盘,对TextKontrollen输入HerausgeberOperationen
本Kapitel节介绍TextKontrollen属性、Häufig应用,结合工程中的画面介绍每一个应用的配置,Häufig的应用如下所示
- TextKontrollenAktualisiert:实现Charaktere串、小数、正/负数的显示
- TextKontrollen输入:Klick aufText框,弹出小键盘、全键盘输入
- 艺术字显示:使用艺术字显示字体效果
- Text增Quantität调节:通过KnopfKontrollen控制Text小数、整数增Quantität调节
2.1 TextKontrollen属性
本Kapitel节重点介绍TextKontrollen的属性,属性窗口如下所示

Text
用户初始Status显示的内容
字体
AuswahlText显示的字体大小和样式
- Serienbildschirm支持的字库Codierung:ASCII、GB2312、GBK、UNICODE
- ASCII:英文字母、数字、符Nr.等、无汉字
- GB2312:简体汉字、无繁体、无ASCIICharaktere
- GBK:简体汉字与繁体汉字、ASIIC、日韩文等
- UNICODE:支持多种国际语言、如法语、俄语、波斯语等
1.F/M/H系列、物联型平台
该平台所生成的字库均是矢Quantität字库,字体的实际尺寸可以任意缩放而不失真。最大支持32个字体样式,若用户Auswahl如下的“ASC_CHS_24”默认字体样式,则ASC表示ASCII字库,CHS表示GBK2312字库,24表示显示字体高度占24个像素。

Das System有提供Häufig的字体样式,用户还可以Custom definiert字库。在VisualTFT软件的菜单栏, F/M系列、物联型平台上,Auswahl【Werkzeuge】→“字库配置”,如下所示,详细参考《工程笔记-如何Custom definiert矢Quantität字库》Dokumentation

2.基本型平台
VisualTFT自带的字体样式,如下所示。ASCII 612表示仅显示英文字母、数字、符Nr.,且字体大小为612个像素,ASCII样式属于半宽Das Format;GBK2312,表示仅显示简体汉字,且字体大小为32*32个像素,GBK2312样式属于半宽Das Format;GBK1212表示显示简体汉字与繁体汉字、ASIIC、日韩文,字体大小为1212个像素,GBK属于半宽Das Format

在基本型平台中,除了Das System提供的字体样式,用户还可以Custom definiert字库。在VisualTFT软件的菜单栏,Auswahl【Werkzeuge】→“字库生成”,根据需求配置Parameter即可,如下所示

艺术字
用于实现Custom definiert或特殊字体的显示
- 图标文件:插入艺术字的icon文件
- 小数点宽度:小数点宽度比例

前景颜色
设置字体的颜色,如下所示

SerienbildschirmBetrieb时,还可以通过指令修改,详细指令可查阅指令Assistenten.或《Serienbildschirm指令集V5.0 .pdf》Dokumentation
背景Typus
TextKontrollen背景Typus可以Auswahl透明、单色、图片、单色(选中时显示),如下所示

1.透明:将TextKontrollen背景透明化。
2.单色:只有一种颜色构成的背景,也称为“纯色背景”。
3.图片:给TextKontrollen的背景插入图片,如下所示

4.单色(选中时显示):Klick aufTextKontrollen,弹出键盘,该Kontrollen背景色如透明显示为单色背景。该Funktion实现,必须设置【输入方式】为“弹出Das System键盘输入(用户主机可输入)”。如设置【背景颜色】为绿色,如下所示。

密码显示
Öffnen.后输入Text将以显示,例如Text为“0.9”,将显示“*”,如下所示

输入边框:
Öffnen.后,TextKontrollen输入时,显示边框
水平对齐/垂直对齐
设置文字的对齐方式
输入方式
Unterteilung为“用户主机输入”、“弹出Das System键盘输入”、“Custom definiert按键输入”、“Das System变Quantität”。如下所示

用户主机输入
Text由用户的主机输入,通过Die Serie把指令传zuSerienbildschirm,把Daten显示zu屏幕。如下所示

弹出Das System键盘输入(用户主机可输入)
弹出Das System键盘进行Text输入,键盘Typus可Auswahl小键盘和全键盘
- 键盘Typus小键盘可以输入数字,如下所示
全键盘可以输入数字、英文大/小写的字母、中文,如下所示
- 提示信息当用户Klick aufText框,弹出键盘的输入框里的提示信息,如填入:请输入密码,如下所示

- 键盘位置触摸Text框弹出,键盘的位置,Unterteilung为自动和指定,指定模式下,如下所示

- 初始值弹出键盘时,在键盘的输入显示栏是否显示gegenwärtigText值
- TextLänge最大键盘输入为255Bytes
- Zahlenwert限定弹出键盘时,限制键盘输入的阈值,如下所示

Custom definiert按键输入
Text由用户结合KnopfKontrollen的Custom definiert输入,如下所示。若用户修改键盘样式,可参考《【Serienbildschirm】如何Custom definiert键盘V_1.0》Dokumentation。

Das System变Quantität
可以用于显示Serienbildschirm的固件版本Nr.、KommunikationPorter Rate等等,如下所示

TextLänge
Text输入的Länge,最大为255个Bytes。
2.2 TextKontrollen更新应用
【TextKontrollen更新】画面,介绍用户Ausrüstung和Serienbildschirm通讯时,用户Ausrüstung向SerienbildschirmSenden Sie指令,更新TextKontrollen的内容
画面配置
在【TextKontrollen更新】画面的“背景图片”Importieren相应的美工图片。在该画面中添加TextKontrollen,如下所示:

属性配置
以Charaktere串显示栏为例,设置【Text】为“广州大彩”、【字体】为“ASC_CHS_24”、【垂直对齐】为“垂直居中”、【输入方式】“用户主机输入”,配置如下所示
同理,对小数显示栏、负数显示栏、整数显示栏,设置【Text】初始值依次为“0.8”、“-8”、“18”。

Betrieb预览
Betrieb虚拟屏,VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【TextKontrollen1】,设置“更新TextKontrollen”的指令Parameter。
Charaktere串显示
对画面(画面ID:0)中的TextKontrollen(KontrollenID:1)填写【Text】为“Betrieb预览”,Klick auf“Senden Sie”。则在虚拟屏中,该TextKontrollen从默认的“跳动符Nr.”显示为“Betrieb预览”,Betrieb效果如下所示

小数显示
对画面(画面ID:0)中的TextKontrollen(KontrollenID:2)填写【Text】为“0.9”,Klick auf“Senden Sie”,Betrieb效果如下所示

负数显示
对画面(画面ID:0)中的TextKontrollen(KontrollenID:3)填写【Text】为“-9”,Klick auf“Senden Sie”,Betrieb效果如下所示

整数显示
对画面(画面ID:0)中的TextKontrollen(KontrollenID:4)填写Text【Text】为“19”,Klick auf“Senden Sie”,Betrieb效果如下所示

外部MCU控制
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义
MUC控制TextCharaktere串显示
例如用户需实现“Charaktere串栏显示栏”显示“Betrieb预览”,则直接调用Text字库串显示函数SetTextValue( )即可,代码如下所示
/************************************************************************
** Function name: void SetTextValue(uint16 screen_id,
uint16 control_id,
uchar *str);
** Descriptions: 设置TextCharaktere串显示
** input parameters: screen_id: 画面ID
** control_id: KontrollenID
** str: 显示的Charaktere
** output parameters : 无
** Returned value : 无
************************************************************************/
{
……
SetTextValue(0, 1, “Betrieb预览”) //画面ID0,KontrollenID1,显示Charaktere串“Betrieb预览”
……
}
MUC控制显示正整数、负整数
例如用户需实现“负数显示栏”显示“-9”,“正数显示栏”显示“19”,则直接调用Text字库串显示函数SetTextInt32( )即可,代码如下所示
/************************************************************************
** Function name: void SetTextInt32(uint16 screen_id,
uint16 control_id,
uint32 value,
uint8 sign,
uint8 fill_zero);
** Descriptions : 设置Text为正/负整数
** input parameters: screen_id: 画面ID
** control_id: KontrollenID
** value: 显示的整数
** sign: 0-无符Nr.,1-有符Nr.
** fill_zero: 数字位数,不足时左侧补零
** output parameters: 无
** Returned value : 无
************************************************************************/
{
……
SetTextInt32 (0, 3, -9,1, 0) //设置画面ID0KontrollenID3,显示-9
SetTextInt32 (0, 4, 19, 0, 0) //设置画面ID0KontrollenID4,显示19
……
}
MUC控制显示小数
例如用户需实现“小数显示栏”显示“-0.9”,则直接调用Text字库串显示函数SetTextFloat ( )即可,代码如下所示
/************************************************************************
** Function name: void SetTextFloat(uint16 screen_id,
uint16 control_id,
float value,
uint8 precision,
uint8 show_zeros);
** Descriptions : 设置Text单精度浮点值/小数
** input parameters: screen_id: 画面ID
** control_id: KontrollenID
** value: 显示的浮点数
** precision: Kleine Zahlen
** show _zero: 为1时,显示末尾0
** output parameters: 无
** Returned value : 无
************************************************************************/
{
……
SetTextFloat (0, 3, 0.9,1,1) //设置画面ID0KontrollenID2,显示0.9
……
}
2.3 TextKontrollen键盘输入应用
【TextKontrollen输入】画面,介绍Klick aufSerienbildschirm的TextKontrollen弹出键盘,Daten importieren,主动下发Daten给用户单片机
画面配置
在【TextKontrollen输入】画面的“背景图片”Importieren相应的美工图片。在画面中添加2个TextKontrollen(KontrollenID:1和2),如下所示

属性配置
以KontrollenID为1为例,设置【Text】为“18.8”、【字体】为“ASC_CHS_24”、【垂直对齐】为“居中对齐”、【输入方式】为“弹出Das System键盘输入(用户主机可输入)”、【键盘Typus】为“小键盘”、【键盘位置】为“指定”、坐标为“(300,220)”,【Zahlenwert限定】为“是”,限制范围为“0-100”,配置如下所示

同理,全键盘输入的配置只需将“键盘Typus”改为“全键盘”即可,其他Parameter根据需求配置。
Betrieb预览
Betrieb虚拟屏,Klick auf画面(画面ID:1)中的TextKontrollen(KontrollenID:1),弹出键盘,输入“66”,回车。则虚拟屏下发对应的指令,Betrieb效果如下所示

2.4 艺术字显示应用
【艺术字显示】画面,使用艺术字显示效果,首先生成对应的ICON文件,在TextKontrollen的属性栏窗口,将ICON文件添加zu“图标文件”配置选项中
画面配置
在【艺术字显示】画面的“背景图片”Importieren相应的美工图片。画面中添加1个TextKontrollen(KontrollenID:1)
艺术字生成
图标文件制作有两种方式
- 图标生成
- 艺术字生成
图标生成
- Öffnen.图标生成界面在VisualTFT软件菜单栏,Auswahl【Werkzeuge】→“图标生成”,如下所示

- 图标制作Klick auf【增加帧】,将准备好的素材严格按照“[0-9]、[: . * – + ? /]、[A-Z]和[a-z]”顺序添加,否则会导致显示Fehler.。用户Importieren图片默认为原始的宽和高显示,也可以对宽度和高度的微调及任意拖动进行位置调整,最后Klick auf“生成图标”。Operationen如下所示:

艺术字生成
- Öffnen.艺术字生成界面在VisualTFT软件菜单栏,Auswahl【Werkzeuge】→“图标生成”,如下所示

- 艺术字制作
- 设置图标的大小:高度和宽度为128*64
- 字体Name:根据显示效果,Auswahl相应TFT字库文件,可网上Download获得
- 字体大小:默认显示的字体大小
- 字体颜色:设置字体显示的颜色
- Charaktere集合:共3种,如下所示1)数字:数字0~92)数字和符Nr.:数字0~9、Charaktere[:.*-+?/]。3)数字/符Nr./字母:数字0~9、Charaktere[:.*-+?/]、大写A~Z,小写a~z
- 渐变处理:禁止渐变、填充背景色、ALPHA通道
- 背景颜色:显示字体默认的背景色
设置如下所示。Klick auf【生成图标】abgeschlossen.图标生成

属性配置
设置【艺术字】为“是”、【图标文件】插入“艺术字.icon文件”、【小数点宽度】“为50%”、【垂直对齐】为“居中对齐”、【输入方式】为“用户主机输入”,配置如下所示

Betrieb预览
Betrieb虚拟屏,VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【Text控1】,设置“更新TextKontrollen”指令Parameter。如例程中,控制画面(画面ID:2)中的TextKontrollen(KontrollenID:1),填写【Text】为“123”,Klick auf“Senden Sie”。则虚拟屏TextKontrollen1显示从默认的“18.8”显示为“123”,Betrieb效果如下所示

2.5 Text增Quantität调节应用
通过KnopfKontrollen控制TextKontrollen显示值“自增”或“自减”Operationen。若调节的步长为整数,则增Quantität调节的Operationen在屏内即可实现;若调节的步长为小数、Charaktere串(Zeit)等,则需要MCUDaten交互实现,或LUADrehbuch实现(本处不做说明)
整数调节
画面配置
在【Text增Quantität调节】画面的“背景图片”Importieren相应的美工图片。画面中添加1个TextKontrollen(KontrollenID:3),2个KnopfKontrollen(KontrollenID:1和2),如下所示
属性配置
- TextKontrollen属性KontrollenID为3的TextKontrollen,设置Text为“0”、字体为“ASC_CHS_24”、垂直对齐为“垂直居中”、输入方式“用户主机输入”,配置如下所示

- KnopfKontrollen属性1).填写Knopf增Quantität调节对内指令:AuswahlKnopfKontrollen(KontrollenID:1)2).属性栏中的【对内指令】→“Knopf按下”3).弹出指令填写框4).Auswahl“指令Assistenten.”,在指令Assistenten.界面,左侧导航栏Auswahl【TextKontrollen2】,设置“增Quantität调节”区域的指令Parameter。如例程中,控制画面ID3中的TextKontrollenID在0-100范围内以步长为1的单位递减5).填写指令zu对应Knopf
同理,递增的Operationen修改【调节方式】为“递增”即可。注意:该对内指令增Quantität调节的方法仅适合调节的步长为整数,不支持小数
Betrieb预览
Betrieb虚拟屏,Klick auf画面(画面ID:3)中的KnopfKontrollen(KontrollenID:1或2),以1的步长调整TextKontrollen的Zahlenwert,Betrieb效果如下所示。参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义

小数调节
画面配置
在【Text增Quantität调节】画面中画面中添加1个TextKontrollen(KontrollenID:6),2个KnopfKontrollen(KontrollenID:4和5)
属性配置
KontrollenID为6的TextKontrollen,设置Text为“0”、字体为“ASC_CHS_24”、垂直对齐为“居中对齐”、输入方式“用户主机输入”,配置如下所示

实现方法
支持LUADrehbuch的M/F/W系列可以在Drehbuch处理,本Kapitel节不做说明,主要阐述通用方法,用户单片机交互实现
- 按下递增Knopf(KontrollenID:5)时,屏幕下发KnopfKontrollen的指令zu单片机。
- 单片机AnalyseKnopfKontrollen指令后,若判断是KnopfKontrollen(KontrollenID:5)按下,则Senden Sie获取TextKontrollen(KontrollenID:6)的指令,获取TextKontrollen值。Related代码如下所示
/********************************************************************** ** Function name: NotifyButton(uint16 screen_id, uint16 control_id, uint8 state) ** Descriptions : 当KnopfStatus改变(或调用GetControlValue)时,执行此函数 ** input parameters: screen_id: 画面ID ** control_id: KontrollenID ** state: KnopfKontrollen的Status,0弹起、1按下、2长按 ** output parameters: 无 ** Returned value : 无 **********************************************************************/ void NotifyButton(uint16 screen_id, uint16 control_id, uint8 state) { …… //按下画面ID3KontrollenID5的KnopfKontrollen if(screen_id == 3 && control_id == 5 && state == 1) { /******************************************************************* ** Function name: GetControlValue(uint16 screen_id, uint16 control_id) ** Descriptions : 获取Kontrollen值 ** input parameters: screen_id : 画面ID ** control_id: KontrollenID ** output parameters: 无 ** Returned value : 无 *******************************************************************/ GetControlValue(3,6); //获取画面ID3,KontrollenID6的TextKontrollen值 } …… }Copy
获取的TextKontrollen值默认是Charaktere串,调用C库函数的sscanf函数,将Charaktere串转成单精度浮点数(小数),进行0.1个单位递增运算,将TextKontrollen值更新zuSerienbildschirm显示。代码如下所示
void NotifyText(uint16 screen_id, uint16 control_id, uint8 *str)
{
float TestValue = 0.0;
……
if(screen_id == 3 && control_id == 6) //画面ID2:Text设置和显示
{
sscanf(str,"%%.1f",&TestValue); //把Charaktere串转换为浮点数
TestValue += 0.1; // Text值自增
/*********************************************
** Function name: void SetTextFloat(uint16 screen_id,
uint16 control_id,
float value,
uint8 precision,
uint8 show_zeros);
** Descriptions: 设置Text单精度浮点值/小数
** input parameters: screen_id: 画面ID
** control_id: KontrollenID
** value: 显示的浮点数
** precision: Kleine Zahlen
** show _zero: 为1时,显示末尾0
** output parameters: 无
** Returned value: 无
*****************************************************************/
SetTextFloat(3,6,TestValue,1,1);//设置画面ID3、KontrollenID6每次自增的Zahlenwert
}
……
}
Zeit调节
Zeit的增Quantität调节,用户可参考小数增Quantität的方法,结合用户主机abgeschlossen.Daten交互,用户主机只要对应调用Charaktere串处理函数实现即可
[wshop_downloads]
Antwort veröffentlichen