一、配網(wǎng)流程圖

圖1:藍(lán)牙配網(wǎng)完整流程圖
二、流程說明與對接
(一)設(shè)備端進(jìn)入藍(lán)牙配網(wǎng)模式
設(shè)備通過硬件觸發(fā)(如按鍵長按)進(jìn)入藍(lán)牙配網(wǎng)模式,啟動藍(lán)牙廣播,對外發(fā)送設(shè)備標(biāo)識信息。
(二)客戶端解析藍(lán)牙廣播包
客戶端通過藍(lán)牙掃描指定名稱的BLE設(shè)備,呈現(xiàn)到搜索到的設(shè)備列表。
(三)用戶選擇待配網(wǎng)的設(shè)備
APP展示掃描到的可配網(wǎng)設(shè)備列表,用戶選擇目標(biāo)設(shè)備后,進(jìn)入WiFi信息配置頁面。
(四)客戶端發(fā)送WiFi配置給設(shè)備
客戶端從DeviceProfile(每一個(gè)設(shè)備圖標(biāo)都有對應(yīng)的profile)獲取藍(lán)牙設(shè)備的服務(wù)uuid和特征值uuid。
客戶端通過藍(lán)牙設(shè)備ID和uuid的write、read服務(wù),與設(shè)備交互數(shù)據(jù)。
1. APP發(fā)送WiFi配置信息結(jié)構(gòu)
{
"m": "",
"i": ,
"p":{
"s": "",
"p": "",
"r": ""
}
}
2. WiFi配置信息參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
m | string | 是 | connect,固定值。表示請求發(fā)送網(wǎng)絡(luò)配置信息 |
i | int | 是 | 請求ID(指令標(biāo)識),需與設(shè)備回復(fù)保持一致 |
p | object | 是 | 請求參數(shù)對象,包含WiFi信息和區(qū)域配置 |
3. WiFi配置信息 - params 參數(shù)定義說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
s | string | 是 | ssid,表示目標(biāo)WiFi的SSID(網(wǎng)絡(luò)名稱) |
p | string | 是 | password,表示目標(biāo)WiFi的連接密碼 |
r | string | 是 | region,根據(jù)Kalay App當(dāng)前所在環(huán)境,將區(qū)域信息同步給設(shè)備 |
4. 區(qū)域定義說明
| 參數(shù)值 | 說明 |
|---|---|
cn | 中國大陸地區(qū) |
us | 北美地區(qū)(美國、加拿大) |
eu | 歐洲地區(qū)(符合GDPR合規(guī)要求) |
(五)設(shè)備端回復(fù)設(shè)備信息
設(shè)備接收并驗(yàn)證WiFi配置信息后,返回設(shè)備P2P連接所需的核心信息。
1. 設(shè)備連線信息結(jié)構(gòu)
{
"i": ,
"r":{
"s": ,
"d": "",
"p": "",
"a": ""
}
}
2. 設(shè)備回復(fù)連線信息參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
i | int | 是 | 請求ID,與APP發(fā)送的i值保持一致 |
r | object | 是 | 結(jié)果參數(shù)對象,包含連接狀態(tài)和設(shè)備信息 |
3. result參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
s | int | 是 | state,設(shè)備連接狀態(tài)(參考下方狀態(tài)定義) |
d | string | 是 | uid/udid,設(shè)備唯一標(biāo)識(20位uid或40位udid) |
p | string | 是 | password,設(shè)備的AV連線密碼,不能為空 |
a | string | 否 | authkey,設(shè)備的認(rèn)證密鑰(可選) |
備注:
- 當(dāng)參數(shù)
"a"不存在,說明設(shè)備不支持authkey認(rèn)證方式 - 當(dāng)參數(shù)
"a"存在時(shí):- 值為空或
"",APP將使用默認(rèn)8個(gè)0作為authkey進(jìn)行連線 - 值不為空,APP使用該值作為authkey進(jìn)行連線
- 值為空或
4. state參數(shù)值說明
| 參數(shù)值 | 狀態(tài)說明 |
|---|---|
0 | 待配網(wǎng)(設(shè)備已接收配置,準(zhǔn)備連接WiFi) |
10 | 聯(lián)網(wǎng)中(設(shè)備正在嘗試連接目標(biāo)WiFi) |
20 | 獲取IP中(WiFi連接成功,正在獲取IP地址) |
50 | 設(shè)備配網(wǎng)成功(已接入網(wǎng)絡(luò),等待P2P登錄) |
100 | 設(shè)備配網(wǎng)成功,且P2P Login成功(可正常通信) |
(六)客戶端獲取設(shè)備配網(wǎng)狀態(tài)
APP通過藍(lán)牙發(fā)送狀態(tài)查詢請求,獲取設(shè)備配網(wǎng)進(jìn)度和結(jié)果。
1. 獲取設(shè)備配網(wǎng)狀態(tài)信息結(jié)構(gòu)
{
"m": "",
"i":
}
2. 客戶端獲取設(shè)備狀態(tài)信息參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
m | string | 是 | status,固定值。表示請求查詢配網(wǎng)狀態(tài) |
i | int | 是 | 請求ID(指令標(biāo)識),需與設(shè)備回復(fù)保持一致 |
(七)設(shè)備端回復(fù)配網(wǎng)狀態(tài)
設(shè)備根據(jù)當(dāng)前配網(wǎng)進(jìn)度,返回詳細(xì)狀態(tài)信息和錯(cuò)誤提示(如有)。
1. 設(shè)備回復(fù)配網(wǎng)狀態(tài)信息結(jié)構(gòu)
{
"i": ,
"s": ,
"e":{
"c": ,
"m": ""
}
}
2. 設(shè)備回復(fù)配網(wǎng)狀態(tài)信息參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
i | int | 是 | 請求ID,與APP發(fā)送的i值保持一致 |
s | int | 是 | state,連接狀態(tài)(參考3.5節(jié)state參數(shù)說明) |
e | object | 是 | 錯(cuò)誤信息對象,包含錯(cuò)誤碼和描述 |
3. error參數(shù)說明
| 參數(shù) | 類型 | 是否必須 | 說明 |
|---|---|---|---|
c | int | 是 | 錯(cuò)誤碼:0表示無錯(cuò)誤,其他值表示具體錯(cuò)誤類型 |
m | string | 是 | 錯(cuò)誤描述信息,用于APP展示給用戶 |
