更新modem插件

This commit is contained in:
ling 2023-12-24 19:28:51 +08:00
parent 23d9f5c187
commit ebd9ac759a
6 changed files with 74 additions and 58 deletions

View File

@ -16,8 +16,13 @@
for ( var key in modems) for ( var key in modems)
{ {
var modem=modems[key]; var modem=modems[key];
var mode="unknown mode";
if (modem["mode"]!=null) {
mode=modem["mode"].toUpperCase()
}
var state = ''; var state = '';
var css = '' var css = '';
switch (modem["connect_status"]) switch (modem["connect_status"])
{ {
case 'connect': case 'connect':
@ -51,7 +56,7 @@
); );
modem_view += String.format( modem_view += String.format(
'<div><strong><%:Mode%>: </strong>%s</div>', '<div><strong><%:Mode%>: </strong>%s</div>',
modem.mode.toUpperCase() mode
); );
modem_view += String.format( modem_view += String.format(
'<div><strong><%:Moblie Network%>: </strong>%s</div>', '<div><strong><%:Moblie Network%>: </strong>%s</div>',

View File

@ -326,7 +326,6 @@ stop_ncm()
get_modem_no() get_modem_no()
{ {
local modem_number=$(uci -q get modem.@global[0].modem_number) local modem_number=$(uci -q get modem.@global[0].modem_number)
echo "modem_number:$modem_number" >> /root/a
local modem_network local modem_network
for i in $(seq 0 $((modem_number-1))); do for i in $(seq 0 $((modem_number-1))); do
modem_network=$(uci -q get modem.modem$i.network) modem_network=$(uci -q get modem.modem$i.network)
@ -336,7 +335,6 @@ get_modem_no()
break break
fi fi
done done
echo "modem_no:$modem_no" >> /root/a
} }
#获取实例运行状态(未使用) #获取实例运行状态(未使用)
@ -437,6 +435,9 @@ dial()
#获取模组的拨号模式 #获取模组的拨号模式
[ -z "$modem_no" ] && return 0 [ -z "$modem_no" ] && return 0
local mode=$(uci -q get modem.modem$modem_no.mode) local mode=$(uci -q get modem.modem$modem_no.mode)
if [ "$mode" = "unknown" ]; then
mode="qmi"
fi
#查看移动网络是否已经有配置在运行 #查看移动网络是否已经有配置在运行
local run_path="/tmp/modem" local run_path="/tmp/modem"
@ -494,10 +495,17 @@ stop_service()
rm -rf /tmp/modem rm -rf /tmp/modem
#停止qmi、mbim拨号 #停止qmi、mbim拨号
killall quectel-CM >/dev/null 2>&1 killall quectel-CM >/dev/null 2>&1
#停止ecm、rndis、ncm拨号 #停止gobinet、ecm、rndis、ncm拨号
local modem_number=$(uci -q get modem.@global[0].modem_number) local modem_number=$(uci -q get modem.@global[0].modem_number)
for i in $(seq 0 $((modem_number-1))); do for i in $(seq 0 $((modem_number-1))); do
modem_no=$i modem_no=$i
stop_ecm local mode=$(uci -q get modem.modem$modem_no.mode)
case $mode in
"gobinet") stop_gobinet ;;
"ecm") stop_ecm ;;
"rndis") stop_rndis ;;
"ncm") stop_ncm ;;
"*") stop_ecm ;;
esac
done done
} }

View File

@ -14,7 +14,7 @@ get_fibocom_mode()
"17") mode="qmi" ;; #- "17") mode="qmi" ;; #-
"31") mode="qmi" ;; #- "31") mode="qmi" ;; #-
"32") mode="qmi" ;; "32") mode="qmi" ;;
"32") mode="gobinet" ;; # "32") mode="gobinet" ;;
"18") mode="ecm" ;; "18") mode="ecm" ;;
"23") mode="ecm" ;; #- "23") mode="ecm" ;; #-
"33") mode="ecm" ;; #- "33") mode="ecm" ;; #-
@ -97,9 +97,21 @@ fibocom_net_info()
net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/+PSRAT: //g' | sed 's/\r//g') net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/+PSRAT: //g' | sed 's/\r//g')
#CSQ #CSQ
local at_command="AT+CSQ"
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
if [ $CSQ = "99" ]; then
csq=""
fi
#per信号强度 #PER信号强度
if [ -n "$csq" ]; then
per=$(($csq * 100/31))"%"
fi
#RSSI信号接收强度
if [ -n "$csq" ]; then
rssi=$((2 * $csq - 113))" dBm"
fi
} }
# fibocom获取基站信息 # fibocom获取基站信息
@ -248,7 +260,7 @@ get_fibocom_info()
#网络信息 #网络信息
fibocom_net_info fibocom_net_info
# All_CSQ return
# Fibocom_Cellinfo # Fibocom_Cellinfo
#基站信息 #基站信息

