This commit is contained in:
siriling 2025-01-20 22:32:50 +08:00
parent 2076c5f6c3
commit c6c05ce05f
15 changed files with 1116 additions and 12 deletions

View File

@ -6,16 +6,28 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-modem
LUCI_TITLE:=LuCI support for Modem
LUCI_PKGARCH:=all
PKG_VERSION:=1.4.4
PKG_VERSION:=1.4.5
PKG_LICENSE:=GPLv3
PKG_LINCESE_FILES:=LICENSE
PKF_MAINTAINER:=Siriling <siriling@qq.com>
LUCI_DEPENDS:=+luci-compat \
+kmod-usb2 +kmod-usb3 \
+kmod-usb-net-sierrawireless +kmod-usb-ohci \
+kmod-usb-serial-option +kmod-usb-serial +kmod-usb-serial-qualcomm \
+kmod-usb-net +kmod-usb-acm \
+kmod-usb-wdm +kmod-usb-net-qmi-wwan \
+kmod-usb-net-cdc-ether \
+kmod-usb-net-cdc-mbim \
+kmod-usb-net-rndis \
+kmod-usb-net-cdc-ncm +kmod-usb-net-huawei-cdc-ncm \
+usbutils \
+kmod-pcie_mhi \
+pciutils \
+quectel-CM-5G \
+modemmanager \
+luci-proto-modemmanager \
+sms-tool \
+jq
+bc +jq
define Package/luci-app-modem/conffiles
/etc/config/modem

View File

@ -27,6 +27,7 @@
| 厂家名称 | 模组名称 | 平台 | 数据传输模式 | 端口模式 |
| -------- | -------------------------------------------------- | -------- | ------------ | ---------------------------- |
| 华为 | MH5000-31 | 华为 | USB | ECMNCM |
| 鼎桥 | MT5700M-CN | 华为 | USB | ECMNCM |
| 移远通信 | RG200U-CNDONGLE版 | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500U-CN | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500U-EA | 紫光展锐 | USB | ECMMBIMRNDISNCM |

View File

@ -683,8 +683,18 @@
}
}
//设置频段偏好显示
document.getElementById("cbi-"+network_type+"_band_info").style.display=band_info_display;
//设置频段偏好显示beta功能
band_info_display="none"; //不显示频段偏好
//获取当前启用的tab元素
var tab_menu = document.getElementById("tab_menu");
var tab_enable_element=get_tab_enable_element(tab_menu);
//获取当前选中的tab元素
var data_tab=tab_enable_element.getAttribute("data-tab").replace("_tab","");
if (data_tab=="network_prefer")
{
document.getElementById("cbi-"+network_type+"_band_info").style.display=band_info_display;
}
}
}
@ -918,6 +928,8 @@
var checkboxes=document.getElementById('prefer_custom_config').querySelectorAll('input[type="checkbox"]');
for(checkbox of checkboxes)
{
//获取网络类型
var network_type=checkbox.value;
//获取网络类型配置
var network_prefer={};
network_prefer["enable"]=Number(checkbox.checked);
@ -926,7 +938,6 @@
network_prefer["band"]=[];
if (checkbox.checked)
{
var network_type=checkbox.value;
var band_check_element=document.getElementById(network_type+"_band_check");
var bands=band_check_element.querySelectorAll('input[type="checkbox"]');
for(band of bands)
@ -1013,6 +1024,17 @@
// );
// }
// 显示判断偏好
function display_band_prefer(status)
{
//不显示频段偏好
for (let i = 2; i <=5; i++)
{
network_type=i+"g";
document.getElementById("cbi-"+network_type+"_band_info").style.display=status;
}
}
// 获取模组调试信息
function get_modem_debug_info()
{
@ -1026,7 +1048,11 @@
//获取当前选中的tab元素
var data_tab=tab_enable_element.getAttribute("data-tab").replace("_tab","");
if (data_tab=="mode") {
if (data_tab=="mode")
{
//不显示频段偏好
display_band_prefer("none");
//获取拨号模式信息
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_mode_info")%>', {"port":at_port},
function(x, data)
@ -1042,7 +1068,8 @@
}
);
}
else if (data_tab=="network_prefer") {
else if (data_tab=="network_prefer")
{
//获取网络偏好信息
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_network_prefer_info")%>', {"port":at_port},
function(x, data)
@ -1058,7 +1085,11 @@
}
);
}
else if (data_tab=="self_test") {
else if (data_tab=="self_test")
{
//不显示频段偏好
display_band_prefer("none");
//获取自检信息
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_self_test_info")%>', {"port":at_port},
function(x, data)
@ -1074,6 +1105,11 @@
}
);
}
else if (data_tab=="at_command")
{
//不显示频段偏好
display_band_prefer("none");
}
}
// 定时触发更新AT串口

View File

@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: luci-app-modem 1.4.1-1\n"
"Project-Id-Version: luci-app-modem 1.4.5-1\n"
"POT-Creation-Date: 2024-04-20 12:07+0100\n"
"PO-Revision-Date: 2024-04-24 18:08+0000\n"
"Last-Translator: Siriling <siriling@gmail.com>\n"
@ -103,6 +103,24 @@ msgstr "选择一个模组进行调试"
msgid "Network Preferences"
msgstr "网络偏好"
msgid "Apply Network Prefer"
msgstr "应用网络偏好"
msgid "Apply Band Prefer"
msgstr "应用频段偏好"
msgid "2G Band Preferences"
msgstr "2G 频段偏好"
msgid "3G Band Preferences"
msgstr "3G 频段偏好"
msgid "4G Band Preferences"
msgstr "4G 频段偏好"
msgid "5G Band Preferences"
msgstr "5G 频段偏好"
msgid "Self Test"
msgstr "自检"

View File

