# DW5809e Dell Wireless 5809e Gobi 4G LTE Mobile Broadband Card (EM7305)
# DW5811e Snapdragon X7 LTE (EM7455B)
# Sierra Wireless EM7455

O=$(sms_tool -d $DEVICE at "at!gstatus?")

if [ "x$MODE_NUM" = "x7" ]; then
	T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
	if [ -n "$T" ]; then
		T_DEC=$(printf "%d" "0x$T")
		T_HEX="$T"
	fi

	T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
	[ -n "$T" ] && RSSI="$(echo "${T// //}" | sed 's,/.*,,')"
	T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs)
	[ -n "$T" ] && RSRP="$(echo "${T// //}" | sed 's,/.*,,')"
	T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
	[ -n "$T" ] && RSRQ="$T"
	T=$(echo "$O" | awk '/^SINR/ {print $3}')
	[ -n "$T" ] && SINR="$T"

	T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
	if [ -n "$T" ]; then
		T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
		PBAND="$(band4g ${T/B/}) @${T1} MHz"
		MODE="$MODE $(band4g ${T/B/})"
	fi

	T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}')
	if [ -n "$T" ]; then
		T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}')
		if [ -n "$T1" ]; then
			S1BAND="$(band4g ${T/B/}) @${T1#bw:} MHz"
		else
			S1BAND="$(band4g ${T/B/})"
		fi
		MODE="${MODE/LTE/LTE_A} / $(band4g ${T/B/})"

		T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}')
		[ -n "$T" ] && EARFCN="${T#chan:}"

		T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs)
		[ -n "$T" ] && RSSI=$(echo "${T// //}" | sed 's,/.*,,')
		T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs)
		[ -n "$T" ] && RSRP=$(echo "${T// //}" | sed 's,/.*,,')
	fi
fi

T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | xargs)
if [ -n "$T" ]; then
	TEMP="$T &deg;C"
fi

MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')

# Modem
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
FW=$(echo $FWA | sed s/"AT+CGMR "//)

MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)

MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",")
MODEL="$MODELBCUT "$MODELACUT

# International Mobile Equipment Identity (IMEI)
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
if [ -n "$NR_I" ]; then
	NR_IMEI="$NR_I"
fi

# International Mobile Subscriber Identity (IMSI)
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
if [ -n "$NR_C" ]; then
	NR_IMSI="$NR_C"
fi

#  Integrated Circuit Card Identifier (ICCID)
O=$(sms_tool -d $DEVICE at "AT+ICCID")
NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs)
if [ -n "$NR_D" ]; then
	NR_ICCID="$NR_D"
fi

# Protocol
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
PVCUT=$(echo $PV | awk -F 'Vendor=413c ProdID=81b6' '{print $2}' | cut -c-1290)

if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
then
    PROTO="qmi"
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
then
    PROTO="mbim"
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
then
    PROTO="ecm"
fi
