【前言】
在TouchGFX Designer中,如果设计的工程比较大,下载到开发板需要费许多的时间。用摸拟器可以实时实现所见即所得,不用下载到开发板就可以查看实时效果。同时如果混合C编程,那么也会影响到摸拟器的运行,因此需要使用条件编译来实现,即SIMULATOR。
【定义只在摸拟器中运行】
在官方文档中有如下图所示的标注:
为此在示例工程中添加一个按键测试:
【代码添加】
在Screen1View.hpp中添加我们在TouchGFX Desiger中添加好的按键按下的函数。
同时在Screen1View.cpp中实现他,在实现之前需添加头文件:#include <touchgfx/Utils.hpp>
添加好后添加内容如下:
#include <gui/screen1_screen/Screen1View.hpp> #ifdef SIMULATOR #include <touchgfx/Utils.hpp> #endif Screen1View::Screen1View() { } void Screen1View::setupScreen() { Screen1ViewBase::setupScreen(); } void Screen1View::tearDownScreen() { Screen1ViewBase::tearDownScreen(); } void Screen1View::simulator_test() { #ifdef SIMULATOR touchgfx_printf("Button pressed\n"); #endif }
然后我们在模拟器中就可以实现按键按下输出打印的信息了:
【屏蔽在模拟器中运行】
当然,如果我们需要用到的一些代码,是在真机上运行的,如果不做处理,就会影响到模拟器在运行时报错,比如说,我们在代码中引入#include "main.h",如果不做处理就会在模拟器运行时报错:
那么,我们就需要添加条件编译:
#ifndef SIMULATOR #include "main.h" #endif
这样,就可以实现在摸拟器成功的运行了。