@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: luci-app-modem 1.4.1-1\n"
"Project-Id-Version: luci-app-modem 1.4.5-1\n"
"POT-Creation-Date: 2024-04-20 12:07+0100\n"
"PO-Revision-Date: 2024-04-24 18:08+0000\n"
"Last-Translator: Siriling <siriling@gmail.com>\n"
@ -103,6 +103,18 @@ msgstr "选择一个模组进行调试"
msgid "Network Preferences"
msgstr "网络偏好"
msgid "2G Band Preferences"
msgstr "2G 频段偏好"
msgid "3G Band Preferences"
msgstr "3G 频段偏好"
msgid "4G Band Preferences"
msgstr "4G 频段偏好"
msgid "5G Band Preferences"
msgstr "5G 频段偏好"
msgid "Self Test"
msgstr "自检"

View File

@ -387,6 +387,66 @@ config custom-commands
option description '获取模组温度 > AT^CHIPTEMP?'
option command 'AT^CHIPTEMP?'
config custom-commands
option description '重启模组 > AT^RESET'
option command 'AT^RESET'
config custom-commands
option description '****************鼎桥****************'
option command 'ATI'
config custom-commands
option description '获取SIM卡卡槽状态 > AT^HVSST?'
option command 'AT^HVSST?'
config custom-commands
option description '设置当前使用的为卡1 > AT^SCICHG=0,1'
option command 'AT^SCICHG=0,1'
config custom-commands
option description '设置当前使用的为卡2 > AT^SCICHG=1,0'
option command 'AT^SCICHG=1,0'
config custom-commands
option description '查询网络信息 > AT^SYSINFOEX'
option command 'AT^SYSINFOEX'
config custom-commands
option description '查询当前拨号模式 > AT^SETMODE?'
option command 'AT^SETMODE?'
config custom-commands
option description 'ECM拨号模式Linux > AT^SETMODE=0'
option command 'AT^SETMODE=0'
config custom-commands
option description 'NCM拨号模式Windows > AT^SETMODE=1'
option command 'AT^SETMODE=1'
config custom-commands
option description 'ECM拨号模式LinuxDebug > AT^SETMODE=2'
option command 'AT^SETMODE=2'
config custom-commands
option description 'NCM拨号模式Windows,Debug > AT^SETMODE=3'
option command 'AT^SETMODE=3'
config custom-commands
option description '锁4G > AT^SYSCFGEX="03",40000000,1,2,7FFFFFFFFFFFFFFF,,'
option command 'AT^SYSCFGEX="03",40000000,1,2,7FFFFFFFFFFFFFFF,,'
config custom-commands
option description '锁5G > AT^SYSCFGEX="08",40000000,1,2,7FFFFFFFFFFFFFFF,,'
option command 'AT^SYSCFGEX="08",40000000,1,2,7FFFFFFFFFFFFFFF,,'
config custom-commands
option description '恢复自动搜索网络 > AT^SYSCFGEX="080302",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,'
option command 'AT^SYSCFGEX="080302",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,'
config custom-commands
option description '获取模组温度 > AT^CHIPTEMP?'
option command 'AT^CHIPTEMP?'
config custom-commands
option description '重启模组 > AT^RESET'
option command 'AT^RESET'

View File

@ -447,6 +447,8 @@ stop_ecm()
at_command="AT^NDISDUP=${define_connect},0"
elif [ "$manufacturer" = "huawei" ]; then
at_command="AT^NDISDUP=${define_connect},0"
elif [ "$manufacturer" = "tdtech" ]; then
at_command="AT^NDISDUP=${define_connect},0"
else
at_command='ATI'
fi

View File

@ -162,6 +162,7 @@
},
"huawei":{
"hisilicon":[
{"获取SIM卡卡槽状态 > AT^SIMSLOT?":"AT^SIMSLOT?"},
{"设置当前使用的为卡1 > AT^SIMSWITCH=1":"AT^SIMSWITCH=1"},
{"设置当前使用的为卡2 > AT^SIMSWITCH=0":"AT^SIMSWITCH=0"},
{"查询网络信息 > AT^SYSINFOEX":"AT^SYSINFOEX"},
@ -176,6 +177,24 @@
{"获取模组温度 > AT^CHIPTEMP?":"AT^CHIPTEMP?"},
{"重启模组 > AT^RESET":"AT^RESET"}
]
},
"tdtech":{
"hisilicon":[
{"获取SIM卡卡槽状态 > AT^HVSST?":"AT^HVSST?"},
{"设置当前使用的为卡1 > AT^SCICHG=0,1":"AT^SCICHG=0,1"},
{"设置当前使用的为卡2 > AT^SCICHG=1,0":"AT^SCICHG=1,0"},
{"查询网络信息 > AT^SYSINFOEX":"AT^SYSINFOEX"},
{"查询当前拨号模式 > AT^SETMODE?":"AT^SETMODE?"},
{"ECM拨号模式Linux > AT^SETMODE=0":"AT^SETMODE=0"},
{"NCM拨号模式Windows > AT^SETMODE=1":"AT^SETMODE=1"},
{"ECM拨号模式LinuxDebug > AT^SETMODE=2":"AT^SETMODE=2"},
{"NCM拨号模式Windows,Debug > AT^SETMODE=3":"AT^SETMODE=3"},
{"锁4G > AT^SYSCFGEX=\"03\",40000000,1,2,7FFFFFFFFFFFFFFF,,":"AT^SYSCFGEX=\"03\",40000000,1,2,7FFFFFFFFFFFFFFF,,"},
{"锁5G > AT^SYSCFGEX=\"08\",40000000,1,2,7FFFFFFFFFFFFFFF,,":"AT^SYSCFGEX=\"08\",40000000,1,2,7FFFFFFFFFFFFFFF,,"},
{"恢复自动搜索网络 > AT^SYSCFGEX=\"080302\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,":"AT^SYSCFGEX=\"080302\",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,"},
{"获取模组温度 > AT^CHIPTEMP?":"AT^CHIPTEMP?"},
{"重启模组 > AT^RESET":"AT^RESET"}
]
}
}
}

View File

