- 1. 什么是KnopfKontrollen?
- 2. 1.1属性介绍
- 3. 1.2 KnopfSchalter!Funktion应用
- 4. 1.3 Knopf逻辑Funktion应用
- 5. 1.4 单Knopf多Status应用
- 6. 1.5 Knopf的禁止与使能应用
- 7. 1.6 Custom definiert指令应用
什么是KnopfKontrollen?

KnopfKontrollen可以设置弹起或按下的Status。
Kontrollen的背景可以设置为单色,也可以设置图片,这样按下时就可以看zu真实Knopf按下的效果。
KnopfKontrollen还可以实现多种Funktion,如长按、瞬变、置位等。
本Kapitel节介绍KnopfKontrollen基本属性、Häufig的应用,结合工程中的画面介绍每一个应用的配置,Häufig的应用如下所示:
KnopfSchalter!Funktion:
实现瞬变、Schalter!、置位、复位、长按、延时的Funktion
Knopf逻辑Funktion:
实现两个Knopf的互斥、使用指令实现总Schalter!的Funktion
单Knopf多Status:
可以用一个Knopf和一个图标实现多StatusKnopf的Funktion
Knopf的禁止与使能:
使用Knopf的延时Funktion对其它Knopf进行禁止和使能
Custom definiert指令:
按下Knopf时对外Senden SieCustom definiert指令
1.1属性介绍
本Kapitel节重点介绍KnopfKontrollen的属性,属性窗口下所示

触摸虚框
用户按下Knopf时,显示虚框,如下所示:

Ereignisse通知
KnopfStatus改变时,上传通知。
(注意如果SchließenKnopf通知的话,minicDrehbuch、luaDrehbuch对应Knopf不会触发回调,同时也没有指令通过Die Serie发出)
弹起时的图片
Knopf弹起Status时显示的图片。勾选“裁剪”时,将显示图片中Knopf坐标对应的区域的图像

按下时的图片
Knopf按下时显示的图片。勾选“裁剪”时,将显示图片中Knopf坐标对应的区域的图像

文字Status
在KnopfKontrollen上显示文字。Auswahl“是”,可按Status显示文字,如下所示
- 字体:文字大小和样式
- 弹起时的颜色、按下时的颜色:文字的颜色
- 弹起时的文字、按下时的文字:两种不同Status时显示的文字

触控用途
- Wechseln画面
- Schalter!描述
- Custom definiert按键
- Custom definiert指令
- 弹出菜单
如图所示:

Wechseln画面
Wechselnzu指定画面,RelatedParameter配置如下所示:

可选Funktion有:
- 目标画面:Klick aufKnopfKontrollen时,Wechselnzu指定画面
- 子画面:子画面一般为透明背景的小窗口,可作为对话框使用。目标页面的【背景透明】Auswahl“透明”,在页面中设置一个图片Kontrollen,图片Kontrollen的【路径】Auswahl对应的UI,显示效果如下所示

- 动画效果:Wechseln页面时的过渡效果,可以Auswahl整个画面从左zu右、从上zu下、渐隐渐消、逐渐Öffnen.等效果。仅物联型支持此Funktion
- 动画范围:在指定范围内显示动画效果,在指定范围外不显示,可以设置整个画面或指定范围
- 密码保护:Öffnen.密码保护后,需要输入Richtig.的密码才能Wechseln画面
Schalter!描述
KnopfSchalter!的Funktion,RelatedParameter配置如下所示:

可选Funktion有:
- 初始Status:Schalter!的初始Status。
- Operationen风格:
- 瞬变:松开后,Schalter!自动弹起,类似轻触Schalter!Funktion。
- Schalter!:按下后,Schalter!由弹起变成按下或由按下变成弹起,类似带锁Schalter!Funktion。
- 置位:Schalter!只能由弹起变成按下。
- 复位:Schalter!只能由按下变成弹起。
- 长按:与瞬变Knopf相似,但按压时每隔100毫秒通知一次。
- 延时:按压指定ZeitLänge后发出通知
- 对内指令:在按下或者弹起后,对内部执行的指令
- 对外指令:在按下或者弹起后,对外部Senden Sie的指令
Custom definiert按键
把相应Knopf转换成值输入。需要配合Custom definiert键盘输入的TextKontrollen使用,可以将KnopfKontrollen设计为Custom definiert键盘,用户需要把KnopfKontrollen当做Custom definiert按键

