REventBus背景
在實際的項目開發(fā)中,經(jīng)常會遇到業(yè)務(wù)與業(yè)務(wù),組件與組件,業(yè)務(wù)與組件之間的通信,舉個例子:當(dāng)有煙霧傳感器檢測到煙霧超標(biāo)時,需要打開排氣扇排氣,同時顯示煙霧濃度顯示到顯示器中,供管理人員檢視。處理這樣的邏輯有幾種策略。如下:
- 排氣扇任務(wù)和顯示器任務(wù),不斷的查詢煙霧濃度,各自處理檢測煙霧濃度是否超標(biāo)。
- 煙霧模塊提供注冊監(jiān)聽接口,排氣扇任務(wù)和顯示器任務(wù)分別注冊監(jiān)聽,當(dāng)濃度超標(biāo)時,告知監(jiān)聽任務(wù)。
以上兩種策略都存在很大的問題,問題分析:
- 第一種策略,每一個任務(wù)都需要不斷檢查判斷,這會導(dǎo)致資源的浪費,而且代碼也會有很多重復(fù)的。
- 第二種策略,雖然解決了第一種策略的的問題,但是如果場景中存在不止一個傳感器時,那么所需要注冊的監(jiān)聽接口將隨之增加。而且監(jiān)聽接口是跟具體的業(yè)務(wù)綁定的。
綜上所述:為了能夠解決上面的問題,REventBus組件應(yīng)運而生。
REventBus工作流程圖解
Publisher使用publish發(fā)出ige一個事件,Subscriber在其回調(diào)函數(shù)中接收事件。
REventBus依賴組件
為了提供更好的組件化,風(fēng)火輪科技 和《Rice嵌入式開發(fā)技術(shù)分享》公眾號聯(lián)合推出R組件集,REventbus組件就是R組件集的其中一員,組件與組件之后存在依賴關(guān)系.
REventBus組件同樣依賴一些組件,如下:
REventBus的使用
- REventBus整體包含5部分:Subscribe,Publish,Event,EventCb,Broker。
- Subscribe --訂閱者訂閱自己需要監(jiān)聽的事件接口。
- Publish --發(fā)布者發(fā)布事件,它支持同步發(fā)送和異步發(fā)送。
- Event --訂閱者監(jiān)聽的事件,只有存在訂閱事件,才會有與之對應(yīng)的發(fā)布事件。
- EventCb --事件產(chǎn)生的回調(diào)接口,訂閱者注冊,發(fā)布者發(fā)布對應(yīng)事件之后產(chǎn)生回調(diào)。
- Broker --事件代理,管理事件注冊,注銷,監(jiān)聽。
REventBus接口說明
- REventBus初始化接口
- 使用RThread_pool組件創(chuàng)建一個線程池
- 創(chuàng)建互斥量,解決共享資源問題。
- 初始化broker鏈表,用于事件代理。
pf_err_t reb_init(void);
- REventBus去初始化接口
- 線程池注銷,互斥量傷處,
pf_err_t reb_deinit(void);
- REventBus訂閱事件接口: pf_err_t reb_subscribe(const char *event, reb_handler_cb handler)
- REventBus訂閱事件接口: pf_err_t reb_unsbscribe(const char *event, reb_handler_cb handler)
- REventBus同步發(fā)布事件接口:pf_err_t reb_publish(const char *event, void *payload, uint16_t lenght)
- REventBus異步發(fā)布事件接口:pf_err_t reb_async_publish(const char *event, reb_priority priority, void *payload, uint16_t lenght)
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
601瀏覽量
28188 -
解耦控制
+關(guān)注
關(guān)注
0文章
29瀏覽量
10299 -
煙霧傳感器
+關(guān)注
關(guān)注
2文章
46瀏覽量
16655
發(fā)布評論請先 登錄
詳解Board和SoC解耦的設(shè)計思路

框架解耦神器 -- REventBus

永磁同步電機偏差解耦和電流前饋解耦控制比較
常用的解耦設(shè)計方法
多變量解耦控制實驗
熱連軋機活套系統(tǒng)的解耦控制及仿真
基于補償器的解耦控制方法的研究
基于H∞混合靈敏度解耦控制器實現(xiàn)BTT導(dǎo)彈自動駕駛儀的解耦設(shè)計
電容解耦如何放置

永磁同步電機控制之反饋解耦及復(fù)矢量解耦

評論