@ -122,8 +122,10 @@ huawei_get_mode()
"hisilicon")
case "$mode_num" in
"0"|"2") mode="ecm" ;;
"1"|"3") mode="ncm" ;;
"4") mode="unknown" ;;
"1"|"3"|"4"|"5") mode="ncm" ;;
"6") mode="rndis" ;;
"7") mode="mbim" ;;
"8") mode="ppp" ;;
*) mode="$mode_num" ;;
esac
;;
@ -159,6 +161,7 @@ huawei_set_mode()
"hisilicon")
case "$mode_config" in
"ecm") mode_num="0" ;;
"ncm") mode_num="4" ;;
*) mode_num="0" ;;
esac
;;

View File

@ -8,6 +8,7 @@ source "${SCRIPT_DIR}/quectel.sh"
source "${SCRIPT_DIR}/fibocom.sh"
source "${SCRIPT_DIR}/meig.sh"
source "${SCRIPT_DIR}/huawei.sh"
source "${SCRIPT_DIR}/tdtech.sh"
# source "${SCRIPT_DIR}/simcom.sh"
#调试开关

View File

@ -372,6 +372,7 @@ get_modem_info()
"meig") get_meig_info "${at_port}" "${platform}" "${define_connect}" ;;
"simcom") get_simcom_info "${at_port}" "${platform}" "${define_connect}" ;;
"huawei") get_huawei_info "${at_port}" "${platform}" "${define_connect}" ;;
"tdtech") get_tdtech_info "${at_port}" "${platform}" "${define_connect}" ;;
*) debug "未适配该模组" ;;
esac

View File

@ -126,6 +126,8 @@ ecm_dial()
at_command="AT^NDISDUP=${define_connect},1"
elif [ "$manufacturer" = "huawei" ]; then
at_command="AT^NDISDUP=${define_connect},1"
elif [ "$manufacturer" = "tdtech" ]; then
at_command="AT^NDISDUP=${define_connect},1"
else
at_command='ATI'
fi

View File

@ -165,6 +165,18 @@
"band_3g":"1,2,5,6,8,9,19",
"band_4g":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,21,25,26,28,33,34,35,36,37,38,39,40,41,42,43",
"band_5g":"1,2,3,5,7,8,12,20,25,28,38,40,41,78,79"
},
"mt5700m-cn":{
"manufacturer_id":"3466",
"manufacturer":"tdtech",
"platform":"hisilicon",
"data_interface":"usb",
"define_connect":"1",
"modes":["ecm","ncm"],
"band_2g":"DCS_1800,E-GSM_900,P-GSM_900,GSM_850,R-GSM_900,PCS_1900",
"band_3g":"1,2,5,6,8,9,19",
"band_4g":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,21,25,26,28,33,34,35,36,37,38,39,40,41,42,43",
"band_5g":"1,2,3,5,7,8,12,20,25,28,38,40,41,78,79"
}
},
"pcie":{
@ -277,6 +289,12 @@
"vendor_id":["12d1"],
"product_id":["15c3"]
}
},
"tdtech":{
"hisilicon":{
"vendor_id":["3466"],
"product_id":["3301"]
}
}
}
}

View File

@ -84,6 +84,7 @@ m_modem_presets()
"meig") meig_presets ;;
"simcom") simcom_presets ;;
"huawei") huawei_presets ;;
"tdtech") tdtech_presets ;;
esac
}

View File