Custom definiert指令
Senden SieCustom definiert的16 EinführungDas Format的Daten。即为用户设置按下Knopf后,Ausrüstung上传Custom definiert的DatenMeldung。不能Senden Sie帧尾为FF FC FF FF的Meldung,和大彩Vereinbarung冲突

弹出菜单
需要协同菜单Kontrollen和TextKontrollen使用,实现Klick aufKnopf即可弹出菜单,用户在Auswahl弹出的菜单后,配合TextKontrollen,把所选Daten显示出来

1.2 KnopfSchalter!Funktion应用
【KnopfSchalter!Funktion】画面,介绍Knopf的瞬变、Schalter!、置位、复位、长按、延时Funktion
画面配置
在【KnopfSchalter!Funktion】画面的“背景图片”Importieren相应的美工图片。在该画面中设置KnopfKontrollen

属性配置
- 瞬变以Knopf的瞬变Funktion为例,设置【触摸虚框】为“否”、【按下时的图片】Auswahl处理好的图片、勾选【裁剪】、【触摸用途】为“Schalter!描述”、【Operationen风格】“瞬变”
同理,其它Knopf的【触摸虚框】、【按下时的图片】、【裁剪】、【触摸用途】设置相同,但是Operationen风格设置不同,此文不在赘述 - Schalter!设置Knopf的Schalter!Funktion,【Operationen风格】为“Schalter!”,如下所示

- 置位设置Knopf的置位Funktion,【Operationen风格】为“置位”,如下所示

- 复位设置Knopf的复位Funktion,【初始Status】为“按下”、【Operationen风格】为“复位”,如下所示

- 长按设置Knopf的长按Funktion,【Operationen风格】为“长按”、【长按延时】为“0.1s”,如下所示

- 延时设置Knopf的延时Funktion,【Operationen风格】为“延时”、【长按延时】为“5s”,如下所示

Betrieb预览
Betrieb虚拟屏,VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【KnopfKontrollen】,设置“设置KnopfKontrollen弹起和按下Status”的指令Parameter。设置画面(画面ID:0)中的KnopfKontrollen(KontrollenID:1)按下。则在虚拟屏中,该KnopfKontrollen从弹起变为按下,Betrieb效果如下所示

MCU控制KnopfStatus
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。例如用户需设置KnopfStatus,则直接调用设置Knopf函数SetButtonValue ( )即可,代码如下所示。
/*******************************************************************
** Function name: void SetButtonValue(uint16 screen_id,
** uint16 control_id,
** uchar value);
** Descriptions : 设置KnopfStatus
** input parameters:
** screen_id : 画面ID
** control_id: KontrollenID
** value : KnopfStatus,0为弹起,1为按下
** output parameters : 无
** Returned value : 无
*******************************************************************/
{
……
SetButtonValue(1, 1, 1); //画面ID1,KontrollenID1,Knopf按下
……
}
1.3 Knopf逻辑Funktion应用
【Knopf逻辑Funktion应用】画面,介绍Knopf的互斥、和总Schalter!控制Funktion。
Knopf互斥
画面配置
在【KnopfSchalter!Funktion】画面的“背景图片”Importieren相应的美工图片。在该画面中设置KnopfKontrollen,如下所示

属性配置
Knopf“Start”:设置【触摸虚框】为“否”、【按下时的图片】Auswahl设置好的图片、勾选【裁剪】、【触摸用途】为“Schalter!描述”、【Operationen风格】“Schalter!”,配置如下所示

同理,Knopf“Stop”的【触摸虚框】、【按下时的图片】、【裁剪】、【触摸用途】、【Operationen风格】设置相同,但是【初始Status】设置为“弹起”
互斥配置
互斥Knopf的设置方法如下,同时AuswahlKnopf“Start”和“Stop”,然后依次Klick auf【菜单】-【Herausgeber】-【Schalter!Knopf互斥】,Öffnen.Knopf互斥,自动会往Knopf对内置指令添加Knopf批Quantität处理指令,Operationen如下所示

