stack協議棧SampleApp小解(1)

2021-06-19 16:03:20 字數 1080 閱讀 1354

做的是第乙個最簡單的demoeb的workspace。

先說下這個實驗的功能:

up鍵:向組內其他節點傳送閃爍命令。

right鍵:新增(移除)閃爍組,這個控制是否接受閃爍命令。

下面分析下流程:

首先,zstack的osal工作機制,暫不先分析,假設已經了解該原理。

第一:閃爍組的確定

這個還沒有看,先不說,看了在加上。

第二:傳送閃爍命令

**如下:

if ( keys & hal_key_sw_1 )

if ( keys & hal_key_sw_2 )

else

}

else }

在上述函式中,首先將閃爍時間flashtime轉換成16位數,分別是左移八位與0xff相與,求出高八位,然後與0xff相與,求出低八位。

af_datarequest中,指出了資料傳送的幾個引數,主要的有前五個,分別是:目的位址,源節點,閃爍組簇,資料長度,資料緩衝區。

第三:接收端,接收無線訊號

函式**如下:

}上述函式,查詢收到包的clusterid屬性,閃爍的就是halledblink( hal_led_4, 4, 50, (flashtime / 4) );

第四:脫離於加入閃爍組

具體操作,就是按下按鍵right,從而選擇是否遮蔽up鍵的閃爍命令。

if ( keys & hal_key_sw_2 )

else

上述**,首先查詢,當前節點是否在閃爍組中,如果在,就將其移除,如果不在,就將其加入。這兩個函式的具體實現,沒有找到**。

此網路中,只有終端節點,並不能執行起來,必須有協調器節點,來建立閃爍組。終端節點,可以中途加入閃爍組,之後,協調器節點在退出之後,原有網路還可以繼續執行。

但是,協調器節點一旦退出網路,在重新啟動,就無法進入網路,即無法接受閃爍命令。但是終端節點可以中途退出網路,然後再加入,都可以繼續工作。這是為什麼呢?

還有乙個不明白的是,網路是在什麼時候,建立的?尚未找到**。

棧(stack) 什麼是棧?

1.棧是一種特殊的線性結構 棧滿足線性結構 棧特殊性 棧有特殊的儲存方式,訪問結構 先進先出,進和出在乙個端 2.棧的操作 入棧 向棧口放入資料元素 push 出棧 從棧口取出資料元素 pop 棧頂指標 top 用來指向最後乙個入棧元素 入棧操作 設棧的最大長度為size,棧滿不可入棧 上溢 top...

棧Stack相關概述

棧是一種線性結構 相比陣列,棧對應的操作是陣列的子集 只能從一端新增元素,也只能從一端取出元素 這一段叫做棧頂 棧是一種後進先出的資料結構 全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的katex數學公式語法 增加了...

棧(stack)的應用

棧 stack 通常也被稱之為 堆疊 它的本質是線性表。堆 heap 通常我們也稱它為優先佇列,本質是樹。此處講述一些stack的應用。編譯器在檢查 這樣成對出現的符號所造成的語法錯誤時,通常並不需要去設計乙個很複雜的程式去判斷。而是使用乙個簡單的演算法,這個演算法用到乙個棧。演算法描述如下 做乙個...