色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MVC模式+狀態設計模式的物聯網氣體檢測開源項目

嵌入式應用研究院 ? 來源:嵌入式應用研究院 ? 作者:嵌入式應用研究院 ? 2022-11-21 09:34 ? 次閱讀

上節我們分享了MVC框架、狀態模式組合在實際開發中的應用,它能夠讓我們的軟件設計流程更加的清晰、易于維護:

嵌入式軟件設計之美-以實際項目應用MVC框架與狀態模式(上)

那么這一節我們就直接開門見山,從接下來的這個開源項目分享開始:

項目開源倉庫:

https://github.com/Yangyuanxin/IotSensorDetect

項目獲取方法:

gitclosehttps://github.com/Yangyuanxin/IotSensorDetect

該項目會不斷的添加新的示例來持續完善。

這是一個基于MVC模式+狀態設計模式的物聯網氣體檢測開源項目,目前的整體軟件通信框架圖(后續會根據繼續拓展)如下所示:

727a7028-68e6-11ed-8abf-dac502259ad0.png

如上軟件通信框架圖所示,騰訊連連小程序 & 騰訊云IoT Explorer物聯網平臺相對于設備端來說是上位機,而下位機部分則是由四個主要的任務來協作完成的,分別是ControllerTask、IotRecvTask、ModelHnadlerControolerTask以及ModelSensorHandlerTask,而Task與Task之間的通信方式是基于消息隊列的形式來實現的。采用消息隊列通訊是一種軟件設計解耦的實現方式,線程與線程之間通過消息隊列通信,能夠實現業務隔離,讓整個系統的可拓展性大大提高。除此之外,采用消息隊列的好處是能夠攜帶數據載體,數據格式也可以由用戶自定義。例如本開源項目的自定義消息結構體如下:

structMsg_t
{
uint8_tType;//消息類型
uint32_tSensorValue;//傳感器數值
charData[MSG_LEN];//其它可能的數據承載
};

其中,軟件通信時序分為兩種模式:

1、Ctrl Mode

該模式由APP端發起,對于APP端來說,APP端可以下發三種命令,分別是檢測、停止、返回,如下圖所示:

72a560da-68e6-11ed-8abf-dac502259ad0.png

當用戶在APP端按下檢測時,APP端會下發START命令,當Controller接收到Iot端下發的指令時會將其轉發給Model模塊來控制傳感器進行檢測,期間檢測過程中的設備狀態以及傳感器數值會進行更新,檢測過程也可以通過下發停止來打斷;而返回則是根據當前的設備狀態來返回到上一個檢測狀態;這一切是通過狀態模式來維護的,其狀態流程圖如下:

72ca3b44-68e6-11ed-8abf-dac502259ad0.png

在程序中,該狀態流程圖是通過一個結構體數組來定義的:

SensorStateItem_tSensorStateTable[]=
{
{IDLE,START,CALI},//IDLE->START->CALI
{CALI,NEXT,DETECT},//CALI->NEXT->DETECT
{CALI,STOP,IDLE},//CALI->STOP->IDLE
{DETECT,NEXT,RESULT},//DETECT->NEXT->RESULT
{DETECT,PREV,CALI},//DETECT->PREV->CALI
{DETECT,STOP,IDLE},//DETECT->STOP->IDLE
{RESULT,PREV,DETECT},//RESULT->PREV->DETECT
{RESULT,STOP,IDLE},//RESULT->STOP->IDLE
};

切換狀態的過程是由DoSensorStatus來實現的:

__IOSensorState_tCurState=IDLE;//當前狀態
__IOSensorState_tPrevState=IDLE;//上一個狀態

