Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ShMi_1495391
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

BLEコンポーネントをBroadcaster設定で、アドバタイズパケットを動的に更新しようとしています。

そのためにCyBle_GapUpdateAdvData();をコールしたいのですが、その前に「CyBle_GetBleSsState() == CYBLE_BLESS_STATE_EVENT_CLOSE」である確認する必要があります。

しかし、CYBLE_BLESS_STATE_EVENT_CLOSE状態になりません。

試しにアドバタイズパケットの送信を開始(CyBle_GappStartAdvertisement)しなくてもCYBLE_BLESS_STATE_EVENT_ACTIVEとなっていました。

CYBLE_BLESS_STATE_EVENT_CLOSE状態にするためには何が必要でしょうか?スリープに入れる必要がありますか?

0 件の賞賛
1 解決策

ご返信遅れ申し訳ございません。

ACTIVEは、「BLESS(BLEサブシステム)がLow Powerモード(Sleep/DeepSleep/Hibernate)でないこと」を意味します。

FYI: CyBle_EnterLPM() APIが、BLESSをLow Powerモードにするために使用されます。

CLOSEは、advertising eventの間の時間なのでご理解いただいている通りです。

ステートの詳細はAN92584の3ページ目をご覧ください。

http://japan.cypress.com/documentation/application-notes/an92584-designing-low-power-and-estimating-...

CYBLE_BLESS_STATE_EVENT_CLOSEはadvertising eventの度に有効になる筈ですが...、何かしらの設定の都合により上手くいっていないのかもしれません。

こちらのページにプログラム例がございますので、ご参照ください。

PSoC-4-BLE/main.c at master · cypresssemiconductorco/PSoC-4-BLE · GitHub

よろしくお願い致します。

Hirotaka Takayama

元の投稿で解決策を見る

0 件の賞賛
7 返答(返信)