OSAL任務 事件和訊息之間關係 md

2021-09-06 23:20:27 字數 682 閱讀 2411

在osal中

事件是驅動任務去執行某些操作的條件,當系統中產生乙個事件,osal將這個事件傳遞給相應任務後,任務才能執行乙個相應的操作(傳遞這個行為是通過呼叫輪訓函式實現,完成操作時通過時間處理函式實現)。

事件常伴隨一些資訊,比如按鍵按下事件後,攜帶著是幾號按鍵按下,所以將事件和資料封裝成乙個訊息,然後在事件處理函式中使用osal_msg_receive()函式接收小,並做相應的訊息判斷,比如:af_incoming_msg_cmd訊息,然後呼叫相應的訊息處理函式。

osal維護了乙個訊息佇列,每隔訊息都會放到訊息佇列中去,當任務接收到事件後,從訊息佇列中獲取屬於自己的訊息,然後呼叫相應的訊息處理函式。

zstack是zigebee協議的乙個實現,為更好管理,加入了osal(作業系統抽象層)

在osal中,有任務、事件、訊息三個概念。

他們關係如下:

任務是處理事件的乙個功能集合,一般有乙個事件處理函式實現(processevents)

事件是當前系統中被觸發的動作,比如:按鍵按下、網路狀態發生改變、串列埠收到訊息等等

訊息則是事件及事件所攜帶訊息的集合。發生事件是,osal會將時間和其訊息打包到訊息佇列,供事件處理函式來處理。

具體流程為:

事件發生 -> 被打包為訊息 -> 存放到訊息佇列 -> osal輪訓任務中的事件狀態 -> 有事件發生 -> 事件處理函式執行對應功能

和之間的關係

1.0 簡介 本 簡要的 了xml和資料庫 之間的關係,同時列出一些可以使用資料庫處理xml文件的。雖然這裡不打算詳盡地介紹這些軟體,但是筆者希望它能夠描述使用資料庫處理xml文件中的主要部分。這裡有點偏向與 關聯式資料庫,因為我的經驗如此。2.0 xml是資料庫嗎?在開始討論xml和資料庫之前,我...

瀏覽器css載入和事件觸發之間的關係

瀏覽器domcontentloaded事件觸發和css是否載入完成是沒有關係的。我們要獲取到css屬性必須使用element.getboundingclientrect 或者window.getcomputedstyle 等方法去獲取元素的css值,你也可以用其他方式去獲取元素的css值,都會去觸發...

事件和訊息的區別

事件是乙個動作 使用者觸發的動作。訊息是乙個資訊 傳遞給系統的資訊。事件就是 當.的時候 事件總是和乙個id有關 訊息就是 嗨!你該幹.了 vs2005以上的 訊息 標籤中就是vc6 windows messages handler中的內容 我們一般都是在 當.的時候 幹 0 或者 1 2 也可以 ...