SensorStateItem_t*FindCurStateAndEvent(SensorState_tCurState,SensorEvent_tEvent)
{
intIndex=0;
//查狀態表
for(Index=0;IndexNextSate;
returnRet;
};

2、Auto Report Mode

該模式是由設備端主動定時上報給到APP端,如下圖所示:

72dfdc42-68e6-11ed-8abf-dac502259ad0.png

檢測設備在沒有啟動檢測功能時,設備端也會定時上報傳感器數值以及設備狀態;因此,Iot端能夠定時看到數據在不斷發生變化。

以上便是MCV框架與狀態模式最簡單的應用了。當然,從上節我們就已經知道,對于Controller和View而言,它的體現形式可以有很多種,它不局限于僅僅是Iot的形式,它也可以是由其它模塊來構成;這部分待后續項目更新后上傳。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5090

    文章

    19176

    瀏覽量

    306886
  • 物聯網
    +關注

    關注

    2912

    文章

    44912

    瀏覽量

    375877
  • MVC
    MVC
    +關注

    關注

    0

    文章

    73

    瀏覽量

    13890

原文標題:嵌入式軟件設計之美-以實際項目應用MVC框架與狀態模式(下)

文章出處:【微信號:嵌入式應用研究院,微信公眾號:嵌入式應用研究院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    氣體檢測儀常用的傳感器

    濕度影響大,檢測氣體種類有限,目前最主要應用于甲烷、二氧化碳、一氧化碳、六氟化硫、二氧化硫、碳氫等氣體。  二、氣體檢測儀之半導體原理  原理:半導體式
    發表于 12-02 15:09

    基于MVC模式的WEB應用框架

    MVC模式是目前WEB應用系統設計中較為流行的一種,它在J2EE應用平臺上的表現使其成為眾多設計者的首選。其中,基于MVC模式的Struts框架使用最為廣泛,論文首先討論了它的內部實
    發表于 12-29 17:13 ?12次下載

    MVC模式在教學考評系統中的應用

    通過對MVC 設計模式進行的分析,探索了基于MVC 模式開發Web 應用程序的優缺點,提出基于MVC
    發表于 10-14 16:10 ?0次下載

    污染氣體檢測電路

    污染氣體檢測電路
    發表于 02-12 07:52 ?703次閱讀
    污染<b class='flag-5'>氣體檢測</b>電路

    基于遙測的移動艙室內氣體檢測方法

    基于遙測的移動艙室內氣體檢測方法 在各種密閉的移動艙室環境中,存在犬量氣體狀態污染,這些氣體污染
    發表于 11-16 10:11 ?1158次閱讀
    基于遙測的移動艙室內<b class='flag-5'>氣體檢測</b>方法

    基于MVC模式的地圖控件的設計

    MVC模式增加了程序的可維護性、可擴展性。文中在研究、分析MVC設計模式思想的基礎上,應用MVC設計模式
    發表于 02-22 11:08 ?23次下載
    基于<b class='flag-5'>MVC</b><b class='flag-5'>模式</b>的地圖控件的設計

    氣體檢測方法和氣體檢測器設備

    氣體檢測方法和氣體檢測器設備,下來看看。
    發表于 12-17 15:26 ?13次下載

    02_MVC設計模式_上課源碼

    jsp-mvc設計模式
    發表于 07-10 11:02 ?0次下載

    mvc模式的優缺點

    MVC模式的優點:各施其職,互不干涉在MVC模式中,三個層各施其職,所以如果一旦哪一層的需求發生了變化,就只需要更改相應的層中的代碼而不會影響到其它層中的代碼。
    發表于 11-17 16:42 ?3949次閱讀
    <b class='flag-5'>mvc</b><b class='flag-5'>模式</b>的優缺點

    NDIR氣體檢測器解決方案和PID氣體檢測器解決方案

    這是 ADI 公司關于氣體檢測器的第二篇文章,包含 NDIR(非色散紅外)氣體檢測器解決方案和 PID(光離子)氣體檢測器解決方案。第一篇文章介紹基于電化學傳感器的微功耗有毒氣體檢測
    發表于 12-29 18:39 ?35次下載
    NDIR<b class='flag-5'>氣體檢測</b>器解決方案和PID<b class='flag-5'>氣體檢測</b>器解決方案

    可燃氣體檢測儀和有毒氣體檢測儀的區別

    氣體檢測儀在我國工業領域中的應用范圍很廣,應用價值也越來越被人們所重視與關注。我們知道在氣體檢測儀的分類中有:有毒氣體檢測儀、可燃氣體檢測儀、便攜式
    發表于 04-15 10:01 ?1786次閱讀

    什么是氣體檢測儀,它的作用是什么

    什么是氣體檢測儀,武漢聚舟科技帶你了解什么是氣體檢測儀,氣體檢測儀是一種可以檢測氣體的儀器,氣體檢測
    發表于 06-07 17:11 ?3578次閱讀

    氣體檢測儀必備的七大功能

    氣體檢測儀的設計目的是幫助您更容易地做出安全決定。新的“智能”功能不僅能夠提供清晰的氣體檢測狀態和傳感器信息,而且能夠提醒報警后該做些什么。這樣您無需為解讀氣體檢測儀報警讀數而費神。
    發表于 07-29 09:52 ?1417次閱讀

    氣體檢測儀的分類有哪些?

    氣體檢測儀是一種氣體泄露濃度檢測的儀器儀表工具,氣體檢測儀可檢測硫化氫,一氧化碳,氧氣,二氧化硫,磷化氫,氨氣,二氧化氮,氰化氫,氯氣,二氧
    發表于 09-16 10:56 ?4241次閱讀

    氣體檢測裝置開源分享

    電子發燒友網站提供《氣體檢測裝置開源分享.zip》資料免費下載
    發表于 11-24 10:03 ?2次下載
    <b class='flag-5'>氣體檢測</b>裝置<b class='flag-5'>開源</b>分享
    主站蜘蛛池模板: 噜噜噜在线AV免费观看看 | 国产 欧美 亚洲 日韩视频 | 国产精品ⅴ视频免费观看 | 国产一卡2卡3卡4卡孕妇网站 | 加勒比一本之道高清视频在线观看 | 免费观看桶机十分钟 | 高清国产mv视频在线观看 | 欲香欲色天天影视大全 | 91麻豆精品一二三区在线 | 狠狠色丁香婷婷久久综合五月 | 久久人妻AV一区二区软件 | 久久re热在线视频精6 | 18日本人XXXXXX18 | 亚洲成人免费观看 | 伊人亚洲综合网色 | 挺弄抽插喷射HH | 伊人激情综合网 | 免费观看a视频 | 国产AV视频一区二区蜜桃 | 久久99综合国产精品亚洲首页 | 99久久精品6在线播放 | 亚洲AV无码国产精品午夜久久 | 一二三四在线高清中文版免费观看电影 | 久青草国产97香蕉在线视频 | 国产欧美二区综合 | 久久三级视频 | 免费观看成人www精品视频在线 | 国产99小视频 | 777午夜精品久久AV蜜臀 | 日本动漫henta videos | 国产手机在线精品 | 一本到高清视频在线观看三区 | 精品四虎国产在免费观看 | 久久99国产精品蜜臀AV | 国产高清视频a在线大全 | 99九九免费热在线精品 | 久久视热频国产这里只有精品23 | 国产人妻午夜无码AV天堂 | 国产高清视频免费最新在线 | 中文视频在线观看 | 1024人成网站色www下载 |