cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC™ 4

ShMi_1495391
Contributor

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 Likes
1 Solution
HirotakaT_91
Moderator
Moderator

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

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

View solution in original post

0 Likes
7 Replies