当前位置: 首页 > news >正文

地板网站建设方案优秀设计平台

地板网站建设方案,优秀设计平台,江西中恒建设集团网站,国内 wordpress 大战在大多数应用中#xff0c;UI需以某种方式连接到系统的其余部分#xff0c;并发送和接收数据。 它可能会与硬件外设#xff08;传感器数据、模数转换和串行通信等#xff09;或其他软件模块进行交互通讯。 Model类​ 所有TouchGFX应用都有Model类#xff0c;Model类除了存…在大多数应用中UI需以某种方式连接到系统的其余部分并发送和接收数据。 它可能会与硬件外设传感器数据、模数转换和串行通信等或其他软件模块进行交互通讯。 Model类​ 所有TouchGFX应用都有Model类Model类除了存储UI状态信息还可用作面向周围系统的接口。 这里周围系统我们指的是在你整个系统中用到的硬件外设以及需要进行通讯的其他任务。 通常来讲在各自的View类中直接访问其他软件模块或者硬件外设并不是个好的设计。 Model类非常适合放置任何此类接口代码原因在于 Model类有 tick() 函数会在每一帧自动调用并且可实现用于查找来自其他子模块的事件或对事件作出反应。Model类有一个指向当前活动Presenter的指针它能够将传入事件通知给UI。 以下示例为通过button控件触发数据发送给系统其他任务该任务再将数据发回touchgfx任务。 首先程序需要touchgfx以外的一个任务和两个用来收发数据的队列 然后创建一个button控件并设置交互为调用虚函数 编写向周围系统发送数据的程序 screenView.hpp#ifndef SCREENVIEW_HPP #define SCREENVIEW_HPP#include gui_generated/screen_screen/screenViewBase.hpp #include gui/screen_screen/screenPresenter.hppclass screenView : public screenViewBase { public:screenView();virtual ~screenView() {}virtual void setupScreen();virtual void tearDownScreen();virtual void function1(); protected: };#endif // SCREENVIEW_HPPscreenView.cpp#include gui/screen_screen/screenView.hppscreenView::screenView() {}void screenView::setupScreen() {screenViewBase::setupScreen(); }void screenView::tearDownScreen() {screenViewBase::tearDownScreen(); }void screenView::function1() {presenter-bc(); } screenPresenter.hpp#ifndef SCREENPRESENTER_HPP #define SCREENPRESENTER_HPP#include gui/model/ModelListener.hpp #include mvp/Presenter.hppusing namespace touchgfx;class screenView;class screenPresenter : public touchgfx::Presenter, public ModelListener { public:screenPresenter(screenView v);/*** The activate function is called automatically when this screen is switched in* (ie. made active). Initialization logic can be placed here.*/virtual void activate();/*** The deactivate function is called automatically when this screen is switched out* (ie. made inactive). Teardown functionality can be placed here.*/virtual void deactivate();virtual ~screenPresenter() {}void bc();private:screenPresenter();screenView view; };#endif // SCREENPRESENTER_HPPscreenPresenter.cpp#include gui/screen_screen/screenView.hpp #include gui/screen_screen/screenPresenter.hppscreenPresenter::screenPresenter(screenView v): view(v) {}void screenPresenter::activate() {}void screenPresenter::deactivate() {}void screenPresenter::bc() {model-toggleState(); } Model.hpp#ifndef MODEL_HPP #define MODEL_HPPclass ModelListener;class Model { public:Model();void bind(ModelListener* listener){modelListener listener;}void tick();void toggleState();protected:ModelListener* modelListener;bool state; };#endif // MODEL_HPPModel.cpp#include gui/model/Model.hpp #include gui/model/ModelListener.hpp #include ../../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h#ifndef SIMULATOR//******************************************************* // Define Queue handles //******************************************************* extern C {extern osMessageQueueId_t myQueue01Handle;extern osMessageQueueId_t myQueue02Handle; } #else #include stdio.h #endifModel::Model() : modelListener(0), state(0) {}void Model::tick() {}void Model::toggleState() {state !state;#ifndef SIMULATORuint16_t msg state;if (myQueue01Handle){osMessageQueuePut(myQueue01Handle, msg, 0, 0);} #endif } freertos.cvoid StartDefaultTask(void *argument) {/* USER CODE BEGIN StartDefaultTask */uint16_t msg 0;/* Infinite loop */for(;;){if (osMessageQueueGet(myQueue01Handle, msg, 0U, 1000) osOK){}}/* USER CODE END StartDefaultTask */ } 编写向UI发送数据的程序 freertos.cvoid StartDefaultTask(void *argument) {/* USER CODE BEGIN StartDefaultTask */uint16_t msg 0;uint16_t color;/* Infinite loop */for(;;){if (osMessageQueueGet(myQueue01Handle, msg, 0U, 1000) osOK){if(msg)color 0x0000;elsecolor 0xFFFF;osMessageQueuePut(myQueue02Handle, color, 0U, 0);}}/* USER CODE END StartDefaultTask */ } Model.hpp#ifndef MODEL_HPP #define MODEL_HPPclass ModelListener;class Model { public:Model();void bind(ModelListener* listener){modelListener listener;}void tick();void toggleState();void setboxColor(unsigned short color); protected:ModelListener* modelListener;bool state; };#endif // MODEL_HPP Model.cpp#include gui/model/Model.hpp #include gui/model/ModelListener.hpp #include ../../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.h#ifndef SIMULATOR//******************************************************* // Define Queue handles //******************************************************* extern C {extern osMessageQueueId_t myQueue01Handle;extern osMessageQueueId_t myQueue02Handle; } #else #include stdio.h #endifModel::Model() : modelListener(0), state(0) {}void Model::tick() { #ifndef SIMULATOR//*******************************************************//// HANDLE MESSAGES//// Check for messages from backend, with zero timeout to// avoid blocking the UI.////*******************************************************//uint16_t msg 0;if (osMessageQueueGet(myQueue02Handle, msg, 0U, 0) osOK){setboxColor(msg);}#endif }void Model::toggleState() {state !state;#ifndef SIMULATORuint16_t msg state;if (myQueue01Handle){osMessageQueuePut(myQueue01Handle, msg, 0, 0);} #endif }void Model::setboxColor(unsigned short color) {modelListener-setboxColor(color); }#ifndef MODELLISTENER_HPP #define MODELLISTENER_HPP#include gui/model/Model.hppclass ModelListener { public:ModelListener() : model(0) {}virtual ~ModelListener() {}void bind(Model* m){model m;}virtual void setboxColor(unsigned short color) {} protected:Model* model; };#endif // MODELLISTENER_HPP#ifndef SCREENPRESENTER_HPP #define SCREENPRESENTER_HPP#include gui/model/ModelListener.hpp #include mvp/Presenter.hppusing namespace touchgfx;class screenView;class screenPresenter : public touchgfx::Presenter, public ModelListener { public:screenPresenter(screenView v);/*** The activate function is called automatically when this screen is switched in* (ie. made active). Initialization logic can be placed here.*/virtual void activate();/*** The deactivate function is called automatically when this screen is switched out* (ie. made inactive). Teardown functionality can be placed here.*/virtual void deactivate();virtual ~screenPresenter() {}void bc();virtual void setboxColor(unsigned short color); private:screenPresenter();screenView view; };#endif // SCREENPRESENTER_HPP#include gui/screen_screen/screenView.hpp #include gui/screen_screen/screenPresenter.hppscreenPresenter::screenPresenter(screenView v): view(v) {}void screenPresenter::activate() {}void screenPresenter::deactivate() {}void screenPresenter::bc() {model-toggleState(); }void screenPresenter::setboxColor(unsigned short color) {view.setbox1Color(color); }#ifndef SCREENVIEW_HPP #define SCREENVIEW_HPP#include gui_generated/screen_screen/screenViewBase.hpp #include gui/screen_screen/screenPresenter.hppclass screenView : public screenViewBase { public:screenView();virtual ~screenView() {}virtual void setupScreen();virtual void tearDownScreen();virtual void function1();void setbox1Color(unsigned short color); protected: };#endif // SCREENVIEW_HPP#include gui/screen_screen/screenView.hppscreenView::screenView() {}void screenView::setupScreen() {screenViewBase::setupScreen(); }void screenView::tearDownScreen() {screenViewBase::tearDownScreen(); }void screenView::function1() {presenter-bc(); }void screenView::setbox1Color(unsigned short color) {box1.setColor(color);box1.invalidate(); }烧录进开发板现象点击按钮box颜色在黑白之间切换
http://www.yayakq.cn/news/5132/

