像這樣更改廣播間隔可以嗎?
可以參考下方動態(tài)廣播的鏈接:https://www.cnblogs.com/risc5-ble/p/16619902.html
有兩種方式實現(xiàn),一種是通過關閉廣播跟新參數(shù)再打開廣播實現(xiàn),另一種是調(diào)用更新廣播內(nèi)容函數(shù),只可以改變內(nèi)容。
上述方法可以修改廣播數(shù)據(jù),修改廣播間隔需要GAPRole_SetParameter GAPROLE_MIN_CONN_INTERVAL與?GAP_SetParamValue?TGAP_DISC_ADV_INT_MIN等4個參數(shù)嗎?
使用關閉廣播修改參數(shù)再開啟廣播的方式是可以修改廣播間隔的。
uint16_t advInt = DEFAULT_ADVERTISING_INTERVAL;
GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt);
GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt);
驗證廣播間隔是可以調(diào)整的,請問怎么獲取是否正在廣播的狀態(tài)呢?peripheralStateNotificationCB會通報新狀態(tài),有沒有更直接讀取的接口呢?
可以使用此函數(shù)去獲取狀態(tài):GAPRole_GetParameter(GAPROLE_STATE , &state);
#define GAPROLE_INIT? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ?//!< Waiting to be started
#define GAPROLE_STARTED? ? ? ? ? ? ? ? ? ? ?1? ? ? ?//!< Started but not advertising
#define GAPROLE_ADVERTISING? ? ? ? ? ? ? ? ?2? ? ? ?//!< Currently Advertising
#define GAPROLE_WAITING? ? ? ? ? ? ? ? ? ? ?3? ? ? ?//!< Device is started but not advertising, is in waiting period before advertising again
#define GAPROLE_CONNECTED? ? ? ? ? ? ? ? ? ?4? ? ? ?//!< In a connection
#define GAPROLE_CONNECTED_ADV? ? ? ? ? ? ? ?5? ? ? ?//!< In a connection + advertising
#define GAPROLE_ERROR? ? ? ? ? ? ? ? ? ? ? ?6? ? ? ?//!< Error occurred - invalid state
謝謝