本實驗基於上一章的按鍵實驗的**,新增了廣播功能,效果是enddevice端按下s1按鍵後傳送乙個廣播包,coordinator收到包後用串列埠列印出來;
}這一段**主要就是每檢測到一次按鍵就傳送一條廣播包,廣播包中帶有乙個id,id每發一次就加1。這裡最重要的就是af_datarequest(),是zstack協議棧中的傳送資料api,宣告如下:
afstatus_t af_datarequest( afaddrtype_t *dstaddr, //目的位址
endpointdesc_t *srcep, //埠描述
uint16 cid, //簇id
uint16 len, //資料長度
uint8 *buf, //資料
uint8 *transid, //任務id
uint8 options, //傳送選項
uint8 radius ) //跳數
接收部分
}因為傳送的是字串,因此這就簡單的列印出來即可。從這裡可以看出最終的資料儲存在pkt->cmd.data中,而afincomingmsgpacket_t結構儲存了收到的包資訊:
typedef struct
afincomingmsgpacket_t;
// generalized msg command format
typedef struct
afmsgcommandformat_t;
實驗結果
分別將coordinator與enddevice的**編譯、燒錄、上電。多次按下enddevice上的s1按鍵,可以再coordinator的串列埠資訊上看到如下資訊:
顯示序列號不連續說明有丟包的現象出現。
z stack 協議棧修改按
1.修改hal key.c檔案在hal target cc2530eb dribers hal key.c 修改 sw 6所在io口 define hal key sw 6 port p0 define hal key sw 6 bit bv 4 bv 1 改到p0.4 邊緣觸發模式 define ...
ZStack通訊 Zigbee協議棧通訊
應用都是建立在端點zdo zigbee device object 之上的,所以要實現通訊首先要定義並註冊乙個端點。註冊過程就是向端點應用鍊錶eplist增加乙個節點。註冊函式 afregister endpointdesc t epdesc 終端描述型別 typedef struct endpoi...
Z Stack協議棧中LED的定義及應用
tocz stack協議棧中led的定義及應用 z stack協議棧裡面有三個led燈的定義。具體如下 1 green led1 p1 0 2 red led2 p1 1 3 yellow led3 p1 4 被設定為裝置網路狀態指示燈,未接入網路不亮,接入網路常亮,突然斷網會閃爍一段時間再熄滅 l...