🍉 Sync 2026-05-13 08:40:30

This commit is contained in:
github-actions[bot] committed 2026-05-13 08:40:30 +08:00
1 parent 2206a0ea68
commit 6bb23e315c
7 files changed
+92 -409

No files matched your search

+2 -2
View File
@@ -3,8 +3,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Information dashboard for 3G/LTE dongle LUCI_TITLE:=Information dashboard for 3G/LTE dongle
LUCI_DEPENDS:=+modeminfo LUCI_DEPENDS:=+modeminfo
PKG_LICENSE:=GPLv3 PKG_LICENSE:=GPLv3
PKG_VERSION:=0.4.5 PKG_VERSION:=0.4.6
PKG_RELEASE:=1 PKG_RELEASE:=2
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk
@@ -9,7 +9,7 @@
/* /*
Written by Konstantine Shevlakov at <shevlakov@132lan.ru> 2023 Written by Konstantine Shevlakov at <shevlakov@132lan.ru> 2023 - 2026
Licensed to the GNU General Public License v3.0. Licensed to the GNU General Public License v3.0.
@@ -45,20 +45,44 @@ var callQMIPort = rpc.declare({
} }
}); });
var callCheckQmiinfo = rpc.declare({
object: 'file',
method: 'stat',
params: [ 'path' ],
expect: { '': {} }
});
var maindesc = _('Modeminfo: Configuration'); var maindesc = _('Modeminfo: Configuration');
var mdesc = _('Configuration panel of Modeminfo.'); var mdesc = _('Configuration panel of Modeminfo.');
var qfdesc = _('Get modem data via qmicli (experimental). Require install qmi-utils.'); var qfdesc = _('Get modem data via qmi. Require install qminfo.');
var sdesc = _('Select serial port.'); var sdesc = _('Select serial port.');
var qdesc = _('Select qmi port.'); var qdesc = _('Select qmi port.');
var lacdec = _('Show LAC and CID in decimal.'); var lacdec = _('Show LAC and CID in decimal.');
var mmdesc = _('Get device hardware name via mmcli utility if aviable.'); var mmdesc = _('Get device hardware name via mmcli utility if aviable.');
var qmidesc = _('Enable qmi-proxy mode.'); var qmidesc = _('Set qmi mode.');
var idesc = _('Short info on Overview page'); var idesc = _('Short info on Overview page');
var portplace = _('Please select a port'); var portplace = _('Please select a port');
return view.extend({ return view.extend({
render: function(){
load: function() {
return callCheckQmiinfo('/usr/bin/qminfo')
.then(function(stat) {
return (stat && stat.size != null);
})
.catch(function() {
return false;
});
},
render: function(qmiinfoInstalled){
var qfdesc = qmiinfoInstalled
? _('Get modem data via qmi.')
: _('Please install qminfo package.');
var m, s, o; var m, s, o;
m = new form.Map('modeminfo', maindesc, mdesc); m = new form.Map('modeminfo', maindesc, mdesc);
s = m.section(form.TypedSection, 'general', _('General option'), null); s = m.section(form.TypedSection, 'general', _('General option'), null);
@@ -85,6 +109,11 @@ return view.extend({
o = s.option(form.Flag, 'qmi_mode', _('Use QMI'), qfdesc); o = s.option(form.Flag, 'qmi_mode', _('Use QMI'), qfdesc);
o.rmempty = true; o.rmempty = true;
if (!qmiinfoInstalled) {
o.readonly = true;
o.write = function() {};
o.cfgvalue = function() { return '0'; };
}
o = s.option(form.ListValue, 'device', _('Data port'), sdesc); o = s.option(form.ListValue, 'device', _('Data port'), sdesc);
o.load = function(section_id) { o.load = function(section_id) {
@@ -117,7 +146,10 @@ return view.extend({
o.rmempty = true; o.rmempty = true;
o.depends('qmi_mode', '0'); o.depends('qmi_mode', '0');
o = s.option(form.Flag, 'qmi_proxy', _('QMI proxy'), qmidesc); o = s.option(form.ListValue, 'qmi_trap', _('QMI mode'), qmidesc);
o.value('',_('Auto'));
o.value('qmi',_('Direct QMI'));
o.value('mbim',_('QMI over MBIM'));
o.rmempty = true; o.rmempty = true;
o.depends('qmi_mode', '1'); o.depends('qmi_mode', '1');
+21 -6
View File
@@ -87,8 +87,14 @@ msgstr "Страница конфигурации Modeminfo."
msgid "Use QMI" msgid "Use QMI"
msgstr "Использовать QMI" msgstr "Использовать QMI"
msgid "Get modem data via qmicli (experimental). Require install qmi-utils." msgid "Get modem data via qmi. Require install qminfo."
msgstr "Получать данные модема через qmicli (экспериментально). Требуется установленный qmi-utils." msgstr "Получать данные модема через qmi. Требуется установленный qminfo."
msgid "Get modem data via qmi."
msgstr "Получать данные модема через qmi."
msgid "Please install qminfo package."
msgstr "Установите пакет qminfo."
msgid "Data port" msgid "Data port"
msgstr "Порт данных" msgstr "Порт данных"
@@ -111,11 +117,20 @@ msgstr "Если доступно, использовать утилиту mmcli
msgid "Name via mmcli" msgid "Name via mmcli"
msgstr "Имя модема через mmcli" msgstr "Имя модема через mmcli"
msgid "QMI proxy" msgid "QMI mode"
msgstr "QMI прокси" msgstr "Режим QMI"
msgid "Enable qmi-proxy mode." msgid "Set qmi mode."
msgstr "Задействовать режим прокси." msgstr "Задействовать режим QMI."
msgid "Auto"
msgstr "Автоматически"
msgid "Direct QMI"
msgstr "Только QMI"
msgid "QMI over MBIM"
msgstr "QMI через MBIM"
msgid "Index page" msgid "Index page"
msgstr "На главную" msgstr "На главную"
+2 -14
View File
@@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=modeminfo PKG_NAME:=modeminfo
PKG_VERSION:=0.4.5 PKG_VERSION:=0.4.6
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru> PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -20,12 +20,6 @@ define Package/$(PKG_NAME)
TITLE:=Signal information for 3G/LTE dongle TITLE:=Signal information for 3G/LTE dongle
endef endef
define Package/$(PKG_NAME)-qmi
$(call Package/$(PKG_NAME)/Default)
DEPENDS:=+modeminfo +qmi-utils
TITLE:=QMI addon for modeminfo
endef
define Package/$(PKG_NAME)-telegram define Package/$(PKG_NAME)-telegram
$(call Package/$(PKG_NAME)/Default) $(call Package/$(PKG_NAME)/Default)
DEPENDS:=+modeminfo +telegrambot DEPENDS:=+modeminfo +telegrambot
@@ -78,11 +72,6 @@ define Package/$(PKG_NAME)/install
$(CP) ./root/etc/config/* $(1)/etc/config $(CP) ./root/etc/config/* $(1)/etc/config
endef endef
define Package/$(PKG_NAME)-qmi/install
$(INSTALL_DIR) $(1)/usr/share/modeminfo/scripts
$(CP) ./root/usr/share/modeminfo-qmi/* $(1)/usr/share/modeminfo/scripts
endef
define Package/$(PKG_NAME)-telegram/install define Package/$(PKG_NAME)-telegram/install
$(INSTALL_DIR) $(1)/usr/lib/telegrambot/plugins $(INSTALL_DIR) $(1)/usr/lib/telegrambot/plugins
$(CP) ./root/usr/lib/telegrambot/plugins/* $(1)/usr/lib/telegrambot/plugins $(CP) ./root/usr/lib/telegrambot/plugins/* $(1)/usr/lib/telegrambot/plugins
@@ -105,5 +94,4 @@ $(eval $(call SerialPlugin,dell,+kmod-usb-serial-option,Dell DW5821e,DELL))
#$(eval $(call SerialPlugin,yuge,+kmod-usb-serial-option,Yuge CLM920,YUGE)) #$(eval $(call SerialPlugin,yuge,+kmod-usb-serial-option,Yuge CLM920,YUGE))
#$(eval $(call SerialPlugin,zte,+kmod-usb-serial-option,ZTE MF823/MF823D,ZTE)) #$(eval $(call SerialPlugin,zte,+kmod-usb-serial-option,ZTE MF823/MF823D,ZTE))
$(eval $(call SerialPlugin,thales,+kmod-usb-serial-option,Thales MV31-W T99W175,THALES)) $(eval $(call SerialPlugin,thales,+kmod-usb-serial-option,Thales MV31-W T99W175,THALES))
$(eval $(call BuildPackage,$(PKG_NAME)-qmi))
$(eval $(call BuildPackage,$(PKG_NAME)-telegram)) $(eval $(call BuildPackage,$(PKG_NAME)-telegram))
@@ -1,180 +0,0 @@
# qmi addon for luci-app-modeminfo
# require full version libqmi (need build in SDK)
# (c) 2020-2024 written by Konstantine Shevlakov (c) at <shevlakov@132lan.ru>
get_device_info(){
DEVPORT=$(uci -q get modeminfo.@modeminfo[$s].device_qmi)
DEVCTL=$(echo $DEVPORT | awk -F [\/] '{print $NF}')
if [ -x /usr/bin/qmicli ]; then
export QMICTL="qmicli -p -d $DEVPORT"
else
logger -t "luci-app-modeminfo" "qmicli not found!"
exit 1
fi
if [ $DEVPORT ]; then
QPROXY=$(uci -q get modeminfo.@modeminfo[$s].qmi_proxy)
if [ $QPROXY -eq 1 ]; then
export QMICTL="qmicli -p -d $DEVPORT"
else
export QMICTL="qmicli -d $DEVPORT"
fi
else
for qmi in $(ls /dev/cdc-wdm*); do
if [ $qmi ]; then
QMI_DEVICE=$qmi
if [ -n $(which qmicli) ]; then
export QMICTL="qmicli -p -d ${QMI_DEVICE}"
else
logger -t "luci-app-modeminfo" "qmi-utils not found or installed!"
exit 0
fi
else
logger -t "luci-app-modeminfo" "Device is no QMI mode or not found!"
exit 0
fi
done
if [ $qmi ]; then
uci set modeminfo.@modeminfo[0].device_qmi="$qmi"
uci commit modeminfo
break
fi
fi
}
get_hardware_info(){
MANUF=$(cat $(readlink -f /sys/class/usbmisc/${DEVCTL})/../../../manufacturer)
MODEL="$(cat $(readlink -f /sys/class/usbmisc/${DEVCTL})/../../../product)"
if [ -n "$(echo "${MODEL}" | grep -Ei "${MANUF}")" ] || [ -n "$(echo "${MANUF}" | grep -Ei QUAL)" ]; then
DEVICE="${MODEL}"
else
DEVICE="${MANUF} ${MODEL}"
fi
IMEI=`$QMICTL --dms-get-ids | awk -F [:] '/IMEI:/{gsub("'\''|\*", ""); print $2}'`
FW=$($QMICTL --dms-get-software-version | awk -F [:] '/version:/{print $2}' )
ICCID=$($QMICTL --dms-uim-get-iccid | awk -F [:] '/ICCID/{gsub("'\''",""); print $2}' )
}
get_lte_bw(){
case $BWDx in
3) BWDL=1 ;;
5) BWDL=2 ;;
10) BWDL=3 ;;
15) BWDL=4 ;;
20) BWDL=5 ;;
esac
}
get_signal_info(){
NETWORK=`$QMICTL --nas-get-home-network | awk -F [:] '/MCC|MNC|Description/{gsub("'\''|^ ", "");print $2}'`
COPS_MCC=$(echo ${NETWORK} |awk '{print $1}')
COPS_MNC_RAW=$(echo ${NETWORK} |awk '{print $2}')
if [ $COPS_MNC_RAW -lt 10 ]; then
COPS_MNC=0${COPS_MNC_RAW}
else
COPS_MNC=$COPS_MNC_RAW
fi
COPS="$(echo "${NETWORK}" |tail -1)"
SIGNAL=$($QMICTL --nas-get-signal-info)
MODE=$(echo "$SIGNAL" | awk 'NR ==2{gsub("\:", ""); print $1}')
STRENGTH=$(echo "$SIGNAL" | awk '/RSSI|RSRQ|RSRP|SNR|ECIO/{gsub("'\''",""); print $2}')
SERVING=$($QMICTL --nas-get-serving-system)
RFBAND=$($QMICTL --nas-get-rf-band-info)
if [ $MODE == "LTE" ]; then
MIMO=$($QMICTL --nas-get-tx-rx-info=lte | grep 'RX Chain' | wc -l)
LACTAC=$(echo "$SERVING" | awk -F [:] '/tracking area code:|3GPP cell ID:/{gsub("'\''",""); print $2}')
LAC_NUM=$(echo $LACTAC | awk '{print $2}')
CID_NUM=$(echo $LACTAC | awk '{print $1}')
CID=$(echo $CID_NUM | awk '{printf "%x\n", $1}' |awk '{print toupper($1)}')
LAC=$(echo $LAC_NUM | awk '{printf "%x\n", $1}' |awk '{print toupper($1)}')
CSQ_RSSI=$(echo ${STRENGTH} | awk '{print $1}')
RSRQ=$(echo ${STRENGTH} | awk '{print $2}')
RSRP=$(echo ${STRENGTH} | awk '{print $3}')
SINR=$(echo ${STRENGTH} | awk '{printf "%.0f\n", $4}')
ENBx=$(echo $CID | sed -e 's/..$//')
ENBID=$(printf %d 0x$ENBx)
CELL=$(printf %d 0x${CID: -2})
PCI=$($QMICTL --nas-get-cell-location-info | awk -F [:] '/Serving Cell ID:/{gsub("'\''",""); print $2}')
LTE_O=$($QMICTL --nas-get-lte-cphy-ca-info)
LTE_CA=$(echo "$LTE_O" |grep -i '^secondary cell' | wc -l)
BWDx=$(echo "$LTE_O" | grep -A4 'Primary Cell Info' | awk -F [:] '/DL Bandwidth:/{gsub("'\''| ", ""); print $2}')
get_lte_bw
if [ $LTE_CA -ge 1 ]; then
BWC=$(echo "$LTE_O" | grep -A4 '^Secondary Cell' | awk -F [:] '/DL Bandwidth:/{gsub("'\''| ", ""); printf "+"$2}')
BWCA=$(($BWDx$BWC))
BANDCH=$(echo "$LTE_O" | grep -A4 '^Primary Cell' | awk -F [:] '/RX Channel:/{gsub("'\''| ", ""); print $2}')
# Fix qmicli band T77W968 modem
case $DEVICE in
*Dell*|*LN960*) CA=$(echo "$LTE_O" | grep -A4 '^Secondary Cell' | awk -F [:-] '/LTE Band:/{gsub("'\''| ", ""); printf " "$NF-1}') ;;
*) CA=$(echo "$LTE_O" | grep -A4 '^Secondary Cell' | awk -F [:-] '/LTE Band:/{gsub("'\''| ", ""); print $NF}') ;;
esac
for cc in $CA; do
SCC=$SCC+$cc
done
else
BANDCH=$(echo "$RFBAND" | awk -F [:] '/Active Channel:/{gsub("'\''",""); print $2}' | head -1)
if [ "x" == "x$BWDx" ]; then
BWDx=$(echo "$RFBAND" | awk -F [:] '/Bandwidth:/{gsub("'\''| ",""); print $2}' | tail -1)
get_lte_bw
fi
fi
EARFCN=$BANDCH
else
MIMO=$($QMICTL --nas-get-tx-rx-info=umts | grep 'RX Chain' | wc -l)
case $MIMO in
0) MIMO=$($QMICTL --nas-get-tx-rx-info=gsm | grep 'RX Chain' | wc -l) ;;
esac
LACTAC=$(echo "$SERVING" | awk -F [:] '/3GPP location area code:|3GPP cell ID:/{gsub("'\''",""); print $2}')
LAC_NUM=$(echo $LACTAC | awk '{print $1}')
CID_NUM=$(echo $LACTAC | awk '{print $2}')
LAC=$(echo $LAC_NUM | awk '{printf "%x\n", $1}' |awk '{print toupper($1)}')
CID=$(echo $CID_NUM | awk '{printf "%x\n", $1}' |awk '{print toupper($1)}')
CSQ_RSSI=$(echo ${STRENGTH} | awk '{print $1}')
if [ $(echo ${STRENGTH} | awk '{print$2}') ]; then
SINR=$(echo ${STRENGTH} | awk '{printf "%.0f\n", $2}')
fi
BANDCH=$(echo "$RFBAND" | awk -F [:] '/Active Channel:/{gsub("'\''| ",""); print $2}')
EARFCN=$(echo $BANDCH | awk '{print $2}')
fi
CSQ_PER=$(echo $CSQ_RSSI |awk '{printf "%d\n", (100*(1-(-50 - $1)/(-50 - -120)))}')
[ $CSQ_RSSI -ge -110 ] && CSQ_COL="black"
[ $CSQ_RSSI -ge -105 ] && CSQ_COL="red"
[ $CSQ_RSSI -ge -95 ] && CSQ_COL="orange"
[ $CSQ_RSSI -ge -75 ] && CSQ_COL="green"
if [ $CSQ_PER -gt 100 ]; then
CSQ_PER=100
elif [ $CSQ_PER -lt 0 ]; then
CSQ_PER=0
fi
EARFCN=$BANDCH
DISTANCE=$($QMICTL --nas-get-cell-location-info | awk '/LTE Timing Advance:/{gsub("\047",""); printf "%.2f\n", (299792458*($4*10^-6)/1000)/2}')
REG=$(echo "$SERVING" | awk -F [:] '/Registration state:/{print $2}' | sed "s/'//g" | awk '{print $1}')
case $REG in
registered)
REGST=1
;;
registration-denied)
REGST=3
;;
esac
DECIMAL=$(uci -q get modeminfo.@general[0].decimail)
if [ "x${DECIMAL}" != "x" ]; then
LAC=$(printf %d 0x$LAC_NUM)
CID=$(printf %d 0x$CID_NUM)
fi
}
#get_device
function get_data_in(){
get_hardware_info >/dev/null 2>&1
get_signal_info >/dev/null 2>&1
}
get_hwinfo(){
continue
}
@@ -1,176 +0,0 @@
#!/bin/sh
get_device_info(){
DEVPORT=$(uci -q get modeminfo.@modeminfo[0].device_qmi)
DEVCTL=$(echo $DEVPORT | awk -F [\/] '{print $NF}')
if ! [ -x /sbin/uqmi ]; then
logger -t "luci-app-modeminfo" "uqmi not found!"
exit 1
fi
if [ $DEVPORT ]; then
QPROXY=$(uci -q get modeminfo.@modeminfo[0].qmi_proxy)
if [ "x${QPROXY}" = "x" ]; then
export MBIM=""
else
export MBIM="-m"
fi
else
for qmi in $(ls /dev/cdc-wdm*); do
if [ $qmi ]; then
QMI_DEVICE=$qmi
if ! [ -n $(which uqmi) ]; then
logger -t "luci-app-modeminfo" "uqmi not found or installed!"
exit 0
fi
else
logger -t "luci-app-modeminfo" "Device is no QMI mode or not found!"
exit 0
fi
done
if [ $qmi ]; then
uci set modeminfo.@modeminfo[0].device_qmi="$qmi"
uci commit modeminfo
break
fi
fi
}
get_data(){
case $1 in
hw)
uqmi ${MBIM} -s -d ${DEVPORT} --get-imei
;;
net)
uqmi ${MBIM} -s -d ${DEVPORT} \
--get-serving-system
;;
sig)
uqmi ${MBIM} -s -d ${DEVPORT} \
--get-signal-info
;;
lte)
uqmi ${MBIM} -d ${DEVPORT} \
--get-lte-cphy-ca-info
;;
base)
uqmi ${MBIM} -s -d ${DEVPORT} \
--get-system-info
;;
mimo)
uqmi ${MBIM} -s -d ${DEVPORT} \
--nas-get-tx-rx-info=$MODE
;;
sta)
uqmi ${MBIM} -d ${DEVPORT} \
--get-cell-location-info
;;
esac
killall -9 uqmi >/dev/null 2>&1
}
get_hardware_info(){
DATA=$(get_data hw)
MANUF=$(cat $(readlink -f /sys/class/usbmisc/${DEVCTL})/../../../manufacturer)
MODEL="$(cat $(readlink -f /sys/class/usbmisc/${DEVCTL})/../../../product)"
DEVICE="$MANUF $MODEL"
IMEI=$(echo "$DATA" | tail -1 | tr -d '"')
}
get_signal_info(){
DATA=$(get_data net)
eval $(jsonfilter -s "$DATA" -e "COPS=$['plmn_description']" \
-e "COPS_MCC=$['plmn_mcc']" \
-e "COPS_MNC_RAW=$['plmn_mnc']" \
-e "REG=$['registration']" \
-e "ROAM=$['roaming']" )
DATA=$(get_data sig)
eval $(jsonfilter -s "$DATA" -e "MODE=$['type']" \
-e "CSQ_RSSI=$['rssi']" \
-e "RSRP=$['rsrp']" \
-e "RSRQ=$['rsrq']" \
-e "SINR=$['snr']")
DATA=$(get_data base)
eval $(jsonfilter -s "$DATA" -e "TAC_NUM=$['$MODE']['tracking_area_code']" \
-e "CELL=$['$MODE']['cell_id']" \
-e "ENBID=$['$MODE']['enodeb_id']")
DATA=$(get_data sta)
EARFCN=$(echo "$DATA" | awk '/channel/{gsub(",",""); print $2}' | head -1)
PCI=$(echo "$DATA" | awk '/serving_cell_id/{gsub(",",""); print $2}' | head -1)
case $MODE in
LTE)
DATA=$(get_data lte)
eval $(jsonfilter -s "$DATA" -e "BW=$['primary']['bandwidth']")
CA=$(echo "$DATA" | awk -F [:] '/secondary_/{gsub("\"","");print $1}')
LTE_CA=$(echo "$CA" | wc -l)
if [ $LTE_CA -ge 1 ]; then
BWCA=0
for a in $CA; do
eval $(jsonfilter -s "$DATA" -e "SCx=$['$a']['band']" \
-e "BWC=$['$a']['bandwidth']")
SCC="$SCC+$SCx"
BWCA=$(($BWCA+$BWC))
done
BWCA=$(($BW+$BWCA))
fi
;;
esac
MODE=$(echo $MODE | awk '{print toupper($1)}')
if [ "$COPS_MNC_RAW" -lt "10" ]; then
COPS_MNC=0${COPS_MNC_RAW}
else
COPS_MNC=${COPS_MNC_RAW}
fi
if [ "x${COPS}" = "x" ]; then
COPS="${COPS_MCC} ${COPS_MNC}"
fi
SINR=$(echo $SINR | awk '{printf "%.0f\n", $1}')
LAC=$(echo $TAC_NUM | awk '{printf "%x\n", toupper($1)}')
ENBID_h=$(printf %x $ENBID)
CELL_h=$(printf %x $CELL)
if [ "$CELL" -le 15 ]; then
CELL_h="0${CID_h}"
fi
CID="${ENBID_h}${CELL_h}"
CID_NUM=$(printf %d 0x$CID)
case $REG in
not_registered) REGST=0 ;;
registered)
case $ROAM in
true) REGST=5 ;;
*) REGST=1 ;;
esac
;;
searching) REGST=2 ;;
registering_denied) REGST=3 ;;
unknown) REGST=4 ;;
esac
CSQ_PER=$(echo $CSQ_RSSI |awk '{printf "%d\n", (100*(1-(-50 - $1)/(-50 - -120)))}')
[ $CSQ_RSSI -ge -110 ] && CSQ_COL="black"
[ $CSQ_RSSI -ge -105 ] && CSQ_COL="red"
[ $CSQ_RSSI -ge -95 ] && CSQ_COL="orange"
[ $CSQ_RSSI -ge -75 ] && CSQ_COL="green"
if [ $CSQ_PER -gt 100 ]; then
CSQ_PER=100
elif [ $CSQ_PER -lt 0 ]; then
CSQ_PER=0
fi
DECIMAL=$(uci -q get modeminfo.@modeminfo[0].general)
if [ "x${DECIMAL}" != "x" ]; then
LAC=$LAC_NUM
CID=$CID_NUM
fi
}
function get_data_in(){
get_hardware_info >/dev/null 2>&1
get_signal_info >/dev/null 2>&1
}
get_hwinfo(){
continue
}
+30 -26
View File
@@ -4,7 +4,7 @@ trap 'cleanup >/dev/null 2>&1; exit 0' INT TERM
SECTIONS=$(echo $(uci show modeminfo | awk -F [\]\[\@=] '/=modeminfo/{print $3}')) SECTIONS=$(echo $(uci show modeminfo | awk -F [\]\[\@=] '/=modeminfo/{print $3}'))
get_vars(){ get_vars(){
for v in device device_qmi qmi_proxy decimail qmi_mode; do for v in device device_qmi qmi_trap decimail qmi_mode; do
eval $v=$(uci -q get modeminfo.@modeminfo[${s}].${v} 2>/dev/null) eval $v=$(uci -q get modeminfo.@modeminfo[${s}].${v} 2>/dev/null)
done done
} }
@@ -62,17 +62,12 @@ function if_null() {
qmi_device(){ qmi_device(){
if [ $qmi_mode ]; then [ -n "$qmi_mode" ] || SCRIPT=/usr/share/modeminfo/scripts/modeminfo
SCRIPT=/usr/share/modeminfo/scripts/modeminfo-qmi [ -r $SCRIPT ] && {
else
SCRIPT=/usr/share/modeminfo/scripts/modeminfo
fi
if [ -r $SCRIPT ]; then
. $SCRIPT . $SCRIPT
else } || {
exit 0 exit 0
fi }
} }
@@ -86,24 +81,33 @@ echo "{ \"modem\" : ["
for s in $SECTIONS; do for s in $SECTIONS; do
m=$((${s} + 1)) m=$((${s} + 1))
if [ "$s" ]; then get_vars
get_vars if [ $qmi_mode ]; then
qmi_device if [ "$s" ]; then
get_device_info /usr/bin/qminfo $device_qmi --json --${qmi_trap}
get_data_in >/dev/null 2>&1 fi
if_null if [ "$ARGSLEN" != "${m}" ]; then
json_status echo ","
fi fi
if [ "$ARGSLEN" = "${m}" ]; then
echo " }"
else else
echo " }," if [ "$s" ]; then
qmi_device
get_device_info
get_data_in >/dev/null 2>&1
if_null
json_status
fi
if [ "$ARGSLEN" = "${m}" ]; then
echo " }"
else
echo " },"
fi
# flush modem variables
unset BWCA SCC SC BWDx BWPx BWCx BWDL LTE_CA \
DEVICE COPS MODE CSQ_PER LAC CSQ_RSSI \
SINR RSRP IMEI REGST EARFCN CHIPTEMP FW \
ICCID IMSI RSRQ DISTANCE
fi fi
# flush modem variables
unset BWCA SCC SC BWDx BWPx BWCx BWDL LTE_CA \
DEVICE COPS MODE CSQ_PER LAC CSQ_RSSI \
SINR RSRP IMEI REGST EARFCN CHIPTEMP FW \
ICCID IMSI RSRQ DISTANCE
done done
echo "]}" echo "]}"