ios開發(fā)-藍牙固件升級流程

最近在開發(fā)ios平臺的一款app過程中职辨,遇到藍牙固件升級這樣的一個需求場景,從固件的線上版本比對、固件下載管理再到固件的安裝寫入步驟都要在app端完成炕桨。由于是第一次接觸固件升級處理,所以在過程中也遇到了一些未知的坑,好在整個流程中,有豐富的三方框架支持秤朗,相對來說降低了一些難度以及省了不少的處理步驟,但還是忍不住來記錄及分享幾點內容,包括開發(fā)前期所要了解的藍牙相關基礎內容以及過程中所要注意的地方。

1.整個升級功能的流程簡介

進入藍牙模塊的時候需要通過(A591)指令獲取藍牙設備的當前固件版本信息并和自己app服務器存儲的最新的固件版本號對比,如果有新版本則下載光坝,如果固件占用體積比較大并考慮到交互的話,下載模塊中則需要支持斷點下載,畢竟用戶可能不是每次都有充足的的時間等待固件下載完成,如果每次進入app都要重新下載好像不太合適,所以在下載之前可以通過文件名判斷本地是否已經(jīng)存在文件而且還未安裝,再通過(A590)指令讓設備進入升級模式,再來將固件文件寫入設備。

2.升級過程中需要注意的地方

A591命令在發(fā)送之后會獲取到版本信息,這時候會發(fā)現(xiàn)一些奇怪的現(xiàn)象,設備的其它基礎數(shù)據(jù)好像在返回上出了問題甥材,比如數(shù)據(jù)明顯少了很多,這時候需要A592指令對設備進行恢復;

A590指令在發(fā)送之后盯另,設備會自行斷開并且藍牙名稱以及mac地址都會改變,過程中獲取電量信號等信息都可能為空,這都是正常現(xiàn)象,這時候需要用戶app再次主動連接當前處于待升級的設備,由于設備名稱和mac地址已經(jīng)改變洲赵,那么如果找到這個設備呢,你會發(fā)現(xiàn)待升級的設備名臨時固定變成(FirmWare)鸳惯,所以可以通過此標記掃描連接設備;

待升級的設備會有一個比較長的狀態(tài)持續(xù)時間商蕴,30s-2分鐘都有可能,過了這個時間如果一直沒等到文件寫入,設備將會恢復到正常狀態(tài)悲敷;我們的設備表現(xiàn)為紅燈常亮;

固件文件寫入并等到升級完成狀態(tài)返回之后,設備將會再次自行斷開,此時可以按照正常掃描連接流程處理;

固件文件寫入我們用到一個比較常用的三方?IOS-Pods-DFU-Library?,可以通過pod導入或者本地導入,由于我的工程在使用過程中出了一點問題而選擇了本地導入,只需要引入Classes內的文件即可,這個庫依賴一個zip解壓庫,我選擇了(pod 'ZIPFoundation', '~> 0.9')究恤,注意DFU-Library這個庫只是單純用于固件寫入的庫俭令,其它的處理都需要我們另外處理,比如說A590這個指令需要我們先發(fā)送再來使用這個庫寫入固件,我曾就在這個地方懵逼了半天,還以為這個庫把所有的步驟都涵蓋了呢,由于最后沒出效果甚至懷疑這個庫有問題后德,囧囧囧......;

一般比較提倡的做法是在固件寫入之前校驗一般完整性,因為可能在下載過程中被損壞,如果不校驗就進行寫入最終一般都會失敗抄腔,雖然不至于導致固件被升壞但是這個流程我們控制得更合理一點, 這個地方的確可以作為我們優(yōu)化的空間 ;

以上提到的A590 - A592等協(xié)議都是通用的協(xié)議,如果自家設備用的是自定義協(xié)議請忽略;

最后分享一下?DFU-Library 4.5.0版本的調用代碼


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末瓢湃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赫蛇,更是在濱河造成了極大的恐慌绵患,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悟耘,死亡現(xiàn)場離奇詭異落蝙,居然都是意外死亡,警方通過查閱死者的電腦和手機暂幼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門筏勒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旺嬉,你說我怎么就攤上這事管行。” “怎么了邪媳?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵捐顷,是天一觀的道長。 經(jīng)常有香客問我雨效,道長迅涮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任徽龟,我火速辦了婚禮叮姑,結果婚禮上,老公的妹妹穿的比我還像新娘顿肺。我一直安慰自己戏溺,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布屠尊。 她就那樣靜靜地躺著旷祸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讼昆。 梳的紋絲不亂的頭發(fā)上托享,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼闰围。 笑死赃绊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的羡榴。 我是一名探鬼主播碧查,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼校仑!你這毒婦竟也來了忠售?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤迄沫,失蹤者是張志新(化名)和其女友劉穎稻扬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羊瘩,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡泰佳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尘吗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逝她。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖摇予,靈堂內的尸體忽然破棺而出汽绢,到底是詐尸還是另有隱情,我是刑警寧澤侧戴,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布宁昭,位于F島的核電站,受9級特大地震影響酗宋,放射性物質發(fā)生泄漏积仗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一蜕猫、第九天 我趴在偏房一處隱蔽的房頂上張望寂曹。 院中可真熱鬧,春花似錦回右、人聲如沸隆圆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渺氧。三九已至,卻和暖如春蹬屹,著一層夾襖步出監(jiān)牢的瞬間侣背,已是汗流浹背白华。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贩耐,地道東北人弧腥。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像潮太,于是被迫代替她去往敵國和親管搪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容