修改版本,统一获取接口。
authorsnickersun <snickersun@163.com>
Mon, 18 May 2026 02:14:26 +0000 (10:14 +0800)
committersnickersun <snickersun@163.com>
Mon, 18 May 2026 02:14:26 +0000 (10:14 +0800)
修改编译脚本,重构固件包名称结构。

13 files changed:
2.sdk/new.bat
2.sdk/new_clean.bat
2.sdk/new_version.bat
2.sdk/project/7PIN_1_5/new.bat
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/Makefile
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/version_util.py [new file with mode: 0644]
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/versions.py
2.sdk/project/7PIN_1_5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/config/autoconf.h
2.sdk/project/7PIN_1_5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/config/config.mk
2.sdk/project/7PIN_1_5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip

index 9fd2248..f0ba1c0 100644 (file)
@@ -1,6 +1,21 @@
 @echo off
+rem arg1=project  arg2=PRODUCT_NAME (product_%2%.ini)
+if "%~1"=="" (
+  echo [ERROR] usage: new.bat ^<project^> ^<PRODUCT_NAME^>
+  exit /b 1
+)
+if "%~2"=="" (
+  echo [ERROR] usage: new.bat ^<project^> ^<PRODUCT_NAME^>
+  exit /b 1
+)
+
 call new_version.bat %1 %2
+if errorlevel 1 exit /b 1
 
 cd project\%1\
-
-call new.bat %1
+call new.bat %1 %2
+if errorlevel 1 (
+  cd /d "%~dp0"
+  exit /b 1
+)
+cd /d "%~dp0"
index 7bfe1d2..96b9959 100644 (file)
@@ -1,6 +1,7 @@
 @echo off\r
 setlocal EnableDelayedExpansion\r
-cd /d "%~dp0"\r
+set "SDK_ROOT=%~dp0"\r
+cd /d "!SDK_ROOT!"\r
 @REM chcp 65001 >nul 2>&1\r
 \r
 set "PATH=D:\helios\bin;%PATH%"\r
@@ -21,10 +22,14 @@ set "PROJ=7PIN_1_5"
 set "BOARD=EG810MCN_GA_VOLTE"\r
 if not "%~3"=="" set "PROJ=%~3"\r
 \r
-REM µÚ2²ÎÊý£ºqp_log  1=¶³½á qp_log.mpy ²¢Óàqp_print ´ò´®¿ÚÈÕÖ¾£»0=²»¶³½á£¬»ØÍË print\r
+REM µÚ2²ÎÊý£ºqp_log  Ä¬ÈϹرգ»1=¶³½á qp_log.mpy ²¢Óàqp_print ´ò´®¿ÚÈÕÖ¾\r
 set "QP_LOG_ARG=%~2"\r
-if "!QP_LOG_ARG!"=="" set "QP_LOG_ARG=1"\r
-set "QP_LOG_EN=1"\r
+set "QP_LOG_EN=0"\r
+if /i "!QP_LOG_ARG!"=="1" set "QP_LOG_EN=1"\r
+if /i "!QP_LOG_ARG!"=="on" set "QP_LOG_EN=1"\r
+if /i "!QP_LOG_ARG!"=="yes" set "QP_LOG_EN=1"\r
+if /i "!QP_LOG_ARG!"=="y" set "QP_LOG_EN=1"\r
+if /i "!QP_LOG_ARG!"=="true" set "QP_LOG_EN=1"\r
 if /i "!QP_LOG_ARG!"=="0" set "QP_LOG_EN=0"\r
 if /i "!QP_LOG_ARG!"=="off" set "QP_LOG_EN=0"\r
 if /i "!QP_LOG_ARG!"=="no" set "QP_LOG_EN=0"\r