相关文章:

  • 阿里免费做网站百度官网入口链接
  • 布吉网站建设公司网站顶部设计
  • 网站建站解决方案软文推广模板
  • dede免费网站模板utf8凡科小程序商城
  • 广东省建设注册中心网站网站建设人员叫什么
  • iis8出现在网站首页官方网站想反应问题不弄应该怎么做
  • 网站建设的活动方案哪个网站做外贸假发好
  • 网站怎么做动态主图乐昌门户网站
  • 网站开发实训心得体会高端学校网站建设
  • 手机网站优化网站推广建设费
  • 宜春公司网站建设甘肃省省建设厅网站
  • 工信部网站备案信息怎么查询系统深圳数据中心建设公司
  • ftp网站怎么建立速加网零件加工网
  • 自己做的网站如何上传文件泰安58同城
  • 淮北建网站网站备案需要什么材料
  • 域名对网站有什么影响吗wordpress个人博客主题好看
  • 无锡网站制作一般多少钱建设一个网络平台要多少钱
  • 网站seo优化分析哪个网站做汽车保养比较好
  • 公司页面网站设计模板网站版面布局结构图
  • 返利网网站怎么做wordpress原创保护
  • 微信支付 企业网站网站建设人才招聘
  • 网站建设意义必要性盂县在线这个网站是谁做的
  • 网站开发流程phpwordpress免费自媒体模板
  • 网站loading动画做网站颜色黑色代码多少钱
  • 学院网站规划方案swipe类网站
  • 自己做的砍价网站搭建网站费用是多少
  • 西安企业网站建设代理机构网站建设专题
  • 建设网站安全性飘雪影视在线观看免费完整
  • 课程网站建设所用技术免费稳定的云服务器
  • 园林景观设计公司做抖音推广措施河南网站seo