你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

TouchGFX 中 Callback 模板实现原理

[复制链接]
STMCU小助手 发布时间:2022-8-8 23:51
前言
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 个参数的 GenericCallback 模板:
  1. template <class T1>
  2. class GenericCallback
  3. {
  4. public:
  5. virtual ~GenericCallback()
  6. {
  7. }
  8. virtual void execute(T1 val1) = 0;
  9. virtual bool isValid() const = 0;
  10. };
复制代码



Callback 模板组
Callback 模板由 GenericCallback 派生而来。Callback 模板组也有 4 个模板,分别对应于包含不同参数个数 execute 函数的 GenericCallback 模板,继承关系如下图:



O2{WK87KR}`X7{CB6]TKB9O.png

完整版请查看:附件



template <class T1>
class GenericCallback
{
public:
virtual ~GenericCallback()
{
} virtual void execute(T1 val1) = 0;
virtual bool isValid() const = 0;
};

CallbackTemplate_in_TouchGFX_v0.2.pdf

下载

250.53 KB, 下载次数: 0

收藏 评论0 发布时间:2022-8-8 23:51

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版