在此member function中主要是判斷scan_info_的substate為何,並且進行相對應的程序,以下將敘述start_dlsubframe()之流程---
Step1. 先將frame number加一,接著判斷scan_info_為何.在此主要考慮兩種state: (1) SCAN_PENDING, (2) HANDOVER_PENDING, 若state為SCAN_PENDING(與process_scan_rsp()相互呼應,在process_scan_rep()中會將scan_info_->state設為SCAN_PENDING),則會再判斷state轉為scanning前,frame的數量,若為0 則會執行resume_scanning() ;若是state為HANDOVER_PENDING, 則會判斷在執行handoff之前frame的數量,若是為0則會將state設定成HANDOVER, 並且設定Channel (相對的會設定到Frequency,Frequency包含3.486e+9, 3.493e+9, 3.5e+9, 3.507e+9, 3.514e+9),設定完後會呼叫lost_synch() function (主要是移除本來的peer node,取得新的peer node), 接著會增加peer node.
Step2. 設定new frame的Start time為NOW, 並啟動dlsubframe的handler,最後則位下一個frame重新排程.
End~
沒有留言:
張貼留言