View File

@ -51,8 +51,8 @@ get_mode()
"fibocom") mode=$(get_fibocom_mode "$2") ;; "fibocom") mode=$(get_fibocom_mode "$2") ;;
"simcom") mode=$(get_simcom_mode "$2") ;; "simcom") mode=$(get_simcom_mode "$2") ;;
"*") "*")
debug "未适配该模块,尝试使用拨号工具自动拨号" debug "未适配该模块"
mode="qmi" mode="unknown"
;; ;;
esac esac
echo "$mode" echo "$mode"

View File

@ -27,8 +27,7 @@ init_modem_info()
#信号信息 #信号信息
net_type="-" #蜂窝网络类型 net_type="-" #蜂窝网络类型
csq="" #CSQ csq="" #CSQ
csq_per="" per="" #信号强度
ssi="" #信号强度
rssi="" #信号接收强度 RSSI rssi="" #信号接收强度 RSSI
ECIO="-" #参考信号接收质量 RSRQ ecio ECIO="-" #参考信号接收质量 RSRQ ecio
ECIO1=" " #参考信号接收质量 RSRQ ecio1 ECIO1=" " #参考信号接收质量 RSRQ ecio1
@ -66,14 +65,13 @@ info_to_json()
\"phone\":\"$phone\", \"phone\":\"$phone\",
\"net_type\":\"$net_type\", \"net_type\":\"$net_type\",
\"csq\":\"$csq\" \"csq\":\"$csq\",
\"per\":\"$per\",
\"rssi\":\"$rssi\"
}" }"
} }
# echo $CSQ_RSSI
# echo $ECIO #参考信号接收质量 RSRQ ecio # echo $ECIO #参考信号接收质量 RSRQ ecio
# echo $ECIO1 #参考信号接收质量 RSRQ ecio1 # echo $ECIO1 #参考信号接收质量 RSRQ ecio1
# echo $RSCP #参考信号接收功率 RSRP rscp0 # echo $RSCP #参考信号接收功率 RSRP rscp0

View File

@ -7,7 +7,7 @@ get_quectel_mode()
{ {
local at_port="$1" local at_port="$1"
local at_command='AT+QCFG="usbnet"' local at_command='AT+QCFG="usbnet"'
local mode_num=$(echo "$response" | sed -n '2p' | sed 's/+QCFG: "usbnet",//g' | sed 's/\r//g') local mode_num=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/+QCFG: "usbnet",//g' | sed 's/\r//g')
local mode local mode
case "$mode_num" in case "$mode_num" in
@ -72,9 +72,11 @@ quectel_sim_info()
isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}') isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
isp="中国移动" isp="中国移动"
elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then # elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "CUCC" ] || [ "$isp" = "46001" ]; then
isp="中国联通" isp="中国联通"
elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then # elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
elif [ "$isp" = "CHN-TELECOM" ] || [ "$isp" = "CTCC" ] || [ "$isp" = "46011" ]; then
isp="中国电信" isp="中国电信"
fi fi
@ -106,8 +108,21 @@ quectel_net_info()
net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}') net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
#CSQ #CSQ
#per信号强度 local at_command="AT+CSQ"
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
if [ $CSQ = "99" ]; then
csq=""
fi
#PER信号强度
if [ -n "$csq" ]; then
per=$((csq * 100/31))"%"
fi
#RSSI信号接收强度
if [ -n "$csq" ]; then
rssi=$((2 * csq - 113))" dBm"
fi
} }
#quectel #quectel
@ -137,27 +152,6 @@ nr_bw() {
esac esac
} }
#查询信息强度
All_CSQ()
{
debug "All_CSQ"
#信号
OX=$( sh modem_at.sh $at_port "AT+CSQ" |grep "+CSQ:")
OX=$(echo $OX | tr 'a-z' 'A-Z')
CSQ=$(echo "$OX" | grep -o "+CSQ: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
if [ $CSQ = "99" ]; then
CSQ=""
fi
if [ -n "$CSQ" ]; then
CSQ_PER=$(($CSQ * 100/31))"%"
CSQ_RSSI=$((2 * CSQ - 113))" dBm"
else
CSQ="-"
CSQ_PER="-"
CSQ_RSSI="-"
fi
}
# SIMCOM获取基站信息 # SIMCOM获取基站信息
Quectel_Cellinfo() Quectel_Cellinfo()
{ {
@ -302,7 +296,6 @@ get_quectel_info()
quectel_net_info quectel_net_info
return return
# All_CSQ
# Quectel_Cellinfo # Quectel_Cellinfo