前言
TouchGFX为MCU带来了炫彩丰富的GUI界面,使得基于STM32芯片的人机界面开发非常方便而友好,比如可以在TouchGFX Designer中创建一个按键,在interaction中给按键添加响应;或者创建多个界面,在界面间进行切换;这些功能由designer帮我们自动生成代码实现了,那与之对应的功能响应代码具体是如何实现的呢?
TouchGFX是用C++编写的,借助C++的模板特性,TouchGFX定义了一组Callback模板,基于此模板来实现上述响应的功能。
Callback模板
在TouchGFX中,Callback模板的描述放在Callback.hpp文件中,在此定义了两组模板:GenericCallback与 Callback模板。
GenericCallback模板组
GenericCallback为Callback模板的模板基类。在GenericCallback模板中,定义了两个接口函数:isValid与execute;其中isValid是来检测Callback是否被初始化过,而execute函数用于调用实际要执行的函数。GenericCallback模板组总共定义了4个模板,模板之间的差别在于execute函数的参数个数不同,4个模板分别对应execute函数带有0个参数,1个参数,2个参数与3个参数。本文中仅列出execute带一个参数的情况。
下面是execute函数带1个参数