From 0575fc764da6afc0dd10c79ebaff5e5ae807f119 Mon Sep 17 00:00:00 2001 From: Grey Date: Sun, 12 Mar 2023 17:20:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=20(FOTA=E5=8D=87=E7=BA=A7):=20FOTA?= =?UTF-8?q?=E5=9B=BA=E4=BB=B6=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N/A 固件版本: N/A 是否需要文案翻译: 是 --- ...7\347\272\247-\345\233\272\344\273\266.md" | 130 ++++++++++++++++++ .../media/FOTA_1.jpg" | Bin 0 -> 19956 bytes .../media/FOTA_2.jpg" | Bin 0 -> 20813 bytes .../media/FOTA_3.jpg" | Bin 0 -> 14204 bytes .../media/FOTA_4.jpg" | Bin 0 -> 63170 bytes 5 files changed, 130 insertions(+) create mode 100644 "docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_1.jpg" create mode 100644 "docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_2.jpg" create mode 100644 "docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_3.jpg" create mode 100644 "docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_4.jpg" diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" index e69de29b..cf228f38 100644 --- "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" +++ "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" @@ -0,0 +1,130 @@ +# OTA升级-固件 + +## 什么是OTA升级-固件 + +OTA:Over-the-Air Technology空中下载技术,是通过移动通信的空中接口实现对移动终端设备进行远程管理的技术。 + +OTA升级-固件就是利用这项技术进行模块固件升级。在QuecPython中该功能接口为[FOTA](/../../../API_reference/zh/QuecPython类库/fota.html)。为阅读体验以下均命名为FOTA。 + +## 怎么使用FOTA + +### 硬件设计 + +[FOTA](/../../../API_reference/zh/QuecPython类库/fota.html)升级主要为网络侧与模块内部交互,除前提条件模块需要组网成功外无需其他外围硬件支持。 + +### 软件应用 + +在之前的引言中已经提到OTA升级需要使用到HTTP服务器作为升级内容的存放点。对于FOTA而言是否就是存储需要升级的固件呢?答案不是。其主要原因也容易想到,无法就是固件太大与没内存缓存等。问题是不存储原始固件存储什么呢?答案是差分包。也是两版固件差异的部分。这样一来以上问题就得到了解决。 + +那问题来了,怎么制作差分包FOTA升级时怎么操作呢?下面我们分:`FOTA分类`;`差分包制作`;`软件设计`三个部分来分别介绍。 + +#### FOTA分类 + +FOTA类型分为三种:`差分升级`;`全量升级`;`最小系统升级`。下面就这三种FOTA类型的功能与支持的型号分别进行介绍。 + +| 序号 | FOTA类型 | 使用模组 | 实现功能 | +| ---- | ------------ | ---------------- | ----------------- | +| 1 | 差分升级 | 所有模组 | 固件升级 | +| 2 | 全量升级 | ASR_16MFlash模组 | 客户脚本升级 | +| 3 | 最小系统升级 | ASR_16MFlash模组 | 固件+客户脚本升级 | + +#### 差分包制作 + +为便于客户制作差分包简化流程,QuecPython团队将制作差分包功能集成到了QPYcom工具中。如下图添加制作FOTA包按钮进入制作FOTA工具。 + +![FOTA_1](media\FOTA_1.jpg) + +选择模块对应的平台。 + +![FOTA_1](media\FOTA_2.jpg) + +选择对应的FOTA类型后,依次选择旧/新固件包,选择差分包输出的文件夹,最后选择`OK`按钮即可生成对应的差分包 + +![FOTA_1](media\FOTA_3.jpg) + +若是进行全量或是最小系统升级,会需要选择”用户分区文件“。该文件存在于ASR的固件包中。将官网提供的.bin后缀固件修改为.zip后缀。然后使用压缩工具打开,其中的`customer_fs.bin`文件就是我们这里上传的文件。 + +注意:只有ASR_16M模组才会支持此升级类型。 + +![FOTA_1](media\FOTA_4.jpg) + +其他操作与上述差分升级流程类似,这里不做赘述。 + +#### 软件设计 + +首先将上面步骤制作的差分包上传至HTTP服务器中。然后模块执行如下代码进行FOTA升级。 + +```Python +# 差分升级 +import fota +import utime + +DEF_URL1 = 'url1_connection' + +def result(args): + print('download status:', args[0], 'download process:', args[1]) + +def run(): + fota_obj = fota() # 创建 Fota 对象 + print("进入升级状态......") + res = fota_obj.httpDownload(url1=DEF_URL1, callback=result) + if res != 0: + print("httpDownload error") + return + print("wait httpDownload , update...") + utime.sleep(2) + +run() +``` + +```python +# 全量升级 +import fota +import utime + +DEF_URL1 = 'url1_connection' + +def result(args): + print('download status:', args[0], 'download process:', args[1]) + +def run(): + fota_obj = fota() # 创建Fota对象 + print("httpDownload...") + res = fota_obj.httpDownload(url1=DEF_URL1, callback=result) + if res != 0: + print("httpDownload error") + return + print("wait httpDownload , update...") + utime.sleep(2) + +run() +``` + +```python +# 最小系统升级 +import fota +import utime + +DEF_URL1 = 'url1_connection' +DEF_URL2 = 'url2_connection' + +def run(): + fota_obj = fota() # 创建Fota对象 + print("httpDownload...") + res = fota_obj.httpDownload(url1=DEF_URL1, url2=DEF_URL2) + if res != 0: + print("httpDownload error") + return + print("wait httpDownload , update...") + utime.sleep(2) + +run() +``` + +注:`url_connection`替换为文件存放服务器的连接。 + +## FOTA文件下载测试 + +使用QPYcom工具和模组进行交互,下载示例代码至模组进行运行。 + +FOTA过程模块会反复重启,请耐心等待。 \ No newline at end of file diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_1.jpg" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..96bf6cac844bedc520341720371b34fafafb2ec1 GIT binary patch literal 19956 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 literal 0 HcmV?d00001 diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_2.jpg" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/FOTA_2.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a52a1d910a1276a1974288c7d0833a8ea98d80ea GIT binary patch literal 20813 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 IP2FSv21%pNkpKVy literal 0 HcmV?d00001 -- Gitee From f3dfc32a5d313c2e6d029686589729ebd5e8a6b3 Mon Sep 17 00:00:00 2001 From: Grey Date: Sun, 12 Mar 2023 17:25:31 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix=20(APP=5FFOTA):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=BC=96=E5=86=99=E8=80=85=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N/A 固件版本: N/A 是否需要文案翻译: 是 --- ...7\347\272\247-\346\226\207\344\273\266.md" | 12 +++++----- .../media/APP_FOTA_2.jpg" | Bin 7369 -> 8600 bytes .../media/APP_FOTA_DEMO.py" | 22 ------------------ 3 files changed, 6 insertions(+), 28 deletions(-) delete mode 100644 "docs/development_guide/zh/OTA\345\215\207\347\272\247/media/APP_FOTA_DEMO.py" diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" index bbd24906..60b06eab 100644 --- "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" +++ "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" @@ -4,7 +4,7 @@ OTA:Over-the-Air Technology空中下载技术,是通过移动通信的空中接口实现对移动终端设备进行远程管理的技术。 -OTA升级-文件就是利用这项技术对模块进行文件升级。在QuecPython中该功能接口为[APP_FOTA](../../API_reference/zh/QuecPython类库/app_fota.html)。为阅读体验以下均命名为APP_FOTA。 +OTA升级-文件就是利用这项技术对模块进行文件升级。在QuecPython中该功能接口为[APP_FOTA](../../../API_reference/zh/QuecPython类库/app_fota.html)。为阅读体验以下均命名为APP_FOTA。 ## 怎么使用APP_FOTA @@ -18,7 +18,7 @@ APP_FOTA升级主要为网络侧与模块内部交互,除前提条件模块需 ### 软件应用 -QuecPython中APP_FOTA功能支持单文件下载与批量文件下载。API接口分别为:**fota.download(url, file_name)**与**fota.bulk_download(info=[])**,有关API的详细介绍请参考[APP_FOTA](../../API_reference/zh/QuecPython类库/app_fota.html)。 +QuecPython中APP_FOTA功能支持单文件下载与批量文件下载。API接口分别为:**fota.download(url, file_name)**与**fota.bulk_download(info=[])**,有关API的详细介绍请参考[APP_FOTA](../../../API_reference/zh/QuecPython类库/app_fota.html)。 需要注意是:调用APP_FOTA接口后文件不是直接下载到**usr**分区(模块存放用户文件的分区),而是下载到一个临时的**.updater**文件夹中。该文件夹可能存在与**usr.updater**文件夹下,也可能存在于**./fota/usr/.updater**。但对于实际使用不需要关注这些。只需了解APP_FOTA后文件并非直接存在**usr**目录,需要**fota.set_update_flag()**设置升级标志位后重启模组才会自动将对应文件搬运至**usr**目录。 @@ -30,9 +30,9 @@ from misc import Power import utime as time -files = ["000_Grey_Test.py"] +files = ["file_name.file_suffix"] download_list = [] -url = r'%s' % "http://112.31.84.164:8300/upload/Grey/" +url = r"url_connection" for file in files: download_list.append({'url': (url + file), 'file_name': '/usr/%s' % file}) @@ -48,12 +48,12 @@ if download_list: Power.powerRestart() # 重启模块 ``` +注:`file_name.file_suffix`替换为需要下载的文件名加后缀一起。`url_connection`替换为文件存放服务器的连接。 + ## APP_FOTA文件下载测试 使用QPYcom工具和模组进行交互,下载示例代码至模组进行运行。 -下载DEMO代码 - APP_FOTA_DEMO运行前: ![APP_FOTA_1](media/APP_FOTA_1.jpg) diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/APP_FOTA_2.jpg" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/media/APP_FOTA_2.jpg" index ce6d54bf961a433073ff7748e657323ec476b0ec..db946ad046dc9c359a393aee1860938d98d19add 100644 GIT binary patch literal 8600 zcmZvCcUV(R_icOu0cp|&1f+ys1e6|-CL+Cu9-2rKDWM6dp$bYTfHbM06FLL~MnS+R zp|?ntUZr=q;l1Dee$Tzn{UbSN&e^lG=Ip)J?3t5y26~!Qw^(lh001hjC+bE3z>RUj zxgXh0!Z+Vbo)*I4hOd#PDxkXW?kb@{?4qKp0szz|P@LP75ZdG~pIG<;0My^EKR3F) zN}T`zE>SIY6_Y^Q&72cohULue6A9%daj@4&iO@tujmLd((~Y;ZJ#R>s-cw1dMnQZdjp<~1RNvg5r)ySOVFlrF3fuTS z|08_&&*z^s_byC8ltbNT?Ne1j%6p%uhNirHv;?_slM(;(b_ETIfZQNp>{nnYf_VLI zp*AQ=W!&wGtVp8<$D(Zu6f__APyHz@Lx+h#rQa7; zeqg?UkHGPFsj^a$!F})^#%~hjqAv)T?sdGYg_zUXoUjcv3Zd}#ZJcVG zX=o7AnO*)N58)`i_`)q?dJ&9X6S0DB^__UF=iU_mLVi!u_BA#kIT_uaDUUPl-&Fgy z(wCIJx>aj9Z0qG*OI2eO@F!3>E=L`tYrGgcml46#{O_1M!AQ8ZxUWb(Z`)|{2H)xF ztO3gR80e-T51XtKX{zUXsPlVhA7w3ZH>H1`iO^*?>-g5;t`AFE@0dGVSL--FI?4(b zIzhJ~uy*eD-Z4W~h%bMU+fDn_xI?94;mq_wsh#o~zr*dSWNantaKdT&@Z@^wzd!8+ z9LLFcmIO=(b;|^XeHXykTDnC7Co1v=eoZoWcIgGge^w7j_)tX6!KZXm4jkWsL->0c zzjX?t>$j#;SksABc>vZMbOih1P_lRxaQ zo*P}o$wQ)`LWrxHM;Hu>tLG5}UnrK#fZMB23O*NAqBE-kg8m)hC=4BZaO+}C9}B_^ zr9q-8S?E?rZqQKp9tP+Cj*T2WOITs0Fw2f+7wY@g#L4MOe#p2ceCl4ig!WUz}WvnxHgb?#HGN%g& zeQ0K_mE8oX>KAufQ+}SP=I0<_-sgK+$)|&yu88@?tke6&w3ER5<({WVxeNBn9CRO- zybJkZh@8#Do{M+>P?fykc%it9=y*1XOYx0mdt=O3|J>J$|0iFw3+l#vx8IGm9TFkgD4j6~a=`=w*HdNrL5qj0Dq$qIR{};pBOBAo}w<&d<3SI3Ajfse?qz zli+(`9}ca+%|GYw5R9+s1jn`c98P*PVv{$za>C0PVb?L>?=(k_UA}mCz+O;aUm0kn zx52KX8fQi5(&IHR3|=}k)UNiTeP}Td_di^=Lh5t_wd>G$>Hi@sg*54Z4Hl{(ACAPY z72H8p)qH0x+|bxK1vn3cJ6Smk z63pJDz;F;bU*|IavgL7qe?v_d7fE^fG8^^iK<9xvh}RTK!$qXm44k>;{DdGdZ{8Bj zgTNUi6$^yutJb;n#n=<34!{>(j0-ZP&y>vUN275{g)x%72{IGBE~@Z!CdeF4Ot2^t zAm9;y{*>J8#|RHtaN>{}<*um!g+hn$#TJUmH4xWNg9QtPXR+GaWu$FDCPT1-G$c#EnYP?9Nus5yV95~M6^(z$^$rJVX42T0AuAA$y6^XFd zO&I80#6GQ(D_N8=sJ)oJ)tcRy>=<0Gm}{$E%oZs7P)JhRBPI$g2)VkT2NlECFQBiZ@BI`5=0vB^! z#F_Af_oG3IS26JgJl#mo8EHh<#JqoEBvu{*G;6H$Vvk)owOzea5?5zxQD>_ODwCF% z1Z%P-uNOCowuhvsuQUcb5Dtj7*Z*KZ_A@OgqiVR#!KAi`P(m{i^>6 zc0V6A)Am;wZ*E;)3GqH?hcH%$ra3Fz0Ni8SRSN$F587MeCvi^|(p<}~;0T!9x`ly% z-YF3gB-SP?ZlX%&Mgn{51cXW)(7s1D(~Z@M5tq5>0vCVO{jbw)-s$MKPrJVMuIA>O zTRq$I$(jEV7y}j&#tw|_O_@(L{s-@PU0u+yGr2T-Ymj%neFfWq z>Q7&1t1v8{d0)0O#nOz~!5`N6GPTO(y;e|}{0C;5iN(i^m63%??(7%b{1W=`KbE-H zGtZ{4gBV2!;_^??A!2uO)2AZ>X2Re~Au!Syk=B!3_l=7^k-Lh^0RV`hA<4t^hb$+i7or#vvI!e+qEjy*#ogb$EyDTVq^&J+s~#w>LFCB(CFJ6>&8x6 z1R_3)C7_!LIs)yyGGlUMC|kq8a%4}S7IcJri3NlphUE&!Ne*S)cdZj4qzmAQA%P0Y zxHL|=ZvCz~wxd0Cq=$q6 z!(?%@p>2B;MPDTDxdTsKRaplkFGrKJbUj1epQt3!TE zKUruMbHeMb88s6)icu)}S`O`|!a}wGLOa~UDKpP2`mH41p}y=^zO<*It(dj{^DUaj z*wFoWB-z{9)L@X7cu%f|N)Y>^N-HdBiV)W<+vE{OYZYf88eT~3h; zZh87y(Zkx-R!loib@%P;)-q;tsF7_7!9@Pi zc>AyY9JpVn;c&yf^V|_3PP5rClwOZNLF>e>X9^OmISr?rPiH_3xYz&c@`C&Lvv7wG z{MEslsb$0SBoWbney=h!vT*2k(+v>cTlh3h`b#Q_A$cHl-t|E>v^eH7w!S4K*YZyr zJ0Im{l75$#F2(cuZ2mPVkA~$N`#P3*LMowYB*EH9A>qY2dw2;e$CB&a5NGeg161?Y zeb0&3gv)kEaZkLB8lvyPK%@KEAe{*I4G?2dP+u6JHOzf*`|wi`-?>xT&;9o>T2&wH zpdIp(Fe(H{HLyISLt4tmwygcL>Qd6C|%w5c+p~D z{Tz7_pbLAiD<2DqXEb@}P4E?Vlx^K6p9F8tilKVA&QF;DkZdi!Z-whWNRX{F0jENix`J!9Jvr4ph)N zZs;~d%t*dh5-cwxVGEBM(DNmfNiQP2x#q%x;O-cmY9Gb%Dufb&Uyg zTVbVNbBe^sc6LdhLR?(=Pbxx@mh~A2sgK+i{s~*;a)3&`j$iv_*Z-G=bFgPue09RY zbidwPc$L4#WH7ui-CzLAxF2r6_yDqUS19j{p)rS5w@Nd5sFmKmls_pE*!Gt(W9>_; z6s{4HlH9Wn!wM>O!NxEHRt60_fXcvrJ2(WasD5zq=Y;CfTF4 z004s!K>(}mI&8_{UcC8HF+qWW>(#8Rms|Y%E2+@^3q$OxigvX!i-ii2ZE)UA$~;Y? zsI-AEwZ_k1jgYOm1?5a;X|K%o$qi3QfrBFw%#3zJ90`A!`%AXG<0u#-hrvZa{59;^#ua42>{F%6Lb^0 zK1z1E1?l+W zCSM8xZ*OU6vrZu>tHj`J3SZ}xXcrM8n1qCc<79{ckCF+gkOr|R581n{vTBaapVwEa zC_(U>^(TC<{6wlLRIlHF|yRiR1hLc-vcRzoCrBwD0Lo;ULnN5YBUKpIz&;wib?A8>N-)Wbckr< z`D30`*+Xs7FqJWPj^YxYwA3fRvHa_$zDa##*sngCzb8|uF)&88Z$b5rLI<5J;etIbzhQ@GH$ z;M_A8)LzHcV;Ry=?anlp%gDaVCA{Bif^y-OxhBhc@A|Bx&sc~p3!!RO-nlIjFgtS+ zKN1@jBl}&ZL(6XtrU)jmrr7#!q=UDc2(yK271;odEtG4Htt9HGyDt%LZOVdx;WOHu&f zREdz_FD4tben*2r1zUvacfN%F?*Di89q#Vwl5q9nKi%7okq#5$C*Yj9&P1H@m32(Y zwpt}eLv>V)>0hM8OkqoFYi2yBve?$K-``mkZ}%>xtllM6q|T;N!Ru4L0pqKbb7jE2 z_V-Ao3ZC*swnQ-k3Nv$aJZy2V@@d@*!tw=|qoB#Jm;FgQUChwky&~f~E(PsfNJAaE zG@oJJuHN9TFi@}02gG7nJbhEF0f5__BDG5Qlo45ryopQ%Z*>rh?D@-Y2M6(IwEr`0 zV`&`i{-0SpG>^v^<74)NF2_`L|9g>B$?4y4!Ti&%qFSvR;qBkf^PbH}_})CII9kY} z96xv1-HyX!u5cxl9`jZ9qHG@9tYV_-kYI!v^fxin*B+xBGxusKUa|NP-}7mZRit4=-n= z2)I2sgVTIjM!nLh?e$d{ZOC+*og9|1Z6YLU+3*C;M6#{+Q;KJDPg{y_BjbGk)igDa z0E~A&emg8{WrfSaP+iZ06Wr!_Yc1r?30J^aMf5UJUa!1iVorXUBK1(y3Z9i=i@H{Z zIBPVl$)I3vH$w5BCjMAR8gJp2yAAT6=@~PYz0fAy2TSEY;s(k0-nBF*%>}a?QJkC& zVa+@bDNNJlrO}MJ9W2vhTdO`F+m*S-@20$kyrN*L{P8p>Fr&CEDmsXj)Xw7fbM#h~ zf{vB{R$<5XxHjH@tiMc3*Kc#O@hd|mwM+e?Zxzkp-au4%IIMooZ}Epf&`U&T&0F?@ zjY^#y^t7Cue3Z`UJJ`m{0{{E@u$0BJL*i%buA{$-8uNfWmCiC&*qyK+X2^d=UJMKpDg7+jNIMao*(6+A2`mru}Y$o!(@U4K_FKN5U4$y4_;MJ;=AlR_cgMvLExBt z^h9K&VDP3~PTro4lm0gUC=?XXSUNmd6`x$=+gkKKWp97iRjs!9J!Sm6aKB!PI@B|+# zcujLt(|5iVit0ZDTqUXKYc3i-M)g^%km}_k?43vU*R_OKYPC2A=>IScM0uX^48&rSBeK*^K-LlX+Cc$ z4LJh`1hF*I9Y+U^*58|@47mrET?k}(;2N0(?`*u7#nYA;%B1v#E%i-a0N;$6pYgk6 z9;?^z({uOo5_cc6kfj!=Zl&MDM2*m!+@wdf^Tx)QTEwFkX0pz}>XVn}yxUUaI(Cd~ zl_CiwSQ&VK4aZXcTvW=325114sI{pE5x+@4@@RC(i_dg$Tia~li>v!e?@pZS=F-#z zg;|eynrr!!XPH72BP2f~C`RS<^GYbDcthf>$>4LsktYs(@p4`+fhs8!2UXzEmnTH- zabF@fo)0EF^R26^R59m=8{%0S>&?$F<_50Azl!SfB6V!`ZkZzORbzSYwA#Ul*(~D~ zr`yk@K2c{0V8NvwjG=Pg=Tw_<4HqX`|8Ag+#xaY>=B@mF`O?#~>R3?EX6nXAs}pjn z%+}=GyhixVj@snQ`%n^)lrsxeZY`XnS#mrtAwz!;n_Kt`%YlIN)R$FUphO;$abkj_ zf~HCi)en4RVr_ALFA^tw?6E|KPO`cEsv)O zC5(itd_i?hhIX=~6l&#Emp2ju)E>b6a31;WM_eKA$!J)#Dxg3#tYl(;DoGpjJNF*f z>Y2vei36=cyp@4#bl6z3@b$393kDg)W17ikwb2uujt*<|iM?y{>)49cDL`OGomFLfGhp8s$S!m91 zHfD1)ES#n!F+P|rK63r?H|PNb%tCcnA+pK*!>4NaSQ)xCf_f`kEr&h8xi{>XviFus zNmO)Bov!ZD)1i;wCu&rXUGSpK14?MD&xPdjS)fh887j|aCC8(NTza9!1CAeOgE2loh=dESQ=hfHq%aH3^xjxc z-1OsA16pXZ(Bl7$cd)8PC?%VWV|xxKyZeHbze4Xa5>&A@A?E}IU5|iRRED&vx6cu~ z)U!2jd_wSvBRJzNw3IpaXhG5?sZXD^L!2v#Tu*}9GJtt6=}vRNprl7U=Z zujvlxx|xK@d9TaJ{(k4J(}4`e{n?(b2cb(4RB*5y z)Y?*)oteqFdv#}cL^gtsKd)H*f@e7BoP4q)s4flD)SJA`PfIK;X{*Lp)kBIY_gb}| zTQx8tEs*aJxGn{p5X{BlJM5=>ZxzJ;913%f=In$uL1@eL%$O@LuR<6qAHhA{;wJgp zra$>V-y4>QYw)B~RwZ7%Rd`9&`mF&SL`*D9*j}JrKjNxx zzEp-{Sc3yM99Zvrh>2!gqyk5aQ)NNfblsf!owasuI}|9}J%NYpWku@T)cT|3OqHxY z)C?~-NQ9O5OK6G}6mt^J|1M`iOkFt3h6WB35cOv2WeQmr9$fOTTXBA6Yeqd~5K$dx zb)W%~E|iVY4UIIwf1>CaH_P*MJSWEfReYt~>&Rl7y4G^sBpCDN5Jm3xI@h=#rprsW zzthc0f!WoE9;fA{`kw4MqkI-`J#4oAw3gG@fC?t{yb8Pzy&If?qES{)KT_0kX})ZZ zIbE~sj~_`G%=h#%(!@Jk_;B9af_>m+)1{85HVQl5(?yn3eFoX*6s;kNupbNp%+4mh z3dppwf0tbR+yiTbH{&)>QnPePIW&+-FFn)QOcSqoJZ?o(mb)gv!Gb~RmHL}^8ZHvBhfOe175TIOkYH>a&_-;PT9`f?6LbieXzL%d@c z*y`I_pT9D8cWQl&JpfF4mk-<>GGRNko5>+#I) z>T%Bov?J|ld8zqv_f&mHVbZGkg`vKFf(Qurt{!5lNn1ShKulQq+!cDQe31`Guq$*2 zaZffW%M|bzm2v%#M|;_8Ecr|6sp%?jwS{!(*^IizsfaNHQ`S8(Ynx4YF?{znyXP2Q z@XBk_9L)!=Vh_WXiW{k5$^Jv9qcW*wuKDlZAA95M+evE`j-}s)%+b%(9M?m!t8q|z z*RyW%{!6N^2I!{UN}T?8!x03w(_l zI$Y(+)WnvHez$9>xK5ot4BBJG!SgUdZKP{)9M6TPb#9ZSt(@dTvkNIg-OeJ`ea=IB zg9=`>dQOm;dB!>BS**O)+zJX?S-+ED^XS!-y60;SqkfpP>>sCrQ;mRtW-_>o6`mdC zjZUk!Lq8d-u_?jZ&Cm@6wJN2w3eAgv6G?lh&B!&NTP4)ydO7;a-^yG5 zD@M=|!Nm2fh(+2|cg~xe*lgNw27Hzt8JOk|qWSF7KAOCI_E z^C*vx1LhphssBtX=2*itP4UU~qMDBL-wo$bGO~X+pl{s1URNg)T`z3`_edWh35Q42 z*X{vt?gIWbl>=PA*8}(fh_Bz+F9812u?f=EL1+V3O#iRGHER1;CzO+Um%%sRT;JBx L&{MBgg~0w78`h#2 literal 7369 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 b`cJ-Zxw Date: Tue, 14 Mar 2023 17:32:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix=20(OTA):=20=E5=8B=98=E8=AF=AFOTA?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=96=87=E4=BB=B6=E5=90=8D=E5=8F=8AURL?= =?UTF-8?q?=E4=B9=A6=E5=86=99=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N/A 固件版本: N/A 是否需要文案翻译: 是 --- ...45\215\207\347\272\247-\345\233\272\344\273\266.md" | 10 +++++----- ...45\215\207\347\272\247-\346\226\207\344\273\266.md" | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" index cf228f38..19a08591 100644 --- "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" +++ "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\345\233\272\344\273\266.md" @@ -59,7 +59,7 @@ FOTA类型分为三种:`差分升级`;`全量升级`;`最小系统升级` import fota import utime -DEF_URL1 = 'url1_connection' +DEF_URL1 = 'url1' def result(args): print('download status:', args[0], 'download process:', args[1]) @@ -82,7 +82,7 @@ run() import fota import utime -DEF_URL1 = 'url1_connection' +DEF_URL1 = 'url1' def result(args): print('download status:', args[0], 'download process:', args[1]) @@ -105,8 +105,8 @@ run() import fota import utime -DEF_URL1 = 'url1_connection' -DEF_URL2 = 'url2_connection' +DEF_URL1 = 'url1' +DEF_URL2 = 'url2' def run(): fota_obj = fota() # 创建Fota对象 @@ -121,7 +121,7 @@ def run(): run() ``` -注:`url_connection`替换为文件存放服务器的连接。 +注:`url1`与`url2`替换为文件存放服务器的连接。 ## FOTA文件下载测试 diff --git "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" index 60b06eab..4505ac40 100644 --- "a/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" +++ "b/docs/development_guide/zh/OTA\345\215\207\347\272\247/OTA\345\215\207\347\272\247-\346\226\207\344\273\266.md" @@ -30,9 +30,9 @@ from misc import Power import utime as time -files = ["file_name.file_suffix"] +files = ["file_name"] download_list = [] -url = r"url_connection" +url = r"url" for file in files: download_list.append({'url': (url + file), 'file_name': '/usr/%s' % file}) @@ -48,7 +48,7 @@ if download_list: Power.powerRestart() # 重启模块 ``` -注:`file_name.file_suffix`替换为需要下载的文件名加后缀一起。`url_connection`替换为文件存放服务器的连接。 +注:`file_name`替换为需要下载的文件名加后缀一起。`url`替换为文件存放服务器的连接。 ## APP_FOTA文件下载测试 -- Gitee