@@ -69,6 +74,7 @@ if "!VERSION!"=="" (
 set "VERSION=!VERSION:"=!"\r
 for /f "delims=" %%s in ("!VERSION!") do set "VERSION=%%s"\r
 set "VERSION=!VERSION: =!"\r
+echo [info] PRODUCT_NAME=!PRODUCT_NAME! VERSION=!VERSION! ini=!INI!\r
 \r
 set "SRC_CFG=!CORE_BASE!\products\configs\!DEV_TYPE!\default_config.py"\r
 set "SRC_SRV=!CORE_BASE!\products\srv_configs\!SRV_TYPE!\default_srv.py"\r
@@ -105,13 +111,16 @@ if errorlevel 1 (
 )\r
 cd ..\r
 \r
+rem versions.py: generated once inside new.bat (before xcopy/compile)\r
 call new.bat !PROJ! !PRODUCT_NAME!\r
 if errorlevel 1 (\r
   echo [´íÎó] ±àÒëʧ°Ü ^(new.bat^)\r
   exit /b 1\r
 )\r
 \r
-set "REL_DIR=Helios_SDK\opt\release\!BOARD!"\r
+rem project\new.bat µÄ endlocal »á»Ö¸´ cwd£¬±ØÐë»Øµ½ 2.sdk ¸ùĿ¼ÔÙÈ¡ release\r
+cd /d "!SDK_ROOT!"\r
+set "REL_DIR=!SDK_ROOT!Helios_SDK\opt\release\!BOARD!"\r
 if not exist "!REL_DIR!" (\r
   echo [´íÎó] ±àÒë²úÎïĿ¼²»´æÔÚ: !REL_DIR!\r
   exit /b 1\r
@@ -126,19 +135,19 @@ set "COMMIT=nogit"
 for /f "delims=" %%h in ('git -C "%~dp0.." rev-parse --short HEAD 2^>nul') do set "COMMIT=%%h"\r
 if "!COMMIT!"=="" set "COMMIT=nogit"\r
 \r
-set "NEWNAME=!PRODUCT_NAME!_!DEV_TYPE!_!SRV_TYPE!_!VERSION!_!BUILD_TIME!_!COMMIT!"\r
-if "!QP_LOG_EN!"=="0" set "NEWNAME=!NEWNAME!_noqplog"\r
+set "NEWNAME=!PRODUCT_NAME!_!VERSION!_!BUILD_TIME!_!COMMIT!_!DEV_TYPE!_!SRV_TYPE!"\r
+if "!QP_LOG_EN!"=="1" set "NEWNAME=!NEWNAME!_qplog"\r
 \r
-if not exist "release" mkdir "release"\r
+if not exist "!SDK_ROOT!release" mkdir "!SDK_ROOT!release"\r
 \r
 echo [ÐÅÏ¢] ¸´ÖƲúÎïµ½ release\!NEWNAME!\r
-xcopy /E /I /Y "!REL_DIR!" "release\!NEWNAME!\" >nul\r
+xcopy /E /I /Y "!REL_DIR!" "!SDK_ROOT!release\!NEWNAME!\" >nul\r
 if errorlevel 1 (\r
   echo [´íÎó] xcopy Ê§°Ü\r
   exit /b 1\r
 )\r
 \r
-echo [Íê³É] release\!NEWNAME!\r
+echo [Íê³É] !SDK_ROOT!release\!NEWNAME!\r
 exit /b 0\r
 \r
 :show_help\r
@@ -146,7 +155,8 @@ echo.
 echo Ó÷¨: new_clean.bat [²úÆ·Ãû] [qp_log] [¹¤³ÌÃû]\r
 echo   ²úÆ·Ãû  ¶ÔÓ¦ products\product_²úÆ·Ãû.ini£¬Ä¬ÈÏ k8\r
 echo   qp_log  ÊÇ·ñ±àÒë¶³½á qp_log ²¢Í¨¹ý qp_print ´ò´®¿ÚÈÕÖ¾\r
-echo           1 / on / y / yes   ¿ªÆô£¨Ä¬ÈÏ£©\r
+echo           Ä¬ÈϹرգ»¿ªÆôʱ¹Ì¼þĿ¼Ãû×·¼Ó _qplog\r
+echo           1 / on / y / yes   ¿ªÆô\r
 echo           0 / off / n / no   ¹Ø±Õ\r
 echo   ¹¤³ÌÃû  ¶ÔÓ¦ project\¹¤³ÌÃû\£¬Ä¬ÈÏ 7PIN_1_5\r
 echo.\r
@@ -154,6 +164,6 @@ echo ʾ
 echo   new_clean.bat k8\r
 echo   new_clean.bat k8 1\r
 echo   new_clean.bat k8 0\r
-echo   new_clean.bat k8 1 7PIN\r
+echo   new_clean.bat k8 1 7PIN_1_5\r
 echo.\r
 exit /b 0\r
index b9dbca1..4c220fe 100644 (file)
@@ -1,27 +1,49 @@
 @echo off
+setlocal EnableDelayedExpansion
+rem arg1=project (e.g. 7PIN_1_5)  arg2=PRODUCT_NAME (e.g. k8 -> product_k8.ini)
+rem Always resolve paths from 2.sdk root (this script's directory), not caller cwd.
+set "SDK_ROOT=%~dp0"
+if "!SDK_ROOT:~-1!"=="\" set "SDK_ROOT=!SDK_ROOT:~0,-1!"
+
 set "PROJ=%~1"
 set "PRODUCT_NAME=%~2"
-if "%PRODUCT_NAME%"=="" set "PRODUCT_NAME=k8"
+if "!PROJ!"=="" (
+  echo [ERROR] usage: new_version.bat ^<project^> ^<PRODUCT_NAME^>
+  exit /b 1
+)
+if "!PRODUCT_NAME!"=="" set "PRODUCT_NAME=k8"
 
-set "CORE_BASE=project\%PROJ%\sdk\services\microPython\ports\quectel\core"
-set "INI=%CORE_BASE%\products\product_%PRODUCT_NAME%.ini"
+set "PRODUCT_NAME=!PRODUCT_NAME:"=!"
+for /f "delims=" %%s in ("!PRODUCT_NAME!") do set "PRODUCT_NAME=%%s"
+set "PRODUCT_NAME=!PRODUCT_NAME: =!"
 
-if not exist "%INI%" (
-  echo [???] ?????product.ini: %INI%
+set "CORE_BASE=!SDK_ROOT!\project\!PROJ!\sdk\services\microPython\ports\quectel\core"
+set "INI=!CORE_BASE!\products\product_!PRODUCT_NAME!.ini"
+
+if not exist "!INI!" (
+  echo [ERROR] missing ini: !INI!
   exit /b 1
 )
 
 set "VERSION="
-for /f "usebackq tokens=1,* delims==" %%a in ("%INI%") do (
+for /f "usebackq tokens=1,* delims==" %%a in ("!INI!") do (
   if /i "%%~a"=="VERSION" set "VERSION=%%~b"
 )
-if "%VERSION%"=="" (
-  echo [???] %INI% ?????? VERSION
+
+if "!VERSION!"=="" (
+  echo [ERROR] !INI! missing VERSION
   exit /b 1
 )
 
-set "VERSION=%VERSION:\"=%"
-set "VERSION=%VERSION: =%"
+set "VERSION=!VERSION:"=!"
+for /f "delims=" %%s in ("!VERSION!") do set "VERSION=%%s"
+set "VERSION=!VERSION: =!"
+
+(
+  echo Product_Name="!PRODUCT_NAME!"
+  echo Version="!VERSION!"
+  echo Build_Time="!date:~0,4!-!date:~5,2!-!date:~8,2! !time:~0,8!"
+) > "!CORE_BASE!\versions.py"
 
-echo Version="%VERSION%" > "%CORE_BASE%\versions.py"
-echo Build_Time="%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%" >> "%CORE_BASE%\versions.py"\r
+echo [OK] versions.py  Product_Name=!PRODUCT_NAME!  Version=!VERSION!
+exit /b 0
index de5acf0..ed2c4a1 100644 (file)
@@ -1,4 +1,14 @@
 @echo off\r
+setlocal EnableDelayedExpansion\r
+rem arg1=project  arg2=PRODUCT_NAME (product_%2%.ini)\r
+set "PROJ=%~1"\r
+set "PRODUCT_NAME=%~2"\r
+if "!PROJ!"=="" set "PROJ=7PIN_1_5"\r
+if "!PRODUCT_NAME!"=="" (\r
+  echo [ERROR] usage: new.bat ^<project^> ^<PRODUCT_NAME^>\r
+  goto exit\r
+)\r
+\r
 md images\r
 del images /q\r
 \r
@@ -45,4 +55,5 @@ xcopy  sdk\ ..\..\Helios_SDK\ /e/h/y
 cd ..\..\Helios_SDK\r
 helios.exe make services/microPython @EG810MCN_GA_VOLTE EG810MCN_GA_VOLTE\r
 cd ..\r
-:exit
\ No newline at end of file
+:exit\r
+endlocal\r
index 98fe221..b831e16 100644 (file)
@@ -6,6 +6,7 @@ except Exception:
 import _thread\r
 import usys\r
 import versions\r
+import version_util\r
 import ql_fs\r
 \r
 model = "D15"\r
@@ -21,7 +22,7 @@ platform = "D15"#格物平台 不用的话选择空
 \r
 # model = "G10W_DT_YBX_"\r
 \r
-softversion = "{}_{}".format(project,versions.Version)\r
+softversion = version_util.get_unified_version()\r
 builTime = "{}".format(versions.Build_Time)\r
 \r
 class EventStore(object):\r
index a935438..1a864dc 100644 (file)
@@ -965,6 +965,7 @@ frozen_mpy_list =   $(BUILD)/_boot.mpy \
                                        $(BUILD)/ui.mpy \
                                        $(BUILD)/main_init.mpy \
                                        $(BUILD)/versions.mpy \
+                                       $(BUILD)/version_util.mpy \
                                        $(BUILD)/motor.mpy \
                                        $(BUILD)/ai_VC.mpy \
                                        $(BUILD)/ai_alarm.mpy \
index 8e7dcdc..6b0b06b 100644 (file)
@@ -34,6 +34,7 @@ import machine
 import dataCall
 import constants
 import versions
+import version_util
 from machine import UART
 try:
     import vc_config
@@ -3138,7 +3139,7 @@ class OTA():
             # print("sourceVersion:{}".format(sourceVersion))
             # sourceVersion = sourceVersion.replace(" ", "0")
             # print("sourceVersion2:{}".format(sourceVersion))
-            sourceVersion = "7PIN_BT_000000000000"
+            sourceVersion = version_util.get_unified_version()
             print("sourceVersion:{}".format(sourceVersion))
             bt_versions = EventMesh.publish("get_bt_versions")
             if bt_versions == None:
@@ -3203,12 +3204,8 @@ class OTA():
         self.downloadFileVoURL2= ""
         #self.downloadFileVoURLBT=""
         try:
-            sourceVersion = versions.Build_Time
-            sourceVersion = "7PIN-"+sourceVersion[:10]+"-"+sourceVersion[11:-3]
+            sourceVersion = version_util.get_unified_version()
             print("sourceVersion:{}".format(sourceVersion))
-            sourceVersion = sourceVersion.replace(" ", "0")
-            print("sourceVersion2:{}".format(sourceVersion))
-            #url = "http://iot.api.thisiot.com/ota/task?deviceId=860132060348836&sourceVersion=2024-12-20-15:35-1"
             url =None
             url = "https://dmp-api.qipai.com/qp-dmp-api/ota/task?deviceId={}&sourceVersion={}".format(modem.getDevImei(),sourceVersion)
             print(url)
@@ -3296,11 +3293,8 @@ class OTA():
     def ota_result(self,event=None,msg=None):
         response = None
         try:
-            currentVersion = versions.Build_Time
-            currentVersion = "7PIN-"+currentVersion[:10]+"-"+currentVersion[11:-3]
-            print("currentVersion1:{}".format(currentVersion))
-            currentVersion = currentVersion.replace(" ", "0")
-            print("currentVersion2:{}".format(currentVersion))
+            currentVersion = version_util.get_unified_version()
+            print("currentVersion:{}".format(currentVersion))
             url = (constants.DMP_BASE + "/ota/result?deviceId={}&currentVersion={}").format(modem.getDevImei(),currentVersion)
             print(url)
             response = request.post(url,timeout=5)
@@ -7609,11 +7603,10 @@ class AI_VC(Abstract):
                             self.AI_TTS_str = "设备号查询失败"
                         return 0
                     if text.find("版本") != -1 :
-                        sourceVersion = versions.Build_Time
                         bt_versions = EventMesh.publish("get_bt_versions")
                         if bt_versions =="" :
                             bt_versions = "BT_NONE"
-                        self.AI_TTS_str ="当前版本号:Mr-Seven-"+sourceVersion+bt_versions
+                        self.AI_TTS_str ="当前版本号:"+version_util.get_tts_version(bt_versions)
                         return 0
                     if text.find("服务器地址") != -1 :
                         self.AI_TTS_str ="服务器地址"+self.server_ip
@@ -7860,11 +7853,10 @@ class AI_VC(Abstract):
                     #         self.AI_TTS_str = "设备号查询失败"
                     #     return 0
                     if text.find("版本") != -1 :
-                        sourceVersion = versions.Build_Time
                         bt_versions = EventMesh.publish("get_bt_versions")
                         if bt_versions ==None:
                             bt_versions = "BT_NONE"
-                        self.AI_TTS_str ="当前版本号:Mr-Seven-"+sourceVersion+bt_versions
+                        self.AI_TTS_str ="当前版本号:"+version_util.get_tts_version(bt_versions)
 
                         return 0
                     if text.find("服务器地址") != -1 :
index 8c63370..3d85234 100644 (file)
@@ -30,6 +30,7 @@ import modem
 SHA256 = uhashlib.sha256
 import SecureData
 import versions
+import version_util
 dev_type = "7PIN"#柒牌1代  
 # dev_type = "7PIN_1_5"#柒牌1.5代  
 def server_init(server_type = None):
@@ -4364,8 +4365,7 @@ class IOTWeb_get_device_stateProtoCol(ProtoCol):
         VC_TTS_volume =  EventMesh.publish("get_storage_config","VC_TTS_volume")#音量配置
         if VC_TTS_volume == None:
             VC_TTS_volume =100
-        sourceVersion =versions.Build_Time
-        Timeversion ="JSWM-"+sourceVersion
+        Timeversion = version_util.get_unified_version()
         ts = utime.mktime(utime.localtime())
         come_trans = {
             "data":{
diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/version_util.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/version_util.py
new file mode 100644 (file)
index 0000000..cc37a03
--- /dev/null
@@ -0,0 +1,56 @@
+import versions
+
+
+def _build_time_token():
+    """从 versions.Build_Time 解析,输出 yyyy_MM_dd_HH_mm(不含秒)。"""
+    try:
+        s = str(versions.Build_Time).strip().strip('"').strip("'")
+    except Exception:
+        s = ""
+    if not s:
+        return ""
+
+    # 已是下划线格式:取前 5 段(去掉秒)
+    if all((c.isdigit() or c == "_") for c in s):
+        parts = s.split("_")
+        if len(parts) >= 5:
+            y, mo, d, hh, mi = parts[0], parts[1], parts[2], parts[3], parts[4]
+            return "{}_{}_{}_{}_{}".format(
+                y, mo.zfill(2), d.zfill(2), hh.zfill(2), mi.zfill(2)
+            )
+
+    # 原始 Build_Time:2026-05-18  1:11:19
+    try:
+        while "  " in s:
+            s = s.replace("  ", " ")
+        date_part, time_part = s.split(" ", 1)
+        y, mo, d = date_part.replace("/", "-").split("-")[:3]
+        t = time_part.strip().split(":")
+        hh = t[0].zfill(2) if len(t) > 0 else "00"
+        mi = t[1].zfill(2) if len(t) > 1 else "00"
+        return "{}_{}_{}_{}_{}".format(y, mo.zfill(2), d.zfill(2), hh, mi)
+    except Exception:
+        return ""
+
+
+def get_unified_version():
+    """统一版本号: [PRODUCT_NAME]_[Version]_[build_time]"""
+    try:
+        pn = str(getattr(versions, "Product_Name", "") or "").strip()
+    except Exception:
+        pn = "unknown"
+    if not pn:
+        pn = "unknown"
+    try:
+        ver = str(versions.Version).strip()
+    except Exception:
+        ver = ""
+    return "{}_{}_{}".format(pn, ver, _build_time_token())
+
+
+def get_tts_version(bt_suffix=""):
+    """本地 TTS 播报用统一版本号,可选拼接蓝牙模块版本。"""
+    base = get_unified_version()
+    if bt_suffix:
+        return base + str(bt_suffix)
+    return base
index e4f5479..16670f1 100644 (file)
@@ -46,6 +46,5 @@
 //#define CONFIG_JPEG 1\r
 #define CONFIG_CAMERA_SAVEPHOTOS 1\r
 #define CONFIG_VAD 1\r
-#define CONFIG_QP_LOG 1\r
 //闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備胶绮崝锕傚礈濞嗘挸绀夐柕鍫濇川绾剧晫鈧箍鍎遍幏鎴︾叕椤掑倵鍋撳▓鍨灈妞ゎ厾鍏樺顐﹀箛椤撶偟绐炴繝鐢靛Т鐎氱兘宕ラ崨瀛樷拻濞达絿鎳撻婊呯磼鐠囨彃鈧潡鐛径濞炬闁靛繒濮烽鎺旂磽閸屾瑧鍔嶆い顓炴喘瀹曘垽鏌嗗鍡忔嫼闂傚倸鐗婄粙鎾存櫠閺囥垺鐓欓柛鎰叀閸欏嫭銇勯姀鈩冾棃妞ゃ垺锕㈡慨鈧柨娑樺楠炴劙姊虹拠鑼闁稿绋掗弲鍫曟寠婢规繆娅i埀顒佺⊕鑿уù婊勭矒閺屾洝绠涙繝鍌氣拤缂備讲鍋撻悗锝庡枟閻撴稑霉閿濆洦鍤€濠殿喖绉堕埀顒冾潐濞叉牕鐣烽鍕厺閹肩补鍨鹃悢鐓庣畳鐎广儱妫楅崫鐑樻叏婵犲偆鐓肩€规洘甯掗埢搴ㄥ箳閹存繂鑵愬┑锛勫亼閸娿倝宕㈡總鍛婂亱闊洦绋戠粻鏍ㄣ亜閺囨浜惧銈冨灪濞茬喖寮崘顔肩劦妞ゆ帒鍊婚惌鍡楊熆閼搁潧濮囩紒鐘侯潐缁绘盯鏁愭惔鈥愁潻婵犲痉銈呬汗缂佽鲸甯¢幃鈺呮濞戞瑧浜梻浣告惈閻ジ宕伴弽褜娼栭柤濮愬€愰崑鎾绘濞戞﹩妫屽┑鈥虫▕閸犳氨妲愰幘瀵哥懝闁搞儜鍌滅泿缂傚倷绀侀ˇ顖滅礊婵犲偆鍤曢悹鍥ㄧゴ濡插牓鏌曡箛濠冩珕闁哄懏绻堝娲箰鎼达絿鐣靛┑鐐茬湴閸旀垿骞冮悙顒傞檮闁告稑艌閹风儤绻涢弶鎴濇倯闁荤啙鍥х濞寸厧鐡ㄩ悡娆戠棯閺夊灝鑸瑰ù婊€鍗抽弻娑㈠煛閸愩劋妲愬Δ鐘靛仜椤戝寮崘顔肩劦妞ゆ帒瀚崑鍌炴煥閻斿搫校闁绘挻娲熼弻宥夊煛娴e憡鐏撳┑鐐茬墛閿氶棁澶愭煟濡寧鐝悘蹇ラ檮閹便劍绻濋崘鈹夸虎濠碘槅鍋勯崯顐﹀煡婢跺ň鏋庢俊顖涙た濡捇姊婚崒娆掑厡妞ゎ厼鐗撻、鏍幢濞戞顔夐梺鎼炲劀鐏炲墽绋侀梻浣瑰劤缁绘锝炴径鎰;婵せ鍋撻柡灞界Ч婵$兘濡烽妷銉ь儓濠电姰鍨奸~澶娒洪弽顓炵厴闁硅揪闄勯崐椋庘偓鐟板閸犳牕鈻撻懜鐢电瘈婵炲牆鐏濋弸鐔兼煙閸涘﹤鈻曢柕鍡曠窔瀵粙顢橀悙鑼垛偓鍨攽閻愭潙鐏︽い顓炴喘閺佸秴鈻庨幘绮规嫼濠殿喚鎳撳ú銈夋倶閳哄懏鐓欓悹鍥囧懐鐦堥梺璇″櫙缁绘繃淇婇悜鑺ユ櫆闁告挆鍛潓闂傚倸鍊搁崐鎼佹偋婵犲嫮鐭欓柟鐑橆檪婢舵劕顫呴幒铏濠婂牆绠规繛锝庡墮閻掔儤绻涢崼鐔割棃婵☆偂鐒﹀鍕偓锝庡墰閻﹀牊绻濋悽闈浶㈤柛濠冩倐椤㈡棃顢曢妶鍥╋紲闂佺粯锚绾绢厽鏅舵潏鈺冪<閺夊牄鍔岀粭褏绱掓潏銊ョ瑨閾伙綁鏌涜箛鏇炲付闁搞劑浜堕弻锝嗘償閵堝孩缍堝┑鐐村絻缁绘ê鐣峰┑瀣闁挎棁銆€閸嬫挻鎷呴崜鍙夊缓闂侀€炲苯澧存鐐插暣婵偓闁靛牆鎳庣粣娑欑節閻㈤潧孝闁稿﹦鏁诲畷鎴﹀箻缂佹鍙嗛柣搴岛閺呮繄绮诲鑸碘拺缂備焦锚婵箑霉濠婂嫮鐭掗柛鈹惧亾濡炪倖鍨堕崕鎶藉焵椤掍胶澧辩紒顔碱儏椤撳ジ宕担鍝勫汲闂備礁澹婇崑鍛崲閸曨垰钃熼柛顐犲劜閻撶喖骞栧ǎ顒€鐏柍顖涙礋閹洦寰勫畝鈧壕濂告偣閸パ冪骇妞ゃ儯鍨介弻锛勪沪閸撗勫垱濡炪們鍨哄ú鐔煎极閹版澘骞㈡繛鍡樕戣ⅲ闂備浇顕уù鐑藉箠閹捐绠熼柨娑樺瀹曟煡鏌涢幇闈涙灈濡楀懘姊洪崨濠冨闁搞劋鍗冲畷姗€鍩€椤掑嫭鈷戦梻鍫熶腹濞戙垹宸濇い鏍ㄨ壘缁犲姊婚崒姘偓椋庣矆娓氣偓楠炴顭ㄩ崼婵堬紱濠电偞鍨崹娲磻婢舵劖鐓熼柟鎯у暱閻︺劍绻涢崗鑲╁⒈缂佽鲸鎸婚幏鍛存嚃閳╁啫鐏﹂柛鎺戯躬楠炴﹢顢欓悾灞藉及闂傚鍋勫ú锕€煤濮椻偓瀹曠敻鍩€椤掑倻纾藉ù锝堫嚃濞堬絿绱掔紒妯肩畵妞ゎ偄绻愮叅妞ゅ繐瀚畵宥咁渻閵堝棙瀵欓柛娑卞幖姝囧┑鐘垫暩婵參骞忛崘顔肩<婵犲﹤鎳愰崢顖炴煟鎼淬値娼愭繛鍙壝悾婵嬪箹娴e搫绁﹂梺鍦劋閸わ箓寮埀顒傛崲濠靛绀冮柍鍝勫€昏ぐ銊︾節閻㈤潧校妞ゆ梹鐗犲畷鏉课旈崨顏佸亾閿曞倸鐐婃い鎺嗗亾闁稿被鍔庨幉绋款吋婢跺﹦鍘洪梺鍦亾濡炲潡寮崘顔界叆闁哄啫娉﹂幒妤€绠繛宸簼閳锋垿鏌涘☉姗堝姛闁宠棄顦甸弻銊╁即濡搫濮曢悗鍨緲鐎氭澘鐣烽悢纰辨晬婵炴垶鑹鹃獮鍫ユ⒒娓氣偓濞佳団€﹂鐘典笉闁规璇差槺閳ь剨缍嗛崜娑氬閸忕浜滈柡鍐e亾妞ゆ垶鐟╁畷闈涒枎閹惧鍘撻梺鑺ッˇ钘壩i幖浣圭厓閻犲洦鐓¢妤併亜閹剧偨鍋㈢€规洜鍠栭、姗€鎮╅搹顐g彜闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝夋交閼板潡姊洪鈧粔瀵稿閸ф鐓忛柛顐g箥濡叉悂鏌涢妸銉モ偓鍧楀蓟濞戔懇鈧箓骞嬪┑鍛晼婵$偑鍊愰弲婊堟偂閿熺姴钃熼柨婵嗩槸缁犳稒銇勯弮鍌氬付濠碘剝妞藉铏圭磼濡闉嶅┑鐐跺皺閸犳牕顕f繝姘櫜濠㈣泛锕ラˉ婵嗏攽閻愬弶顥犻柛瀣崌閹潡宕堕浣叉嫼缂備礁顑呴悘婵嬵敆閵忊剝鍙忓┑鐘插€荤粔鐑橆殽閻愯尙澧﹀┑鈩冩倐閺佸倿宕滆濡插洭姊绘担鍛婂暈婵炶绠撳畷銏ゆ嚃閳哄啰鐣堕梺璺ㄥ枔婵敻鍩涢幋锔界厽闁绘柨鎲$欢鍙変繆閹绘帩鐓奸柡宀€鍠栭幖褰掝敃閵忕媭娼曢梻浣告啞鐢鏁幒妤€鐓濋幖娣妼缁犺崵鈧娲栧ù鍌炲船閸洘鈷戠痪顓炴噹娴滃綊鎮跺☉鏍у姎妞ゎ剙锕ㄩˇ鍦偓瑙勬礃閸ㄥ潡鐛Ο濂借櫣绱掑Ο缁樼彨闂傚倷鑳剁划顖炲礉濡ゅ啯鍋橀柕澶嗘櫅缁狀垱绻涘顔荤凹闁绘挾鍠栭弻锝呂熼崫鍕獓缂備讲鍋撶€光偓閸曨剛鍘撻悷婊勭矒瀹曟粌鈹戦崱蹇旂€洪梺鍝勬储閸ㄦ椽宕愰崼鏇熺厱妞ゆ劗濮撮崝婊堟煃闁垮鐏╃紒杈ㄥ笧閳ь剨缍嗘禍婊堟儍閿熺姵鐓涢柍褜鍓氱换婵嗩潩椤撶姴骞嶆俊鐐€栧濠氬储瑜旈崺鈧い鎺嗗亾婵炲皷鈧磭鏆﹂悷娆忓閸嬪懘鏌涢幇銊︽珕婵炲懎娲铏圭矙閹稿孩鎷卞┑顔角滈崝鎴濈暦閹扮増鍊风€瑰壊鍠楃€靛矂姊洪棃娑氬闁硅櫕鍔楃划濠氬箥椤斿墽锛滄繝銏f硾閺堫剟寮抽鍕厱闁崇懓鐏濋悘鈺呮煟閿濆棛绠炵€规洜鍠栭、妤呭磼濮橆剛顔戦梻鍌欒兌閹虫捇宕ョ€n喗鍋╂い蹇撶墕閺勩儵鏌涢弴銊ョ仩闁汇値鍣i悡顐﹀炊閵娧€濮囬梺缁樻尰濞茬喖寮婚敐鍛傜喓鎷犻幓鎺濇浇婵犵數鍋涢悧濠勫垝瀹ュ鈧啴濡烽埡鍌氣偓鐑芥煙缂佹ê绗氭繛鍫濐煼閹鎲撮崟顒傤槰闁汇埄鍨辩敮锟犳晲閻愭祴鏀介柛銉e妿缁夊爼姊洪棃娑辩叚閻庨潧鐭傚畷顖涙償閵婏腹鎷婚梺绋挎湰閻熝囁囬敂鐣岀瘈闁逞屽墴閺屽棗顓奸崨顖ょ吹闂備線娼ч悧鍡浰囬銏犵劦妞ゆ巻鍋撻柛鐔告綑閻g兘宕¢悙鈺傤潔濠碘槅鍨抽妴瀣椤斿皷鏀介柨娑樺娴犳粍銇勯幋婵囧櫣闂囧顪冪€n亪顎楁い銉﹀哺閺屾稖绠涢弴銊ュ妴婵炲瓨绮嶇划鎾诲蓟閿熺姴绀冮柨婵嗘噸婢规洘淇婇悙顏勨偓鏍垂閸洘鍋¢柕澶嗘杹閳ь剨绠撳畷鍫曨敆閳ь剛绮诲☉銏$厽婵°倐鍋撻柣妤€妫濋崺鈧い鎺嗗亾闁诲繑宀搁獮鍫ュΩ閵夊海鍠栧畷顐﹀礋椤掍胶妲繝鐢靛仜閻°劎鍒掔仦鏂よ€块弶鍫氭櫆椤洟鏌熼悜妯诲鞍缂傚秴娲弻鏇熺節韫囨洜鏆犵紒鍓у亾婵炲﹪骞冨Δ鍐╁枂闁告洦鍓涢ˇ銊╂煟閵忊晛鐏¢悽顖ょ節瀹曟椽濮€閳╁啫鍔呴梺闈涱焾閸庢娊顢樺ú顏呪拺闁圭娴风粻鎾寸箾鐏炲倸濡奸柣锝囧厴瀹曞ジ寮撮悢鍙夊闂備胶顭堥張顒勬偡瑜斿畷婵嗩吋婢跺鍘靛銈嗘閸嬫劙宕洪敐鍥e亾鐟欏嫭绀冪紒璇插缁傛帡鏁冮崒娑樹患闁诲繒鍋熼崑鎾活敊閺囩喍绻嗛柣鎰典簻閳ь剚鐗滈弫顕€骞掑Δ鈧壕鍦磼鐎n偒鍎ラ柛銈嗘礋閺岋紕浠︾拠鎻掑闂佹娊鏀辩敮鎺楁箒闂佹寧绻傞幊蹇涘疮閻愮儤鐓欐い鏍ㄦ皑婢с垻绱掓潏銊ョ瑲鐎垫澘瀚埀顒婄秵閸撴瑥顕i妸鈺傚€甸悷娆忓缁€鍐磼鐠囨彃鈧潡銆佸Ο鑽ら檮缂佸鐏濈粣娑橆渻閵堝懐绠伴柟铏姍閸┾偓妞ゆ帊鐒﹂妵婵囨叏婵犲懏顏犵紒杈ㄥ笒椤粓宕卞▎蹇撔ㄧ紓鍌氬€风欢锟犲闯椤曗偓瀹曞綊宕奸弴鐐电暫闂佺偨鍎查弸濂稿几鎼淬劍鐓欓悗鐢殿焾鍟搁梺鎸庣⊕缁诲啰鎹㈠☉娆愮秶闁告挆鍐ㄧ厒婵$偑鍊ら崑鍛存偋閻樻眹鈧線寮崼婵嗚€垮┑鐐叉缁绘劗鎲撮敃鈧埞鎴炲箠闁稿ě鍛筏濞寸姴顑呴悿顔姐亜閺嶎偄浠﹂柛瀣€块弻娑㈠箛閸忓摜鍑归梺鍝ュУ閸旀牜鎹㈠┑鍥╃瘈闁稿本绮岄。铏圭磽娴f彃浜鹃梺鍓插亞閸犳劙宕h箛鏂剧箚妞ゆ牗纰嶉崑銉╂煕濠靛洦銇濋柡宀嬬節瀹曞崬螣閼测晝鍘滈梻浣告惈閻ジ宕伴弽顓炵畺婵犲﹤鍠氬銊╂煕閳╁喛渚涢柛姘噽缁辨捇宕掑顑藉亾閸濄儳鐭撻柣銏犳啞閸嬪淇婇妶鍛殲鐎规洖寮剁换婵嬫濞戝崬鍓卞銈冨劚閻楀﹦鎹㈠☉銏犵婵犻潧妫滈崺鐐烘⒑閸涘﹥宕岀紒鐘崇墪椤繘鎮滃Ο璇差潯闂佽顔栭崳顔嘉i灏栨斀闁绘劘灏欏﹢鎾煕閺冣偓閸ㄥ潡鎮伴钘夌窞闁归偊鍓欑粣娑欑節閻㈤潧孝闁哥噥鍋婂畷婵嬪川鐎涙ǚ鎷洪梻鍌氱墛娓氭鎮¢鐘电<闁绘ê鍟块悘锔剧磼閸屾稑娴柟顔界懇椤㈡宕掑搴℃櫗闂傚倷绀佸﹢閬嶅磻閹炬剚鐒芥繛鍡樻尰閸婅法鎲搁悧鍫濈瑲闁绘挻娲熼幃妤呮晲鎼粹€茬凹閻庤娲栭惌鍌炲蓟閳ュ磭鏆嗛柍褜鍓熷畷浼村冀椤撴壕鍋撴担绯曟瀻闁瑰濞€閳瑰繘鏌f惔顖滅У闁稿妫濆鎶藉Ψ閳哄倵鎷绘繛杈剧到閹芥粓鏁嶅鍥╃<妞ゆ洖鎳庨悘锔筋殽閻愭潙鐏寸€规洘鍎奸ˇ鎾煛閸☆厼顩柟鍙夋倐閹囧醇濠靛懎鍨旈梻浣芥〃缁€渚€鏁冮鍫濊摕闁挎繂顦伴弲鏌ユ煕濞戝崬寮炬繛鍫弮濮婅櫣娑甸崨顓犳闂佺顑嗛幐楣冨箲閵忕姭鏀介悗锝庡亜娴犳椽姊婚崒姘卞闁告巻鍋撻梺闈涱槴閺呮粓鎮″☉妯忓綊鏁愰崼顐g秷闂佺锕ラ崝妤呭焵椤掑喚娼愭繛鍙夛耿瀹曞綊鎮界粙璺ㄥ弨婵犮垼鍩栭崝鏇綖閸涘瓨鐓冮柍杞扮閺嗙偤鏌e┑鍥╁⒌婵﹦绮粭鐔煎焵椤掆偓椤洩顦圭弧鎾绘煃瑜滈崜娆撳煘閹达箑鐏抽柧蹇e亜閺嬬娀姊虹化鏇熸珖闁稿鐩、妯荤附缁嬪灝绐涘銈呯箰閹冲繘寮堕幖浣光拻濞达綀娅g敮娑㈡煥濮樻墎鍋撳▓鍨灕闁糕晜鐗曢銉╁礋椤栨氨顦板銈嗙墬缁嬫捇宕㈡潏銊х瘈闁汇垽娼у瓭闂佺顑呭Λ婵嬪箖閳╁啰闄勯柛娑橈功閸樻悂鎮楅崗澶婁壕闁诲函缍嗛崜娑㈠汲閻樼粯鐓eù鍏肩懅閸掍即鏌曢崱妯虹瑨妞ゎ偅绻堥幃鈩冩償閿濆嫮鏁炬繝寰锋澘鈧牕螞閸愵煈娼栫紓浣股戞刊鎾煕濞戞﹫宸ラ柡鍡楃墦閺岋箓宕橀缁樺枤闂佸搫鐬奸崰鏍€佸▎鎾村亗閹煎瓨锚娴滈箖鏌熼梻瀵哥瓘缂傚秵鐗犻悡顐﹀炊閵娧€濮囬梺璇″灣閸嬨倝寮诲☉銏℃櫆閻犲洦褰冪粻濠氭⒑缂佹ɑ灏伴柟鐟版搐椤繐煤椤忓嫭宓嶅銈嗘寙閸涱厼歇闂備浇顕х€涒晝绮欓崼銉ョ柧闁绘宕靛畵渚€鐓崶銊р槈缁绢厸鍋撻梻浣虹帛閸ㄩ潧螞濞嗘垟鍋撻棃娑氱劯婵﹥妞藉Λ鍐ㄢ槈濮橆剦鏆梻浣告憸閸c儵宕戦崨顔锯攳濠电姴娲ょ粈鍌炴⒒閸屾凹鍤熺紒鐘宠壘椤啴濡堕崱妤€衼缂備焦褰冮悘婵堝弲闂佸湱铏庨崰妤呮偂閺囥垺鐓冮悷娆忓閸斻倕霉濠婂懎浜惧ǎ鍥э躬閹瑩顢旈崟銊ヤ壕闁哄稁鍋呴弳婊冣攽閻樿弓绱栫憸鐗堝笒閻愬﹪鏌曟繛褍鎳庢鍕節濞堝灝鏋熼柕鍥ㄧ洴瀹曟垿骞樼紒妯煎幐闁诲繒鍋涙晶浠嬪煡婢跺浜滄い鎰剁悼缁犵偞銇勯姀鈽嗘畷鐎垫澘瀚换婵嬪磼濮樺吋顥忕紓鍌氬€搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾闁诡垰鏈幏鍛寸嵁婢跺摜鐭掗梻浣告啞缁哄潡宕曢幓鎺旀殾闁告瑥顦辩弧鈧梻鍌氱墛娓氭宕曡箛娑欑厽闁归偊鍓ㄩ煬顒勬煛鐏炵偓绀冪紒缁樼洴瀹曞綊顢欓悡搴綍闂傚倷鑳堕…鍫ヮ敄閸℃稑绠查柛銉墮閽冪喖鏌曟繛褉鍋撻柛瀣崌閺佹劙宕橀妸銉€辩紓鍌欓檷閸斿矂鈥﹀畡鎷旀盯宕ㄩ幖顓熸櫇闂侀潧绻嗛埀顒佸墯濡查亶姊绘担鐑樺殌闁硅绻濋獮鍐磼閻愵亖鍋撴笟鈧顕€宕煎顎板喚鐔嗛悹杞拌閸庢垿鏌涘鈧禍鍫曞蓟閿濆棙鍎熸い鏍ㄧ矌鏍¢梻浣侯焾椤戝懘骞婃惔銊﹀仼鐎瑰嫭澹嗛弳鍡涙煃瑜滈崜鐔煎春閳ь剚銇勯幒宥囪窗闁哥喎绻橀弻娑㈡偐閾忣偆顦梺鍛婂笚鐢帡鍩㈡惔銊ョ闁瑰吀绀佹禍鎯归敐鍛棌婵炵鍔戦弻宥堫檨闁告挾鍠栭悰顕€宕橀妸銏$€婚棅顐㈡搐閿曘儵鎮樻笟鈧娲捶椤撗呭姼閻庡湱纭堕弲鐘充繆閻戣棄鐓涢柛灞绢殕鐎氬ジ姊绘担鍝勫付妞ゎ偅娲熷畷鎰板即閵忕姴鍤戦梺鐟邦嚟婵澹曢崗绗轰簻闁哄啫娲ゆ禍褰掓煟韫囨稐鎲鹃柡宀€鍠栭悰顕€宕归鍙ョ礄婵°倗濮烽崑娑樏洪銏犺摕闁搞儺鍓氶弲婊堟煠閹帒鍔滈柣婵勫姂濮婂宕掑▎鎴犵崲濠电偘鍖犻崵韬插姂閸┾偓妞ゆ巻鍋撻柍瑙勫灴閸ㄩ箖鎼归銏㈢崺闁诲孩顔栭崯顐﹀炊瑜忛崝锕€顪冮妶鍡楃瑨閻庢凹鍙冮崺娑㈠箣閿旂晫鍘甸梺鍏肩ゴ閺呮稒绂掑鍫熺厱闁哄倸鎼禍楣冩⒒閸屾瑧顦﹂柟璇х磿閸掓帡宕奸妷锕€鈧潡鏌ㄩ弴姘愁唹闁告瑩绠栧濠氬磼濮橆兘鍋撻幖浣哥9闁归棿绀佺壕鐟邦渻鐎n亝鎹i柣顓炴閵嗘帒顫濋敐鍛闁诲氦顫夊ú蹇涘磿閹惰棄鐒垫い鎺戯功缁夌敻鏌涢幘瀵告创闁诡垰鐭傚畷濂稿Ψ閿旀儳骞嶇紓鍌氬€烽梽宥夊垂瑜版帒鍑犳繛鎴欏灪閻撶喖鏌曢崼婵愭Ш闁伙絾妞介弻锛勪沪閻e睗锝嗙箾绾板彉閭柟顔ㄥ洤閱囨慨姗嗗厸婢规洟姊洪棃娑辨Ф闁稿骸绉寸叅妞ゅ繐绉甸弲婊堟⒑閸涘﹥澶勯柛娆忛叄瀹曨垶宕惰閺€浠嬫煟閹邦垰鐓愮憸鎶婂懐纾奸棅顐幘閻瑧鈧娲忛崹褰掆€﹂妸鈺侀唶婵犻潧鐗滈崬鍨節閻㈤潧浠滄俊顖氾攻缁傚秴鈹戠€n亞鍘遍梺鍦劋椤ㄥ棝鎮¢弴銏″€堕柣鎰版涧娴滈箖鏌i妸锕€鐏ユい顓″劵椤﹀磭绱掔€n偅灏垫俊鍙夊姍楠炴帡寮崫鍕闂佹寧绻傛鍛婄濠靛鍊堕煫鍥ㄦ礃閺嗏晝绱掓潏銊ユ诞妞ゃ垺鐟ч崰濠冩綇閳轰焦鍊梻鍌欐祰椤曟牠宕板Δ鍛仭闁冲搫鎳庣粻鏍ㄧ節婵犲倸鎮╅柣鏂垮悑閸嬪倿骞栨潏鍓х?闁汇倕瀚埞鎴︽偐閸偅姣勬繝娈垮枤閸忔ê顕i锕€宸濆┑鐘插暙瀵潡姊洪崷顓℃闁哥姵鐗犻幃鍧楊敋閳ь剟寮婚敐鍛傛棃鍩€椤掑嫭鍋嬪┑鐘插€甸弸宥夋煟濡偐甯涢柣鎾跺枛閺屾洝绠涢弴鐐愶綁鏌涢悢鍝勪槐闁?\r
 //#define CONFIG_juphoon 1\r
index 34d643b..9e37a6c 100644 (file)
Binary files a/2.sdk/project/7PIN_1_5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip and b/2.sdk/project/7PIN_1_5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip differ