165 lines
3.7 KiB
Bash
Executable File
165 lines
3.7 KiB
Bash
Executable File
#!/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 |