Betrieb预览
Betrieb虚拟屏,Klick aufKnopf“Start”和“Stop”,同一Zeit只有一个Knopf可以处于按下Status。如下所示

KnopfSchalter!控制
画面配置
在【KnopfSchalter!Funktion】画面的“背景图片”Importieren相应的美工图片。在该画面中设置KnopfKontrollen,如下所示:

属性配置
设置Knopf1、Knopf2、Knopf3,设置【触摸虚框】为“否”、【按下时的图片】Auswahl设置好的图片、勾选【裁剪】、【触摸用途】为“Schalter!描述”、【Operationen风格】“Schalter!”,如下所示

设置KnopfOpen all,设置【触摸虚框】为“否”、【按下时的图片】Auswahl设置好的图片、勾选【裁剪】、【触摸用途】为“Schalter!描述”、【Operationen风格】“Schalter!”,如下所示

AuswahlKnopfKontrollen(KontrollenID:6)
- 属性栏中的【对内指令】→“弹起时”
- 弹出指令填写框,Auswahl“指令Assistenten.”
- 在指令Assistenten.栏,AuswahlKnopfKontrollen
- 如设置画面ID1、KnopfKontrollen1的Status按下,Klick auf按下生成指令
- Kopieren.指令zu对内指令窗口
同理,KnopfKontrollenID2、ID3的Knopf按下效果重复4-5步骤即可。当KnopfKontrollenID6弹起时候,设置KnopfKontrollenID1、2、3的Knopf弹起Status的处理方式类似

Betrieb预览
Betrieb虚拟屏,VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【批Quantität更新KontrollenZahlenwert】,设置“更新多个KontrollenZahlenwert”的指令Parameter。设置【画面ID】Auswahl“1”,【KnopfTypus】为“KnopfKontrollen”,【KnopfID】Unterteilung别填写3、4、5,【值】都写1。则在虚拟屏中,该KnopfKontrollen从弹起变为按下,Betrieb效果下所示
PS:同时支持Senden Sie指令一个Knopf一个Knopf设置控制,本处不演示Betrieb效果

MCU批Quantität控制KnopfStatus
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。例如用户需批Quantität设置同一个页面的KnopfStatus,则直接调用批Quantität设置Knopf函数BatchSetButtonValue ( )即可,代码下所示:
/*******************************************************************
** Function name: void BatchSetButtonValue (uint16 control_id,
** uint8 state);
** Descriptions : 批Quantität更新gegenwärtig页面的KnopfStatus
** input parameters:
** control_id: KontrollenID
** state : KnopfStatus,0为弹起,1为按下
** output parameters: 无
** Returned value : 无
*******************************************************************/
{
BEGIN_CMD(); //指令开头
BatchSetButtonValue(1, 1); //KontrollenID1,Knopf按下
BatchSetButtonValue(2, 1); //KontrollenID2,Knopf按下
……
END_CMD(); //指令结尾
}
1.4 单Knopf多Status应用
【单Knopf多Status】画面,介绍使用一个Knopf和一个图标实现多StatusKnopf的Funktion
画面配置
在【单Knopf多Status】画面的“背景图片”Importieren相应的美工图片。在该画面中设置KnopfKontrollen,如下所示:

属性配置
设置图标Kontrollen的属性,【图标文件】Auswahl制作好的ICON文件,配置如下所示

AuswahlKnopfKontrollen(KontrollenID:2),属性栏中设置【触摸虚框】为“否”,对Knopf按下填写对应的指令,步骤如下所示
- 【对内指令】→“按下时”,弹出指令填写框
- Auswahl“指令Assistenten.”
- 在指令Assistenten.界面,左侧导航栏Auswahl【图标Kontrollen】
- 设置“图标Kontrollen显示”区域的指令Parameter,填写对应的Parameter。如设置画面(画面ID:2)中的图标Kontrollen(KontrollenID:1),Klick auf下一帧
- Kopieren.指令zu【对内指令】→“按下时”的窗口,Operationen如下所示:

Betrieb预览
Betrieb虚拟屏,Klick aufKnopf,图标会轮询显示。VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【图标Kontrollen】,设置“图标Kontrollen显示”的指令Parameter。设置画面(画面ID:2)中的KnopfKontrollen(KontrollenID:1)的图标Kontrollen显示Die1帧。则在虚拟屏中,Knopf显示“暂停Pause”,Betrieb效果如下所示

