整個協議棧中觸發事件有三種方式
1、通過設定乙個「軟體定時器」,當其溢位時觸發事件。osal_start_timerex()—osaltimerupdate()— osal_set_event()
2、通過呼叫系統訊息傳遞機制觸發事件。osal_msg_send()—osal_set_event()
3、直接呼叫osal_set_event()觸發事件。
前面兩種方式其實是間接呼叫了osal_set_event(),協議中很多應用都是通過前面兩種方式來觸發。
在協議棧裡面,呼叫osal_set_event()的函式最主要是兩個:
(1)osaltimerupdate()
(2)osal_msg_send()
對於1,當有osal_start_timerex()在系統軟體定時器鍊錶中新增乙個軟體定時器並啟動時,系統通過osaltimerupdate()對鍊錶中的每乙個軟體定時器進行減1ms操作(具體參見有關於系統時鐘的記錄),當定時器溢位時,呼叫osal_set_event()觸發事件,如下
/************************
static void osaltimerupdate( uint16 updatetime )
/************************
對於2,對msg_ptr一系列處理後,呼叫osal_set_event()觸發事件,如下
/************************
byte osal_msg_send( byte destination_task, byte *msg_ptr )
JS事件繫結三種方式
1.在html標籤中直接繫結 2.在js中獲取到相應的dom元素後繫結 重複繫結會覆蓋之前繫結的onclick事件let button1 document.getelementbyid btn1 button1.onclick function 3.在js中使用addeventlistener 實現...
事件的三種繫結方式
1.行內式繫結事件處理 另外一種寫法 functionclickme 這時候,這個函式的作用於這就這個物件本身 input 所以我們可以通過this獲取input的任何屬性。缺點 1.html與js 的耦合性高 2.在事件函式未預編譯之前,點選可能會報錯 3.這樣的事件處理程式在不同瀏覽器中的作用於...
控制項OnClick事件三種定義方式
第一種 在xml檔案中在控制項節點增加單擊事件屬性。android onclick btnonclick 類中定義btnonclick方法。public void btnonclick view v 注 類中需要匯入命名空間 import android.view.view 第二種 繼承onclic...