From 6bb23e315cd55b2f50dc7a20776fd65efd4d1513 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 13 May 2026 08:40:30 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8D=89=20Sync=202026-05-13=2008:40:30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-modeminfo/Makefile | 4 +- .../luci-static/resources/view/modem/setup.js | 42 +++- luci-app-modeminfo/po/ru/modeminfo.po | 29 ++- modeminfo/Makefile | 16 +- .../usr/share/modeminfo-qmi/modeminfo-qmi | 180 ------------------ .../share/modeminfo-qmi/modeminfo-qmi.uqmi | 176 ----------------- modeminfo/root/usr/share/modeminfo/modeminfo | 56 +++--- 7 files changed, 93 insertions(+), 410 deletions(-) delete mode 100644 modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi delete mode 100644 modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi.uqmi diff --git a/luci-app-modeminfo/Makefile b/luci-app-modeminfo/Makefile index 729382e6f..f9ac63684 100644 --- a/luci-app-modeminfo/Makefile +++ b/luci-app-modeminfo/Makefile @@ -3,8 +3,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Information dashboard for 3G/LTE dongle LUCI_DEPENDS:=+modeminfo PKG_LICENSE:=GPLv3 -PKG_VERSION:=0.4.5 -PKG_RELEASE:=1 +PKG_VERSION:=0.4.6 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-modeminfo/htdocs/luci-static/resources/view/modem/setup.js b/luci-app-modeminfo/htdocs/luci-static/resources/view/modem/setup.js index e41f121f5..f5077f0dc 100644 --- a/luci-app-modeminfo/htdocs/luci-static/resources/view/modem/setup.js +++ b/luci-app-modeminfo/htdocs/luci-static/resources/view/modem/setup.js @@ -9,7 +9,7 @@ /* - Written by Konstantine Shevlakov at 2023 + Written by Konstantine Shevlakov at 2023 - 2026 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 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 qdesc = _('Select qmi port.'); var lacdec = _('Show LAC and CID in decimal.'); 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 portplace = _('Please select a port'); 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; + m = new form.Map('modeminfo', maindesc, mdesc); 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.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.load = function(section_id) { @@ -117,7 +146,10 @@ return view.extend({ o.rmempty = true; 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.depends('qmi_mode', '1'); diff --git a/luci-app-modeminfo/po/ru/modeminfo.po b/luci-app-modeminfo/po/ru/modeminfo.po index fa47060c1..08afc7819 100644 --- a/luci-app-modeminfo/po/ru/modeminfo.po +++ b/luci-app-modeminfo/po/ru/modeminfo.po @@ -87,8 +87,14 @@ msgstr "Страница конфигурации Modeminfo." msgid "Use QMI" msgstr "Использовать QMI" -msgid "Get modem data via qmicli (experimental). Require install qmi-utils." -msgstr "Получать данные модема через qmicli (экспериментально). Требуется установленный qmi-utils." +msgid "Get modem data via qmi. Require install qminfo." +msgstr "Получать данные модема через qmi. Требуется установленный qminfo." + +msgid "Get modem data via qmi." +msgstr "Получать данные модема через qmi." + +msgid "Please install qminfo package." +msgstr "Установите пакет qminfo." msgid "Data port" msgstr "Порт данных" @@ -111,11 +117,20 @@ msgstr "Если доступно, использовать утилиту mmcli msgid "Name via mmcli" msgstr "Имя модема через mmcli" -msgid "QMI proxy" -msgstr "QMI прокси" +msgid "QMI mode" +msgstr "Режим QMI" -msgid "Enable qmi-proxy mode." -msgstr "Задействовать режим прокси." +msgid "Set qmi mode." +msgstr "Задействовать режим QMI." + +msgid "Auto" +msgstr "Автоматически" + +msgid "Direct QMI" +msgstr "Только QMI" + +msgid "QMI over MBIM" +msgstr "QMI через MBIM" msgid "Index page" msgstr "На главную" @@ -145,4 +160,4 @@ msgid "Wait devices information" msgstr "Ожидание ответа от устройств" msgid "Error loading information" -msgstr "Получение данных завершилось ошибкой" \ No newline at end of file +msgstr "Получение данных завершилось ошибкой" diff --git a/modeminfo/Makefile b/modeminfo/Makefile index 774f4aeb7..66494344e 100644 --- a/modeminfo/Makefile +++ b/modeminfo/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=modeminfo -PKG_VERSION:=0.4.5 -PKG_RELEASE:=2 +PKG_VERSION:=0.4.6 +PKG_RELEASE:=3 PKG_MAINTAINER:=Konstantine Shevlakov include $(INCLUDE_DIR)/package.mk @@ -20,12 +20,6 @@ define Package/$(PKG_NAME) TITLE:=Signal information for 3G/LTE dongle 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 $(call Package/$(PKG_NAME)/Default) DEPENDS:=+modeminfo +telegrambot @@ -78,11 +72,6 @@ define Package/$(PKG_NAME)/install $(CP) ./root/etc/config/* $(1)/etc/config 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 $(INSTALL_DIR) $(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,zte,+kmod-usb-serial-option,ZTE MF823/MF823D,ZTE)) $(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)) diff --git a/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi b/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi deleted file mode 100644 index 1a243cbeb..000000000 --- a/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi +++ /dev/null @@ -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 - -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 -} - diff --git a/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi.uqmi b/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi.uqmi deleted file mode 100644 index 6407f8880..000000000 --- a/modeminfo/root/usr/share/modeminfo-qmi/modeminfo-qmi.uqmi +++ /dev/null @@ -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 -} diff --git a/modeminfo/root/usr/share/modeminfo/modeminfo b/modeminfo/root/usr/share/modeminfo/modeminfo index 5173aa3c5..415be2aad 100755 --- a/modeminfo/root/usr/share/modeminfo/modeminfo +++ b/modeminfo/root/usr/share/modeminfo/modeminfo @@ -4,7 +4,7 @@ trap 'cleanup >/dev/null 2>&1; exit 0' INT TERM SECTIONS=$(echo $(uci show modeminfo | awk -F [\]\[\@=] '/=modeminfo/{print $3}')) 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) done } @@ -62,17 +62,12 @@ function if_null() { qmi_device(){ - if [ $qmi_mode ]; then - SCRIPT=/usr/share/modeminfo/scripts/modeminfo-qmi - else - SCRIPT=/usr/share/modeminfo/scripts/modeminfo - fi - - if [ -r $SCRIPT ]; then + [ -n "$qmi_mode" ] || SCRIPT=/usr/share/modeminfo/scripts/modeminfo + [ -r $SCRIPT ] && { . $SCRIPT - else + } || { exit 0 - fi + } } @@ -86,24 +81,33 @@ echo "{ \"modem\" : [" for s in $SECTIONS; do m=$((${s} + 1)) - if [ "$s" ]; then - get_vars - qmi_device - get_device_info - get_data_in >/dev/null 2>&1 - if_null - json_status - fi - if [ "$ARGSLEN" = "${m}" ]; then - echo " }" + get_vars + if [ $qmi_mode ]; then + if [ "$s" ]; then + /usr/bin/qminfo $device_qmi --json --${qmi_trap} + fi + if [ "$ARGSLEN" != "${m}" ]; then + echo "," + fi 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 - # 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 echo "]}"