MCU设置图标的显示
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。例如用户需设置图标显示指定帧,则直接调用设置图标的显示帧的函数AnimationPlayFrame( )即可,代码如下所示
/*******************************************************************
** Function name: void AnimationPlayFrame(uint16 screen_id,
** uint16 control_id,
** uint8 frame_id);
** Descriptions : 设置图标显示指定的帧
** input parameters: screen_id: 画面ID
** control_id: KontrollenID
** frame_id: 指定帧
** output parameters: 无
** Returned value : 无
*******************************************************************/
{
……
AnimationPlayFrame(2, 1, 1); //画面ID2,KontrollenID1的图标显示Die1帧
……
}
1.5 Knopf的禁止与使能应用
【Knopf的禁止与使能】画面,介绍使用指令控制Knopf的禁止与使能
画面配置
在【Knopf的禁止与使能】画面的“背景图片”Importieren相应的美工图片。在该画面中设置三个KnopfKontrollen(KontrollenID:1、2、3),如下所示

属性配置
设置Knopf1、2、3的属性,设置【触摸虚框】为“否”。设置Knopf3的属性,设置【触摸虚框】为“否”、【按下时的图片】Auswahl设置好的图片、勾选【裁剪】、【初始Status】为“按下”、【Operationen风格】为“延时”、【长按延时】为“5s”,配置如下所示

设置Knopf的使能/失能:AuswahlKnopfKontrollen(KontrollenID:3)
- 属性栏中的【对内指令】→“弹起时”
- 弹出指令填写框
- Auswahl“指令Assistenten.”,在指令Assistenten.界面
- 左侧导航栏Auswahl【禁/使能屏幕更新】,填写对应的Parameter。如例程中,控制画面(画面ID:3)中的图标Kontrollen(KontrollenID:1),Klick auf“使能Kontrollen”
- 将生成的指令Kopieren.zu指令窗口,如下所示,同理其他Knopf的使能/失能Operationen处理参考即可

Betrieb预览
Betrieb虚拟屏,VisualTFT软件和虚拟屏用“虚拟Die Serie”建立联机。Öffnen.【指令Assistenten.】,Auswahl左侧导航栏【禁/使能Kontrollen】,设置“禁止或使能KontrollenFunktion”的指令Parameter。设置画面(画面ID:3)中的KnopfKontrollen(KontrollenID:1)的KnopfKontrollen禁止触摸。则在虚拟屏中,触摸Knopf1Unwirksam。
MCU控制Knopf禁止/使能
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。例如用户需禁止Knopf的触摸,则直接调用Knopf禁止/使能函数SetControlEnable ( )即可,代码如下所示
/*******************************************************************
** Function name: void SetControlEnable (uint16 screen_id,
** uint16 control_id,
** uint8 enable);
** Descriptions : 设置触摸Kontrollen使能
** input parameters: screen_id : 画面ID
** control_id: KontrollenID
** enable : Kontrollen是否使能
** output parameters: 无
** Returned value : 无
*******************************************************************/
{
……
SetControlEnable (2, 1, 1); //画面ID3,KontrollenID1的Knopf禁止触摸
……
}
1.6 Custom definiert指令应用
【Custom definiert指令】画面,介绍Knopf对外Senden SieCustom definiert指令的Funktion
画面配置
在【KnopfSchalter!Funktion】画面的“背景图片”Importieren相应的美工图片。在该画面中设置一个KnopfKontrollen(KontrollenID:1),如下所示

属性配置
设置Knopf1的属性,设置【触摸虚框】为“否”、【Ereignisse通知】为“否”、【按下时的图片】Auswahl设置好的图片、勾选【裁剪】、【触控用途】为“Custom definiert指令”、【弹起时】为Custom definiert的16 Einführung指令“55 00”、【按下时】为Custom definiert的16 Einführung指令“55 01”,配置如下所示

Betrieb预览
Betrieb虚拟屏,右键Klick auf屏幕弹出【Parameter设置】窗口,Klick aufCustom definiert按Senden Sie指令,Betrieb效果如下所示

例程Dokumentation:
[wshop_downloads]
Antwort veröffentlichen