利用 cc2540 1.4 發送 iBeacon 封包
TI 你好
目前客戶有一個應用,就是將 sensor 的資料透過客戶那邊的 MCU 再透過 I2C 介面將資料傳到 BLE module ,再把資料以iBeacon broacast 出去,broadcast 完之後會需要進入PM3 sleep,等有需要再做喚醒 。
因為 cc2540 沒有 I2C 介面,所以要用軟體去模擬 slave 行為。這方面支援的廠商已經再進行。我這邊做的動作是要把 I2C get 到的資料轉成 iBeacon 封包格式。
目前搜尋各帖子得到的結果,可以透過 adverData[] 修改,並將它以 iBeacon 發送出去。 BLE modlue 只做 broadcast 動作,所以使用 SimpleBLEBroadcast project。
但現在案子很趕,對於它的運作方式或者可能要修改到的沒有一個底,所以想來問一問....
1 SimpleBLEBroadcast 如果沒去改它,是不是會自己進入 PM3 mode? 如果要做外部喚醒,應該會有個機制,但這個機制是啥? 是 I2C get 的資料有變動?
2 要如何做到動態更新 adverData ,在 1.4 中, GAPRole_SetParameter function 中已經有 GAP_UpdateAdvertisingData 了,所以我只要在 GAPRole_SetParameter 之前,修改 adverData 裡面的值就好了嗎?
尋求意見,萬分感激
1.原始代码应该是一直broadcast的,所以不会进入PM3。进入的条件是没有广播,没有连接,没有其他周期工作的事件。进入PM3必须通过外部中断唤醒
2. 修改应该在开始广播之前,如果已经在广播中了调用应该不起效