2023-12-24 15:40:41 +08:00

165 lines
3.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
current_dir="$(dirname "$0")"
source "$current_dir/modem_debug.sh"
source "$current_dir/quectel.sh"
source "$current_dir/fibocom.sh"
source "$current_dir/simcom.sh"
#初值化数据结构
init_modem_info()
{
#基本信息
name='' #名称
manufacturer='' #制造商
revision='-' #固件版本
at_port='-' #AT串口
mode='' #拨号模式
temperature="NaN $(printf "\xc2\xb0")C" #温度
update_time='' #更新时间
#SIM卡信息
isp="-" #运营商(互联网服务提供商)
imei='-' #IMEI
imsi='-' #IMSI
iccid='-' #ICCID
phone='-' #SIM卡号码手机号
#信号信息
net_type="-" #蜂窝网络类型
csq="" #CSQ
csq_per=""
ssi="" #信号强度
rssi="" #信号接收强度 RSSI
ECIO="-" #参考信号接收质量 RSRQ ecio
ECIO1=" " #参考信号接收质量 RSRQ ecio1
RSCP="-" #参考信号接收功率 RSRP rscp0
RSCP1=" " #参考信号接收功率 RSRP rscp1
SINR="-" #信噪比 SINR rv["sinr"]
NETMODE="-" #连接状态监控 rv["netmode"]
#基站信息
MCC=""
eNBID=""
TAC=""
cell_id=""
LBAND="-" #频段
CHANNEL="-" #频点
PCI="-" #物理小区标识
qos="" #最大Qos级别
}
#保存模块数据
info_to_json()
{
modem_info="{
\"manufacturer\":\"$manufacturer\",
\"revision\":\"$revision\",
\"at_port\":\"$at_port\",
\"mode\":\"$mode\",
\"temperature\":\"$temperature\",
\"update_time\":\"$update_time\",
\"isp\":\"$isp\",
\"imei\":\"$imei\",
\"imsi\":\"$imsi\",
\"iccid\":\"$iccid\",
\"phone\":\"$phone\",
\"net_type\":\"$net_type\",
\"csq\":\"$csq\"
}"
}
# echo $CSQ_RSSI
# echo $ECIO #参考信号接收质量 RSRQ ecio
# echo $ECIO1 #参考信号接收质量 RSRQ ecio1
# echo $RSCP #参考信号接收功率 RSRP rscp0
# echo $RSCP1 #参考信号接收功率 RSRP rscp1
# echo $SINR #信噪比 SINR rv["sinr"]
# echo $NETMODE #连接状态监控 rv["netmode"]
# echo '---------------------------------'
# #基站信息
# echo $COPS_MCC #MCC
# echo $$COPS_MNC #MNC
# echo $LAC #eNB ID
# echo '' #LAC_NUM
# echo $RNC #TAC
# echo '' #RNC_NUM
# echo $CID
# echo '' #CID_NUM
# echo $LBAND
# echo $CHANNEL
# echo $PCI
# echo $MODTYPE
# echo $QTEMP
#获取模组信息
get_modem_info()
{
update_time=$(date +"%Y-%m-%d %H:%M:%S")
debug "检查模块的AT串口"
#获取模块AT串口
if [ -z "$at_port" ]; then
debug "模块0没有找到AT串口"
return
fi
debug "检查SIM状态"
local sim_status=$(echo `sh $current_dir/modem_at.sh $at_port "AT+CPIN?"`)
local sim_error=$(echo "$sim_status" | grep "ERROR")
if [ -n "$sim_error" ]; then
debug "未插入SIM卡"
sleep 1s
return
fi
local sim_ready=$(echo "$sim_status" | grep "READY")
if [ -n "$sim_ready" ]; then
debug "SIM卡正常"
else
debug "SIM卡被锁定"
sleep 1s
return
fi
debug "根据模块类型开始采集数据"
#更多信息获取
case $manufacturer in
"quectel") get_quectel_info $at_port ;;
"fibocom") get_fibocom_info $at_port ;;
"simcom") get_simcom_info $at_port ;;
"*") debug "未适配该模块" ;;
esac
#获取更新时间
update_time=$(date +"%Y-%m-%d %H:%M:%S")
}
#获取模组数据信息
# $1:AT串口
# $2:制造商
modem_info()
{
#初值化模组信息
debug "初值化模组信息"
init_modem_info
debug "初值化模组信息完成"
#获取模组信息
at_port=$1
manufacturer=$2
debug "获取模组信息"
get_modem_info
#整合模块信息
info_to_json
echo $modem_info
#移动网络联网检查
# checkMobileNetwork
}
modem_info $1 $2