OTA常見問題-SDK相關
本頁目錄
1. 在VS中運行該工程時,需要修改哪些參數?
2. 是否可以自訂上報下載進度的方式?
3. 簽名加密的計算結果存在哪個變數中?
4. 如果需要保存任務資訊,應當怎麼做?
5. 每次拉取檔的分片方式能自訂麼?
6. 升級時若設備電量和信號不滿足條件怎麼辦?
7. 如何獲取升級包的檔案名?
8. 分片包最小的長度為多少?
9. 為什麼在持續下載升級包的過程中TCP連接會被斷開?
10. 在win平台運行SDK時升級包保存在哪裡?
11. SDK中如何重新下載升級包?
1.在VS中運行該工程時,需要修改哪些參數?
答:在VS中運行該工程時,需要修改下列參數,
default_device_id(設備ID)
default_manuf(設備模組廠商編號)
default_model(設備模組編號)
default_type(升級類型)
default_fota_version(設備固件版本號)
default_sota_version(設備應用程式版本號)
default_res(資源及資源實體ID)和
default_access_key(產品access_key)。
2.是否可以自訂上報下載進度的方式?
答:在事件OTA_EVENT_REPORT_DOWNLOAD_PROGRESS中,可以自由定義上報下載進度的方式,
注意:一定要保證下載完最後一個分片包後去上報下載進度,以觸發升級。
3. 簽名加密的計算結果存在哪個變數中?
答:在函數OTA_Pack_Authorization_Info中會將簽名加密的計算結果保存至上下文中的encrypt_result變數中。
在OTA_EVENT_custom_save_task_info事件中可以將其保存至flash中或者重啟恢復狀態時重新計算。
4. 如果需要保存任務資訊,應當怎麼做?
答:在函數ota_save_flash中,若需要將某些資料存入flash用作恢復工作狀態使用時,推薦保存檢測任務成功時返回的token、信號要求、電量要求、重試次數、重試時間間隔、升級包大小、已下載升級包大小、升級包md5資訊等,且當每次獲取分片包成功存儲完畢後,應當將已下載的升級包大小更新到flash中。
5. 每次拉取檔的分片方式能自訂麼?
答:每次拉取檔的分片範圍在函數ota_calculate_range()中計算。
預設採用分多次、每次固定大小的方式下載,可以根據實際需要自行設計分片邏輯。
6. 升級時若設備電量和信號不滿足條件怎麼辦?
答:下載升級包時若因為電量低或者信號差,可以選擇在回檔事件中將isRetry置為重試狀態。
7.如何獲取升級包的檔案名?
答:如果需要升級包的檔案名,在下載升級包的API的返回報文中的Content-Disposition中獲取。
8.分片包最小的長度為多少?
答:每次獲取分片包的最小範圍限制為2個位元組。
9.為什麼在持續下載升級包的過程中TCP連接會被斷開?
答:在一次TCP連接中的請求數上限為1000,超過這個上限會斷開TCP連接,只需重新建立TCP連接即可。
10.在win平台運行SDK時升級包保存在哪裡?
答:SDK默認將下載的升級包保存至\build\OtaSample下,在結束流程後會在OTA_EVENT_custom_delete_package事件中將升級包刪除,若需要查看升級包完整性,修改該事件即可。
11.SDK中如何重新下載升級包?
答:在下載升級包過程中若超過一定時間未收到資料應當標記為重試(ctx_net_state重置為NET_STATE_NULL , isRetry置為DownLoadRetry_True)。