diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/at_commands_zh.json b/luci/luci-app-qmodem/root/usr/share/qmodem/at_commands_zh.json index 1822cdd..65f3d72 100644 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/at_commands_zh.json +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/at_commands_zh.json @@ -520,6 +520,62 @@ { "重启模组 > AT+RESET": "AT+RESET" } + ], + "unisoc": [ + { + "获取SIM卡卡槽状态 > AT^SIMSLOT?": "AT^SIMSLOT?" + }, + { + "设置当前使用的为卡1 > AT^SIMSLOT=1": "AT^SIMSLOT=1" + }, + { + "设置当前使用的为卡2 > AT^SIMSLOT=2": "AT^SIMSLOT=2" + }, + { + "查询网络信息 > AT^SYSINFOEX": "AT^SYSINFOEX" + }, + { + "查询载波聚合小区信息 > AT^CELLINFO=1": "AT^CELLINFO=1" + }, + { + "查询当前拨号模式 > AT+SER?": "AT+SER?" + }, + { + "ECM拨号模式 > AT+SER=2,1": "AT+SER=2,1" + }, + { + "MBIM拨号模式 > AT+SER=3,1": "AT+SER=3,1" + }, + { + "RNDIS拨号模式 > AT+SER=3,1": "AT+SER=3,1" + }, + { + "NCM拨号模式 > AT+SER=1,1": "AT+SER=1,1" + }, + { + "锁4G > AT^SYSCFGEX=\"03\",all,0,2,all,all,all,all,1": "AT^SYSCFGEX=\"03\",all,0,2,all,all,all,all,1" + }, + { + "锁5G > AT^SYSCFGEX=\"04\",all,0,2,all,all,all,all,1": "AT^SYSCFGEX=\"04\",all,0,2,all,all,all,all,1" + }, + { + "恢复自动搜索网络 > AT^SYSCFGEX=\"00\",all,0,2,all,all,all,all,1": "AT^SYSCFGEX=\"00\",all,0,2,all,all,all,all,1" + }, + { + "查询模组IMEI > AT+LCTSN=0,7": "AT+LCTSN=0,7" + }, + { + "更改模组IMEI > AT+LCTSN=1,7,\"IMEI\"": "AT+LCTSN=1,7,\"在此设置IMEI\"" + }, + { + "开启转网口 > AT+MGCFGEX=\"ETH_SWITCH\",1": "AT+MGCFGEX=\"ETH_SWITCH\",1" + }, + { + "获取模组温度 > AT+TEMP": "AT+TEMP" + }, + { + "重启模组 > AT+RESET": "AT+RESET" + } ] }, "foxconn": { diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh index 85180f3..c757f27 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh @@ -258,6 +258,9 @@ check_ip() "qualcomm") check_ip_command="AT+CGPADDR=1" ;; + "unisoc") + check_ip_command="AT+CGPADDR=1" + ;; esac ;; "neoway") @@ -856,6 +859,10 @@ at_dial() at_command='AT$MYUSBNETACT=0,1' cgdcont_command="AT+CGDCONT=1,\"$pdp_type\",\"$apn\"" ;; + "unisoc") + at_command="" + cgdcont_command="AT+CGDCONT=1,\"$pdp_type\",\"$apn\"" + ;; esac ;; esac diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_port_rule.json b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_port_rule.json index a254335..5f5eb39 100644 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_port_rule.json +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_port_rule.json @@ -41,6 +41,30 @@ "name": "rg801", "option_driver": 1 }, + "1782:4039": { + "name": "nu313-m2", + "mode": "ecm", + "option_driver": 1, + "include": [ + "1.2" + ] + }, + "1782:4038": { + "name": "nu313-m2", + "mode": "rndis", + "option_driver": 1, + "include": [ + "1.2" + ] + }, + "1782:4040": { + "name": "nu313-m2", + "mode": "ncm", + "option_driver": 1, + "include": [ + "1.2" + ] + }, "3763:3c93": { "name": "nari-m601", "mode": "ecm", @@ -51,4 +75,4 @@ } } } -} \ No newline at end of file +} diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_scan.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_scan.sh index 5af646c..d1d3f01 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_scan.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_scan.sh @@ -353,6 +353,9 @@ match_config() #rg200u-cn [[ "$name" = *"rg200u-cn"* ]] && name="rg200u-cn" + + #nu313-m2 + [[ "$name" = *"nu313-m2"* ]] && name="srm821" #nari-m601 [[ "$name" = *"m601"* ]] && name="n510m" diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_support.json b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_support.json index e9ac6e7..c151e0e 100644 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_support.json +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_support.json @@ -818,6 +818,18 @@ "mbim", "rmnet" ] + }, + "srm821": { + "manufacturer_id": "1782", + "manufacturer": "meig", + "platform": "unisoc", + "data_interface": "usb", + "define_connect": "1", + "modes": [ + "ecm", + "rndis", + "ncm" + ] }, "t99w373": { "manufacturer_id": "05c6", @@ -1256,13 +1268,17 @@ "meig": { "unisoc": { "vendor_id": [ - "2dee" + "2dee", + "1782" ], "product_id": [ "4d50", "4d51", "4d52", - "4d53" + "4d53", + "4039", + "4038", + "4040" ] }, "qualcomm": { diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/meig.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/meig.sh index 284139a..f2f72b6 100644 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/meig.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/meig.sh @@ -44,7 +44,7 @@ get_mode() *) mode="${mode_num}" ;; esac ;; - "unisoc"|"lte12"|"lte") + "lte12"|"lte") case "$mode_num" in "2") mode="ecm" ;; "3") mode="rndis" ;; @@ -52,6 +52,14 @@ get_mode() *) mode="${mode_num}" ;; esac ;; + "unisoc") + case "$mode_num" in + "2") mode="ecm" ;; + "3") mode="rndis" ;; + "1") mode="ncm" ;; + *) mode="${mode_num}" ;; + esac + ;; *) mode="${mode_num}" ;; @@ -73,7 +81,7 @@ set_mode() { local mode=$1 case "$platform" in - "qualcomm"|"unisoc"|"lte12"|"lte") + "qualcomm"|"lte12"|"lte") case "$mode" in "ecm") mode_num="2" ;; "rndis") mode_num="3" ;; @@ -81,6 +89,14 @@ set_mode() *) mode_num="1" ;; esac ;; + "unisoc") + case "$mode" in + "ecm") mode_num="2" ;; + "rndis") mode_num="3" ;; + "ncm") mode_num="1" ;; + *) mode_num="1" ;; + esac + ;; *) mode_num="1" ;; @@ -176,12 +192,30 @@ get_voltage() get_temperature() { at_command="AT+TEMP" - local response=$(at ${at_port} ${at_command} | grep 'TEMP: "cpu0-0-usr"' | awk -F'"' '{print $4}') + local response local temp - if [ -n "$response" ]; then - temp="${response}$(printf "\xc2\xb0")C" + local degree_symbol=$(printf "\xc2\xb0")C + +# 根据平台选择不同的AT命令并提取温度值 +if [ "$platform" = "unisoc" ]; then + response=$(at ${at_port} ${at_command} | grep 'TEMP: "soc-thmzone"' | awk -F'"' '{print $4}') +else + response=$(at ${at_port} ${at_command} | grep 'TEMP: "cpu0-0-usr"' | awk -F'"' '{print $4}') + fi + +# 处理响应值 +if [ -n "$response" ]; then + if [ "$platform" = "unisoc" ]; then + # Unisoc平台需要将原始值除以1000并保留两位小数 + temp_value=$(echo "scale=2; $response / 1000" | bc) + temp="${temp_value}${degree_symbol}" else - temp="NaN $(printf "\xc2\xb0")C" + # 其他平台直接使用原始值 + temp="${response}${degree_symbol}" + fi +else + # 无响应时显示NaN + temp="NaN ${degree_symbol}" fi add_plain_info_entry "temperature" "$temp" "Temperature" }