自從在藍牙門診部坐診以來,藍牙的問題越來越多,涉及方面越來越廣,上回說到原相藍牙鼠標的案例,雖然通過有線的方式,插在電腦上,可以做為電腦的一個設備,顯得很酷。
然而無線藍牙的方式,更加灑脫!
在藍牙設備滿天飄的年代,到底哪個是我的藍牙呢?
先以原相BLE 藍牙晶片PAR2822方案為例,談一談原相鼠標藍牙名稱的修改。
1、藍牙名稱設置
在 ms_param_profile_1.h 中有以下兩個定義:
#define DEVICE_NAME "BT Mouse"
#define COMPLETE_DEV_NAME "BT Mouse"
這兩個可供修改
DEVICE_NAME 是藍牙搜索到的名稱, COMPLETE_DEV_NAME 理論上是完成連接後的名稱顯示
2、代碼解說
在 void ble_adv_start(uint8_t pairing_en) 中
#if (CONFIG_DEV_NAME_TYPE == SHORTENED_LOCAL_NAME)
adv_data[adv_data_sz + 1] = 0x08;
#elif (CONFIG_DEV_NAME_TYPE == COMPLETE_LOCAL_NAME)
adv_data[adv_data_sz + 1] = 0x09;
#endif
取決於 CONFIG_DEV_NAME_TYPE,其中定義如下:
/* Device Name Config */
#define SHORTENED_LOCAL_NAME 0
#define COMPLETE_LOCAL_NAME 1
#define CONFIG_DEV_NAME_TYPE COMPLETE_LOCAL_NAME
在 static void _ble_att_read_cb(struct gap_att_read_evt* evt) 中,也有以下代碼,決定藍牙的名稱:
#if (CONFIG_DEV_NAME_TYPE == SHORTENED_LOCAL_NAME)
memcpy(&dev_name[0], (const uint8_t*)COMPLETE_DEV_NAME, strlen(COMPLETE_DEV_NAME));
dev_name_sz = strlen(COMPLETE_DEV_NAME);
#elif (CONFIG_DEV_NAME_TYPE == COMPLETE_LOCAL_NAME)
memcpy(&dev_name[0], (const uint8_t*)DEVICE_NAME, strlen(DEVICE_NAME));
dev_name_sz = strlen(DEVICE_NAME);
#endif
綜述:
從代碼上分析,藍牙名稱起關鍵決定作用的是DEVICE_NAME 等定義,可以進行修改,客戶可以自行修改。我讓我的藍牙名稱改成“那就不是事兒”,天空飄著六個字怎麼樣?
名字是中文的嗎?這個可以有嗎?以後有機會詳細!
這次博文就到這了
大大通方案與博文,十分精彩,引人入勝,如果不在登錄狀態的看官,大大通則視為“匆匆之過客”很快就“不見廬山真面目”了,看的正過癮啊!
各位看官!不要著急!只需一個小小的動作而已:登錄!
請掃描下面二維碼註冊:
請多多關注小編與大大通平台,我們會不斷分享最新的熱點技術
好啦,謝謝大家觀看啦!我們下期見!
評論