🎄 Sync 2026-08-10 20:58:00

This commit is contained in:
github-actions[bot] committed 2026-08-10 20:58:00 +08:00
1 parent f93918f4ae
commit e68eb29c6f
37 files changed
+318 -551

No files matched your search

@@ -42,6 +42,9 @@
# Telit LN940 LT4220
1bc71900;QUALCOMM
1bc71901;QUALCOMM
# Telit LM960
1bc71040;QUALCOMM_LM960
1bc71041;QUALCOMM_LM960
# Yuge CLM920
12864e3c;YUGE
# ThinkWill ML7820
@@ -0,0 +1,73 @@
# Qualcomm Modems (FoxConn T77W678, Telit LN940, HP LT4220)
function modem_data(){
generic_data
# hwinfo and siminfo
FAMILY_EX="Telit"
OIFS="$IFS"; IFS="|"
set -- $(echo "$O" | awk -v fam="$FAMILY_EX" '
($0 ~ fam){manuf =$0; getline model; getline fw}
/ICCID:/{split($0,i,":");gsub("\r",""); iccid=i[2]; getline imsi; getline imei}
/TSENS2/{split($0,i,",");temp=i[2]}
END{print manuf "|" model "|" fw "|" iccid "|" imsi "|" imei "|" temp}
')
MANUF=${1}; MODEL=${2}; FW=${3}; ICCID=${4}; IMSI=${5} IMEI=${6}; CHIPTEMP=${7}
IFS="$OIFS"; unset OIFS
DEVICE="$MANUF $MODEL"
OIFS="$IFS"; IFS="|"
# signal
set -- $(echo "$O" | awk -v mode="$MODE" '
BEGIN { map[1]=3; map[2]=5; map[3]=10; map[4]=15; map[5]=20 }
mode ~ /LTE/ { # LTE mode
if (/\+CEREG/){gsub("\"",""); split($0,i,","); reg=i[2]; lac=i[3]; cid=i[4]}
if (/CAINFO:/){ split($0,i,","); earfcn=i[2]; rssi=sprintf("%.0f",i[6]); rsrp=sprintf("%.0f",i[5]);
sinr=sprintf("%.0f",i[8]/5-20); rsrq=sprintf("%.0f",i[7]); pci=i[4]; bw=sprintf("%.0f",i[3]);
lte_ca=i[15]; bwc=map[bw]
}
if (/PCC info/){bwc=sprintf("%.0f",$(NF-1)); bw=map[bwc]}
cell = sprintf("%d", "0x" substr(cid, length(cid) - 1, 2))
enbid = sprintf("%d", "0x" substr(cid, 1, length(cid) - 2))
}
mode !~ /LTE/ { # 3G mode
if (/\+CREG/){gsub("\"",""); split($0,i,","); reg=i[2]; lac=i[3]; cid=i[4]}
if (/RFSTS:/){ split($0,i,","); earfcn=i[2]; rssi=sprintf("%.0f",i[6]); sinr=sprintf("%.0f",i[4])}
}
END { print reg "|" earfcn "|" lac "|" cid "|" rssi "|" sinr "|" rsrp "|" rsrq "|" pci "|" bw "|" bwc "|" lte_ca "|" enbid "|" cell}
')
EARFCN=${2}; LAC=${3}; CID=${4}; CSQ_RSSI=${5}; SINR=${6}; RSRP=${7}; RSRQ=${8}; PCI=${9}; BWDL=${10}; BWDx=${11}; LTE_CA=${12}; ENBID=${13}; CELL=${14}
IFS="$OIFS"; unset OIFS
# LTE CA calc
if [ $LTE_CA -ne 0 ]; then
OIFS="$IFS"; IFS="|"
set -- $(echo "$O" | awk -F"," -v bwc=${BWDx:=0} -v mode=$MODE '
BEGIN { map[1]=3; map[2]=5; map[3]=10; map[4]=15; map[5]=20 }
function earfcn_to_band(channel) {
if (channel <= 1) return ""
cmd = "/usr/share/modeminfo/scripts/ch_to_band " mode " " channel
cmd | getline band
close(cmd)
return band
}
/CAINFO:/{
ch[1]=14; ch[2]=25; ch[3]=36; ch[4]=47
bw[1]=15; bw[2]=26; bw[3]=37; bw[4]=48
scc = ""; bwcx = 0
for(i=1;i<=4;i++) {
if($ch[i]!=0) {
scc=scc"+"earfcn_to_band($ch[i])
bwcx=map[$bw[i]]
bwca+=bwcx
}
}
bwca=bwca+bwc
print scc"|"bwca
}
')
SCC=${1}; BWCA=${2}
IFS="$OIFS"; unset OIFS BWDx
fi
if [ $(uci -q get modeminfo.@general[0].decimail) = "1" ]; then
LAC=$(printf %d 0x$LAC)
CID=$(printf %d 0x$CID)
fi
}
@@ -0,0 +1,10 @@
ATE0
AT+COPS=3,0; +COPS?
AT+CREG=2; +CREG?
AT+CGREG=2; +CGREG?
AT+CEREG=2; +CEREG?
AT+CSQ
AT#RFSTS
AT#CAINFO?
AT+CGMI; +CGMM; +CGMR; +ICCID; +CIMI; +CGSN
AT#TEMPSENS=2