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 71502e7..9d7a7ad 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 @@ -288,6 +288,9 @@ match_config() [[ "$name" = *"mv31-w"* ]] && name="t99w175" [[ "$name" = *"T99W175"* ]] && name="t99w175" + + [[ "$name" = *"T99W373"* ]] && name="t99w373" + #rg200u-cn [[ "$name" = *"rg200u-cn"* ]] && name="rg200u-cn" 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 79c7305..5c8dfb3 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 @@ -666,7 +666,19 @@ "data_interface": "usb", "define_connect": "1", "modes": [ - "mbim" + "mbim", + "rmnet" + ] + }, + "t99w373": { + "manufacturer_id": "05c6", + "manufacturer": "foxconn", + "platform": "qualcomm", + "data_interface": "usb", + "define_connect": "1", + "modes": [ + "mbim", + "rmnet" ] } }, @@ -691,6 +703,15 @@ "mbim" ] }, + "t99w373": { + "manufacturer": "foxconn", + "platform": "qualcomm", + "data_interface": "pcie", + "define_connect": "1", + "modes": [ + "mbim" + ] + }, "rm500q-cn": { "manufacturer": "quectel", "platform": "qualcomm", @@ -1069,11 +1090,13 @@ "qualcomm": { "vendor_id": [ "17cb", - "05c6" + "05c6" ], "product_id": [ "0306", - "90d5" + "0308", + "90d5", + "9025" ] } } diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/foxconn.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/foxconn.sh index b59aa40..6347f3e 100644 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/foxconn.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/foxconn.sh @@ -32,11 +32,35 @@ function set_imei(){ } function get_mode(){ + local mode_num + local mode cfg=$(at $at_port "AT^PCIEMODE?") config_type=`echo -e "$cfg" | grep -o '[0-9]'` if [ "$config_type" = "1" ]; then - mode="mbim" + mode="0" + json_add_int disable_mode_btn 0 + + else + ucfg=$(at $at_port "AT+USBSWITCH?") + config_type=$(echo "$ucfg" | grep USBSWITCH: |cut -d':' -f2|xargs) + if [ "$config_type" = "9025" ]; then + mode_num="1" + elif [ "$config_type" = "90D5" ]; then + mode_num="0" + fi fi + case "$platform" in + "qualcomm") + case "$mode_num" in + "0") mode="mbim" ;; + "1") mode="rmnet" ;; + *) mode="${mode_num}" ;; + esac + ;; + *) + mode="${mode_num}" + ;; + esac available_modes=$(uci -q get qmodem.$config_section.modes) json_add_object "mode" for available_mode in $available_modes; do @@ -47,8 +71,30 @@ function get_mode(){ fi done json_close_object + } +set_mode(){ + local mode=$1 + case "$platform" in + "qualcomm") + case "$mode" in + "mbim") mode_num="90d5" ;; + "rmnet") mode_num="9025" ;; + *) mode="90d5" ;; + esac + ;; + *) + mode_num="90d5" + ;; + esac + #设置模组 + at_command="AT+USBSWITCH=${mode_num}" + res=$(at "${at_port}" "${at_command}") + json_select "result" + json_add_string "set_mode" "$res" + json_close_object +} function get_network_prefer(){ res=$(at $at_port "AT^SLMODE?"| grep -o '[0-9]\+' | tr -d '\n' | tr -d ' ')