@ -0,0 +1,918 @@
#!/bin/sh
# Copyright (C) 2023 Siriling <siriling@qq.com>
#脚本目录
SCRIPT_DIR="/usr/share/modem"
#预设
tdtech_presets()
{
#关闭模组主动上报
at_command='AT^CURC=0'
sh "${SCRIPT_DIR}/modem_at.sh" "$at_port" "$at_command"
#开启5G NA NSA接入
at_command='AT^C5GOPTION=1,3,3'
sh "${SCRIPT_DIR}/modem_at.sh" "$at_port" "$at_command"
}
#获取DNS
# $1:AT串口
# $2:连接定义
tdtech_get_dns()
{
local at_port="$1"
local define_connect="$2"
[ -z "$define_connect" ] && {
define_connect="1"
}
local public_dns1_ipv4="223.5.5.5"
local public_dns2_ipv4="119.29.29.29"
local public_dns1_ipv6="2400:3200::1" #下一代互联网北京研究中心240C::6666阿里2400:3200::1腾讯2402:4e00::
local public_dns2_ipv6="2402:4e00::"
#获取DNS地址IPv4
at_command="AT^DHCP=${define_connect}"
local response=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "\^DHCP:" | sed -n '1p')
local ipv4_dns1=$(echo "${response}" | awk -F',' '{print $5}')
if [ -z "$ipv4_dns1" ]; then
ipv4_dns1="${public_dns1_ipv4}"
else
#按字节byte将十六进制拆分并转换为对应的十进制表示
ipv4_dns1=$(echo "$ipv4_dns1" | awk '{
for (i = length; i >= 1; i -= 2) {
printf "%d.", "0x" substr($0, i-1, 2)
}
}')
ipv4_dns1="${ipv4_dns1%?}"
fi
local ipv4_dns2=$(echo "${response}" | awk -F',' '{print $6}')
if [ -z "$ipv4_dns2" ]; then
ipv4_dns2="${public_dns1_ipv4}"
else
#按字节byte将十六进制拆分并转换为对应的十进制表示
ipv4_dns2=$(echo "$ipv4_dns2" | awk '{
for (i = length; i >= 1; i -= 2) {
printf "%d.", "0x" substr($0, i-1, 2)
}
}')
ipv4_dns2="${ipv4_dns2%?}"
fi
#获取DNS地址IPv6
at_command="AT^DHCPV6=${define_connect}"
local response=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "\^DHCPV6:" | sed -n '1p')
local ipv6_dns1=$(echo "${response}" | awk -F',' '{print $5}')
[ -z "$ipv6_dns1" ] && {
ipv6_dns1="${public_dns1_ipv6}"
}
local ipv6_dns2=$(echo "${response}" | awk -F',' '{print $6}')
[ -z "$ipv6_dns2" ] && {
ipv6_dns2="${public_dns2_ipv6}"
}
dns="{
\"dns\":{
\"ipv4_dns1\":\"$ipv4_dns1\",
\"ipv4_dns2\":\"$ipv4_dns2\",
\"ipv6_dns1\":\"$ipv6_dns1\",
\"ipv6_dns2\":\"$ipv6_dns2\"
}
}"
echo "$dns"
}
#获取拨号模式
# $1:AT串口
# $2:平台
tdtech_get_mode()
{
local at_port="$1"
local platform="$2"
at_command="AT^SETMODE?"
local mode_num=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | sed -n '2p' | sed 's/\r//g')
if [ -z "$mode_num" ]; then
echo "unknown"
return
fi
#获取芯片平台
if [ -z "$platform" ]; then
local modem_number=$(uci -q get modem.@global[0].modem_number)
for i in $(seq 0 $((modem_number-1))); do
local at_port_tmp=$(uci -q get modem.modem$i.at_port)
if [ "$at_port" = "$at_port_tmp" ]; then
platform=$(uci -q get modem.modem$i.platform)
break
fi
done
fi
local mode
case "$platform" in
"hisilicon")
case "$mode_num" in
"0"|"2") mode="ecm" ;;
"1"|"3"|"4"|"5") mode="ncm" ;;
"6") mode="rndis" ;;
"7") mode="mbim" ;;
"8") mode="ppp" ;;
*) mode="$mode_num" ;;
esac
;;
*)
mode="$mode_num"
;;
esac
echo "${mode}"
}
#设置拨号模式
# $1:AT串口
# $2:拨号模式配置
tdtech_set_mode()
{
local at_port="$1"
local mode_config="$2"
#获取芯片平台
local platform
local modem_number=$(uci -q get modem.@global[0].modem_number)
for i in $(seq 0 $((modem_number-1))); do
local at_port_tmp=$(uci -q get modem.modem$i.at_port)
if [ "$at_port" = "$at_port_tmp" ]; then
platform=$(uci -q get modem.modem$i.platform)
break
fi
done
#获取拨号模式配置
local mode_num
case "$platform" in
"hisilicon")
case "$mode_config" in
"ecm") mode_num="0" ;;
"ncm") mode_num="4" ;;
*) mode_num="0" ;;
esac
;;
*)
mode_num="0"
;;
esac
#设置模组
at_command="AT^SETMODE=${mode_num}"
sh ${SCRIPT_DIR}/modem_at.sh ${at_port} "${at_command}"
}
#获取位
# $1:频段名称
tdtech_get_bit()
{
local band_name="$1"
local bit
case "$band_name" in
"DCS_1800") bit="8" ;;
"E-GSM_900"|"E_GSM_900") bit="9" ;;
"P-GSM_900"|"P_GSM_900") bit="10" ;;
"GSM_450") bit="17" ;;
"GSM_480") bit="18" ;;
"GSM_750") bit="19" ;;
"GSM_850") bit="20" ;;
"R-GSM_900"|"R_GSM_900") bit="21" ;;
"PCS_1900") bit="22" ;;
esac
echo "${bit}"
}
#获取频段信息
# $1:频段二进制数
# $2:支持的频段
# $3:频段类型2G3G4G5G
tdtech_get_band_info()
{
local band_bin="$1"
local support_band="$2"
local band_type="$3"
local band_info=""
local support_band=$(echo "$support_band" | sed 's/,/ /g')
if [ "$band_type" = "2G" ]; then
for band in $support_band; do
#获取bit位
local bit=$(tdtech_get_bit ${band})
#获取值
local enable="${band_bin: $((-bit)):1}"
[ -z "$enable" ] && enable="0"
#设置频段信息
# band_info=$(echo ${band_info} | jq '. += [{"'$band'":'$enable'}]')
band_info="${band_info},{\"$band\":$enable}"
done
else
#频段频段起始,前缀位置
local start_bit
local band_prefix
case "$band_type" in
"3G")
start_bit="23"
band_prefix="WCDMA_B"
;;
"4G")
start_bit="1"
band_prefix="LTE_BC"
;;
"5G")
start_bit="1"
band_prefix="NR5G_N"
;;
esac
for band in $support_band; do
#获取值从start_bit位开始
local enable="${band_bin: $((-band-start_bit+1)):1}"
[ -z "$enable" ] && enable="0"
#设置频段信息
# band_info=$(echo ${band_info} | jq '. += [{'$band_prefix$band':'$enable'}]')
band_info="${band_info},{\"$band_prefix$band\":$enable}"
done
fi
#去掉第一个,
band_info="["${band_info/,/}"]"
# band_info="[${band_info%?}]"
echo "${band_info}"
}
#获取网络偏好
# $1:AT串口
# $2:数据接口
# $3:模组名称
tdtech_get_network_prefer()
{
local at_port="$1"
local data_interface="$2"
local modem_name="$3"
at_command="AT^SYSCFGEX?"
local response=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "\^SYSCFGEX:" | sed 's/\^SYSCFGEX://g')
local network_type_num=$(echo "$response" | awk -F'"' '{print $2}')
#获取网络类型
local network_prefer_2g="0";
local network_prefer_3g="0";
local network_prefer_4g="0";
local network_prefer_5g="0";
#匹配不同的网络类型
local auto=$(echo "${network_type_num}" | grep "00")
if [ -n "$auto" ]; then
network_prefer_2g="1"
network_prefer_3g="1"
network_prefer_4g="1"
network_prefer_5g="1"
else
local gsm=$(echo "${network_type_num}" | grep "01")
local wcdma=$(echo "${network_type_num}" | grep "02")
local lte=$(echo "${network_type_num}" | grep "03")
local nr=$(echo "${network_type_num}" | grep "08")
if [ -n "$gsm" ]; then
network_prefer_2g="1"
fi
if [ -n "$wcdma" ]; then
network_prefer_3g="1"
fi
if [ -n "$lte" ]; then
network_prefer_4g="1"
fi
if [ -n "$nr" ]; then
network_prefer_5g="1"
fi
fi
#获取模组信息
local modem_info=$(jq '.modem_support.'$data_interface'."'$modem_name'"' ${SCRIPT_DIR}/modem_support.json)
#获取模组支持的频段
local support_2g_band=$(echo "$modem_info" | jq -r '.band_2g')
local support_3g_band=$(echo "$modem_info" | jq -r '.band_3g')
local support_4g_band=$(echo "$modem_info" | jq -r '.band_4g')
local support_5g_band=$(echo "$modem_info" | jq -r '.band_5g')
#获取频段信息
local band_hex_2g_3g=$(echo "$response" | awk -F',' '{print $2}')
#十六进制转二进制
local bin_2g_3g=$(echo "obase=2; ibase=16; $band_hex_2g_3g" | bc)
local band_2g_info=$(tdtech_get_band_info "${bin_2g_3g}" "${support_2g_band}" "2G")
local band_3g_info=$(tdtech_get_band_info "${bin_2g_3g}" "${support_3g_band}" "3G")
local band_hex_4g_5g=$(echo "$response" | awk -F',' '{print $5}' | sed 's/\r//g')
#十六进制转二进制
local bin_4g_5g=$(echo "obase=2; ibase=16; $band_hex_4g_5g" | bc)
local band_4g_info=$(tdtech_get_band_info "${bin_4g_5g}" "${support_4g_band}" "4G")
local band_5g_info=$(tdtech_get_band_info "${bin_4g_5g}" "${support_5g_band}" "5G")
#生成网络偏好
local network_prefer="{
\"network_prefer\":[
{\"2G\":{
\"enable\":$network_prefer_2g,
\"band\":$band_2g_info
}},
{\"3G\":{
\"enable\":$network_prefer_3g,
\"band\":$band_3g_info
}},
{\"4G\":{
\"enable\":$network_prefer_4g,
\"band\":$band_4g_info
}},
{\"5G\":{
\"enable\":$network_prefer_5g,
\"band\":$band_5g_info
}}
]
}"
echo "${network_prefer}"
}
#设置网络偏好
# $1:AT串口
# $2:网络偏好配置
tdtech_set_network_prefer()
{
local at_port="$1"
local network_prefer="$2"
#获取启用的网络偏好
local enable_5g=$(echo "$network_prefer" | jq -r '.["5G"].enable')
local enable_4g=$(echo "$network_prefer" | jq -r '.["4G"].enable')
local enable_3g=$(echo "$network_prefer" | jq -r '.["3G"].enable')
local enable_2g=$(echo "$network_prefer" | jq -r '.["2G"].enable')
#获取网络偏好配置
local network_prefer_config
[ "$enable_5g" = "1" ] && network_prefer_config="${network_prefer_config}08"
[ "$enable_4g" = "1" ] && network_prefer_config="${network_prefer_config}03"
[ "$enable_3g" = "1" ] && network_prefer_config="${network_prefer_config}02"
[ "$enable_2g" = "1" ] && network_prefer_config="${network_prefer_config}01"
[ -z "$network_prefer_config" ] && network_prefer_config="99"
#设置模组
at_command='AT^SYSCFGEX="'${network_prefer_config}'",40000000,1,2,40000000,,'
sh ${SCRIPT_DIR}/modem_at.sh "${at_port}" "${at_command}"
}
#设置频段
# $1:AT串口
# $2:频段偏好配置
tdtech_set_band_prefer()
{
local at_port="$1"
local network_prefer="$2"
#获取选中的数量
local count=$(echo "$network_prefer" | grep -o "1" | wc -l)
#获取每个偏好的值
local network_prefer_5g=$(echo "$network_prefer" | jq -r '.["5G"]')
local network_prefer_4g=$(echo "$network_prefer" | jq -r '.["4G"]')
local network_prefer_3g=$(echo "$network_prefer" | jq -r '.["3G"]')
local network_prefer_2g=$(echo "$network_prefer" | jq -r '.["2G"]')
#获取启用的网络偏好
local enable_5g=$(echo "$network_prefer_5g" | jq -r '.enable')
local enable_4g=$(echo "$network_prefer_4g" | jq -r '.enable')
local enable_3g=$(echo "$network_prefer_3g" | jq -r '.enable')
local enable_2g=$(echo "$network_prefer_2g" | jq -r '.enable')
#获取网络偏好配置和频段偏好配置
local network_prefer_config
local band_hex_2g_3g=0
local band_hex_4g_5g=0
[ "$enable_5g" = "1" ] && {
network_prefer_config="${network_prefer_config}08"
local band_tmp=$(echo "$network_prefer_5g" | jq -r '.band[]')
local i=0
local bands=$(echo "$band_tmp" | jq -r 'to_entries | .[] | .key')
#遍历band的值
for band in $bands; do
local value=$(echo "$network_prefer_5g" | jq -r '.band'"[$i].$band")
[ "$value" = "1" ] && {
#获取bit位
local bit=$(echo "$band" | sed 's/NR5G_N//g')
#获取值
local result=$(echo "obase=16; ibase=10; 2^($bit-1)" | bc)
band_hex_4g_5g=$(echo "obase=16; ibase=16; $band_hex_4g_5g + $result" | bc)
}
i=$((i+1))
done
}
[ "$enable_4g" = "1" ] && {
network_prefer_config="${network_prefer_config}03"
local band_tmp=$(echo "$network_prefer_4g" | jq -r '.band[]')
local i=0
local bands=$(echo "$band_tmp" | jq -r 'to_entries | .[] | .key')
#遍历band的值
for band in $bands; do
local value=$(echo "$network_prefer_4g" | jq -r '.band'"[$i].$band")
[ "$value" = "1" ] && {
#获取bit位
local bit=$(echo "$band" | sed 's/LTE_BC//g')
#获取值
local result=$(echo "obase=16; ibase=10; 2^($bit-1)" | bc)
band_hex_4g_5g=$(echo "obase=16; ibase=16; $band_hex_4g_5g + $result" | bc)
}
i=$((i+1))
done
}
[ "$enable_3g" = "1" ] && {
network_prefer_config="${network_prefer_config}02"
local band_tmp=$(echo "$network_prefer_3g" | jq -r '.band[]')
local i=0
local bands=$(echo "$band_tmp" | jq -r 'to_entries | .[] | .key')
#遍历band的值
for band in $bands; do
local value=$(echo "$network_prefer_3g" | jq -r '.band'"[$i].$band")
[ "$value" = "1" ] && {
#获取bit位
local bit=$(echo "$band" | sed 's/WCDMA_B//g')
#获取值
local result=$(echo "obase=16; ibase=10; 2^($bit+22-1)" | bc)
band_hex_2g_3g=$(echo "obase=16; ibase=16; $band_hex_2g_3g + $result" | bc)
}
i=$((i+1))
done
}
[ "$enable_2g" = "1" ] && {
network_prefer_config="${network_prefer_config}01"
local band_tmp=$(echo "$network_prefer_2g" | jq -r '.band[]')
local i=0
local bands=$(echo "$band_tmp" | jq -r 'to_entries | .[] | .key')
#遍历band的值
for band in $bands; do
# band_format=$(echo "$band" | sed 's/-/_/g')
local value=$(echo "$network_prefer_2g" | jq -r '.band'"[$i].$band")
[ "$value" = "1" ] && {
#获取bit位
local bit=$(tdtech_get_bit ${band})
#获取值
local result=$(echo "obase=16; ibase=10; 2^($bit-1)" | bc)
band_hex_2g_3g=$(echo "obase=16; ibase=16; $band_hex_2g_3g + $result" | bc)
}
i=$((i+1))
done
}
[ -z "$network_prefer_config" ] && network_prefer_config="99"
#设置模组
at_command='AT^SYSCFGEX="'${network_prefer_config}'",'"${band_hex_2g_3g},1,2,${band_hex_4g_5g},,"
sh ${SCRIPT_DIR}/modem_at.sh "${at_port}" "${at_command}"
}
#获取电压
# $1:AT串口
tdtech_get_voltage()
{
local at_port="$1"
# #Voltage电压
# at_command="AT+ADCREAD=0"
# local voltage=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "+ADCREAD:" | awk -F' ' '{print $2}' | sed 's/\r//g')
# voltage=$(awk "BEGIN{ printf \"%.2f\", $voltage / 1000000 }" | sed 's/\.*0*$//')
# echo "${voltage}"
}
#获取温度
# $1:AT串口
tdtech_get_temperature()
{
local at_port="$1"
#Temperature温度
at_command="AT^CHIPTEMP?"
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "\^CHIPTEMP" | awk -F',' '{print $6}' | sed 's/\r//g')
local temperature
if [ -n "$response" ]; then
response=$(awk "BEGIN{ printf \"%.2f\", $response / 10 }" | sed 's/\.*0*$//')
temperature="${response}$(printf "\xc2\xb0")C"
else
temperature="NaN $(printf "\xc2\xb0")C"
fi
echo "${temperature}"
}
#获取连接状态
# $1:AT串口
# $2:连接定义
tdtech_get_connect_status()
{
local at_port="$1"
local define_connect="$2"
#默认值为1
[ -z "$define_connect" ] && {
define_connect="1"
}
at_command="AT+CGPADDR=${define_connect}"
local ipv4=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+CGPADDR: " | awk -F'"' '{print $2}')
local not_ip="0.0.0.0"
#设置连接状态
local connect_status
if [ -z "$ipv4" ] || [[ "$ipv4" = *"$not_ip"* ]]; then
connect_status="disconnect"
else
connect_status="connect"
fi
echo "${connect_status}"
}
#基本信息
tdtech_base_info()
{
debug "TDTech base info"
#Name名称
at_command="AT+CGMM"
name=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Manufacturer制造商
at_command="AT+CGMI"
manufacturer=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Revision固件版本
at_command="AT+CGMR"
revision=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Mode拨号模式
mode=$(tdtech_get_mode ${at_port} ${platform} | tr 'a-z' 'A-Z')
#Temperature温度
temperature=$(tdtech_get_temperature ${at_port})
}
#获取SIM卡状态
# $1:SIM卡状态标志
tdtech_get_sim_status()
{
local sim_status
case $1 in
"") sim_status="miss" ;;
*"ERROR"*) sim_status="miss" ;;
*"READY"*) sim_status="ready" ;;
*"SIM PIN"*) sim_status="MT is waiting SIM PIN to be given" ;;
*"SIM PUK"*) sim_status="MT is waiting SIM PUK to be given" ;;
*"PH-FSIM PIN"*) sim_status="MT is waiting phone-to-SIM card password to be given" ;;
*"PH-FSIM PIN"*) sim_status="MT is waiting phone-to-very first SIM card password to be given" ;;
*"PH-FSIM PUK"*) sim_status="MT is waiting phone-to-very first SIM card unblocking password to be given" ;;
*"SIM PIN2"*) sim_status="MT is waiting SIM PIN2 to be given" ;;
*"SIM PUK2"*) sim_status="MT is waiting SIM PUK2 to be given" ;;
*"PH-NET PIN"*) sim_status="MT is waiting network personalization password to be given" ;;
*"PH-NET PUK"*) sim_status="MT is waiting network personalization unblocking password to be given" ;;
*"PH-NETSUB PIN"*) sim_status="MT is waiting network subset personalization password to be given" ;;
*"PH-NETSUB PUK"*) sim_status="MT is waiting network subset personalization unblocking password to be given" ;;
*"PH-SP PIN"*) sim_status="MT is waiting service provider personalization password to be given" ;;
*"PH-SP PUK"*) sim_status="MT is waiting service provider personalization unblocking password to be given" ;;
*"PH-CORP PIN"*) sim_status="MT is waiting corporate personalization password to be given" ;;
*"PH-CORP PUK"*) sim_status="MT is waiting corporate personalization unblocking password to be given" ;;
*) sim_status="unknown" ;;
esac
echo "${sim_status}"
}
#SIM卡信息
tdtech_sim_info()
{
debug "TDTech sim info"
#SIM SlotSIM卡卡槽
# at_command="AT^SIMSLOT?"
# response=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "\^SIMSLOT:" | awk -F': ' '{print $2}' | awk -F',' '{print $2}')
# if [ "$response" != "0" ]; then
# sim_slot="1"
# else
# sim_slot="2"
# fi
sim_slot="1"
#IMEI国际移动设备识别码
at_command="AT+CGSN"
imei=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | sed -n '2p' | sed 's/\r//g')
#SIM StatusSIM状态
at_command="AT+CPIN?"
sim_status_flag=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+CPIN: ")
sim_status=$(tdtech_get_sim_status "$sim_status_flag")
if [ "$sim_status" != "ready" ]; then
return
fi
#ISP互联网服务提供商
at_command="AT+COPS?"
isp=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+COPS" | awk -F'"' '{print $2}')
# if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
# isp="中国移动"
# elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
# isp="中国联通"
# elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
# isp="中国电信"
# fi
#SIM NumberSIM卡号码手机号
at_command="AT+CNUM"
sim_number=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+CNUM: " | awk -F'"' '{print $2}')
[ -z "$sim_number" ] && {
sim_number=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+CNUM: " | awk -F'"' '{print $4}')
}
#IMSI国际移动用户识别码
at_command="AT+CIMI"
imsi=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#ICCID集成电路卡识别码
at_command="AT+ICCID"
iccid=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep -o "+ICCID:[ ]*[-0-9]\+" | grep -o "[-0-9]\{1,4\}")
}
#获取网络类型
# $1:网络类型数字
tdtech_get_rat()
{
local rat
case $1 in
"0"|"1"|"3"|"8") rat="GSM" ;;
"2"|"4"|"5"|"6"|"9"|"10") rat="WCDMA" ;;
"7") rat="LTE" ;;
"11"|"12") rat="NR" ;;
esac
echo "${rat}"
}
#获取信号强度指示4G
# $1:信号强度指示数字
tdtech_get_rssi()
{
local rssi
case $1 in
"99") rssi="unknown" ;;
* ) rssi=$((2 * $1 - 113)) ;;
esac
echo "$rssi"
}
#网络信息
tdtech_network_info()
{
debug "TDTech network info"
#Connect Status连接状态
connect_status=$(tdtech_get_connect_status ${at_port} ${define_connect})
if [ "$connect_status" != "connect" ]; then
return
fi
#Network Type网络类型
at_command="AT^SYSINFOEX"
network_type=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "\^SYSINFOEX:" | awk -F'"' '{print $4}')
[ -z "$network_type" ] && {
at_command='AT+COPS?'
local rat_num=$(sh ${SCRIPT_DIR}/modem_at.sh ${at_port} ${at_command} | grep "+COPS:" | awk -F',' '{print $4}' | sed 's/\r//g')
network_type=$(tdtech_get_rat ${rat_num})
}
#设置网络类型为5G时信号强度指示用RSRP代替
# at_command="AT+GTCSQNREN=1"
# sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command
#CSQ信号强度
at_command="AT+CSQ"
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "+CSQ:" | sed 's/+CSQ: //g' | sed 's/\r//g')
#RSSI4G信号强度指示
# rssi_num=$(echo $response | awk -F',' '{print $1}')
# rssi=$(tdtech_get_rssi $rssi_num)
#BER4G信道误码率
# ber=$(echo $response | awk -F',' '{print $2}')
# #PER信号强度
# if [ -n "$csq" ]; then
# per=$(($csq * 100/31))"%"
# fi
#AMBR最大比特率
at_command="AT^DHCP?"
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "\^DHCP:" | sed 's/\^DHCP: //g' | sed 's/\r//g')
ambr_ul_tmp=$(echo "$response" | awk -F',' '{print $8}')
ambr_dl_tmp=$(echo "$response" | awk -F',' '{print $7}')
[ -z "$ambr_ul_tmp" ] && {
at_command="AT^DHCPV6?"
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "\^DHCPV6:" | sed 's/\^DHCPV6: //g' | sed 's/\r//g')
ambr_ul_tmp=$(echo "$response" | awk -F',' '{print $8}')
ambr_dl_tmp=$(echo "$response" | awk -F',' '{print $7}')
}
#AMBR UL上行签约速率单位Mbps
ambr_ul=$(awk "BEGIN{ printf \"%.2f\", $ambr_ul_tmp / 1000000 }" | sed 's/\.*0*$//')
#AMBR DL下行签约速率单位Mbps
ambr_dl=$(awk "BEGIN{ printf \"%.2f\", $ambr_dl_tmp / 1000000 }" | sed 's/\.*0*$//')
# #速率统计
# at_command='AT^DSFLOWQRY'
# response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "\^DSFLOWRPT:" | sed 's/\^DSFLOWRPT: //g' | sed 's/\r//g')
# #当前上传速率单位Byte/s
# tx_rate=$(echo $response | awk -F',' '{print $1}')
# #当前下载速率单位Byte/s
# rx_rate=$(echo $response | awk -F',' '{print $2}')
}
#获取NR子载波间隔
# $1:NR子载波间隔数字
tdtech_get_scs()
{
local scs
case $1 in
"0") scs="15" ;;
"1") scs="30" ;;
"2") scs="60" ;;
"3") scs="120" ;;
"4") scs="240" ;;
*) scs=$(awk "BEGIN{ print 2^$1 * 15 }") ;;
esac
echo "$scs"
}
#获取频段
# $1:网络类型
# $2:频段数字
tdtech_get_band()
{
local band
case $1 in
"GSM")
case $2 in
"0") band="850" ;;
"1") band="900" ;;
"2") band="1800" ;;
"3") band="1900" ;;
esac
;;
"WCDMA") band="$2" ;;
"LTE") band="$(($2-100))" ;;
"NR") band="$2" band="${band#*50}" ;;
esac
echo "$band"
}
#小区信息
tdtech_cell_info()
{
debug "TDTech cell info"
at_command="AT^MONSC"
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "\^MONSC:" | sed 's/\^MONSC: //')
local rat=$(echo "$response" | awk -F',' '{print $1}')
case $rat in
"NR")
network_mode="NR5G-SA Mode"
nr_mcc=$(echo "$response" | awk -F',' '{print $2}')
nr_mnc=$(echo "$response" | awk -F',' '{print $3}')
nr_arfcn=$(echo "$response" | awk -F',' '{print $4}')
nr_scs_num=$(echo "$response" | awk -F',' '{print $5}')
nr_scs=$(tdtech_get_scs ${nr_scs_num})
nr_cell_id=$(echo "$response" | awk -F',' '{print $6}')
nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $7}')
nr_tac=$(echo "$response" | awk -F',' '{print $8}')
nr_rsrp=$(echo "$response" | awk -F',' '{print $9}')
nr_rsrq=$(echo "$response" | awk -F',' '{print $10}')
nr_sinr=$(echo "$response" | awk -F',' '{print $11}' | sed 's/\r//g')
;;
"LTE-NR")
network_mode="EN-DC Mode"
#LTE
endc_lte_mcc=$(echo "$response" | awk -F',' '{print $2}')
endc_lte_mnc=$(echo "$response" | awk -F',' '{print $3}')
endc_lte_earfcn=$(echo "$response" | awk -F',' '{print $4}')
endc_lte_cell_id=$(echo "$response" | awk -F',' '{print $5}')
endc_lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $6}')
endc_lte_tac=$(echo "$response" | awk -F',' '{print $7}')
endc_lte_rsrp=$(echo "$response" | awk -F',' '{print $8}')
endc_lte_rsrq=$(echo "$response" | awk -F',' '{print $9}')
endc_lte_rxlev=$(echo "$response" | awk -F',' '{print $10}' | sed 's/\r//g')
#NR5G-NSA
endc_nr_mcc=$(echo "$response" | awk -F',' '{print $2}')
endc_nr_mnc=$(echo "$response" | awk -F',' '{print $3}')
endc_nr_arfcn=$(echo "$response" | awk -F',' '{print $4}')
endc_nr_scs_num=$(echo "$response" | awk -F',' '{print $5}')
endc_nr_scs=$(tdtech_get_scs ${nr_scs_num})
endc_nr_cell_id=$(echo "$response" | awk -F',' '{print $6}')
endc_nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $7}')
endc_nr_tac=$(echo "$response" | awk -F',' '{print $8}')
endc_nr_rsrp=$(echo "$response" | awk -F',' '{print $9}')
endc_nr_rsrq=$(echo "$response" | awk -F',' '{print $10}')
endc_nr_sinr=$(echo "$response" | awk -F',' '{print $11}' | sed 's/\r//g')
;;
"LTE"|"eMTC"|"NB-IoT")
network_mode="LTE Mode"
lte_mcc=$(echo "$response" | awk -F',' '{print $2}')
lte_mnc=$(echo "$response" | awk -F',' '{print $3}')
lte_earfcn=$(echo "$response" | awk -F',' '{print $4}')
lte_cell_id=$(echo "$response" | awk -F',' '{print $5}')
lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $6}')
lte_tac=$(echo "$response" | awk -F',' '{print $7}')
lte_rsrp=$(echo "$response" | awk -F',' '{print $8}')
lte_rsrq=$(echo "$response" | awk -F',' '{print $9}')
lte_rxlev=$(echo "$response" | awk -F',' '{print $10}' | sed 's/\r//g')
;;
"WCDMA"|"TD-SCDMA"|"UMTS")
network_mode="WCDMA Mode"
wcdma_mcc=$(echo "$response" | awk -F',' '{print $2}')
wcdma_mnc=$(echo "$response" | awk -F',' '{print $3}')
wcdma_arfcn=$(echo "$response" | awk -F',' '{print $4}')
wcdma_psc=$(echo "$response" | awk -F',' '{print $5}')
wcdma_cell_id=$(echo "$response" | awk -F',' '{print $6}')
wcdma_lac=$(echo "$response" | awk -F',' '{print $7}')
wcdma_rscp=$(echo "$response" | awk -F',' '{print $8}')
wcdma_rxlev=$(echo "$response" | awk -F',' '{print $9}')
wcdma_ecn0=$(echo "$response" | awk -F',' '{print $10}')
wcdma_drx=$(echo "$response" | awk -F',' '{print $11}')
wcdma_ura=$(echo "$response" | awk -F',' '{print $12}' | sed 's/\r//g')
;;
"GSM")
network_mode="GSM Mode"
gsm_mcc=$(echo "$response" | awk -F',' '{print $2}')
gsm_mnc=$(echo "$response" | awk -F',' '{print $3}')
gsm_band_num=$(echo "$response" | awk -F',' '{print $4}')
gsm_band=$(tdtech_get_band "GSM" ${gsm_band_num})
gsm_arfcn=$(echo "$response" | awk -F',' '{print $5}')
gsm_bsic=$(echo "$response" | awk -F',' '{print $6}')
gsm_cell_id=$(echo "$response" | awk -F',' '{print $7}')
gsm_lac=$(echo "$response" | awk -F',' '{print $8}')
gsm_rxlev=$(echo "$response" | awk -F',' '{print $9}')
gsm_rx_quality=$(echo "$response" | awk -F',' '{print $10}')
gsm_ta=$(echo "$response" | awk -F',' '{print $11}' | sed 's/\r//g')
;;
esac
}
#获取鼎桥模组信息
# $1:AT串口
# $2:平台
# $3:连接定义
get_tdtech_info()
{
debug "get tdtech info"
#设置AT串口
at_port="$1"
platform="$2"
define_connect="$3"
#基本信息
tdtech_base_info
#SIM卡信息
tdtech_sim_info
if [ "$sim_status" != "ready" ]; then
return
fi
#网络信息
tdtech_network_info
if [ "$connect_status" != "connect" ]; then
return
fi
#小区信息
tdtech_cell_info
}