modem_data(){
	# hwdata
	MANUF=$(echo "$O" | grep -i $FAMILY)
        MODEL=$(echo "$O" | grep -A1 -i $FAMILY | tail -1)
        DEVICE="$MANUF $MODEL"
        FW=$(echo "$O" | grep -A2 -i $FAMILY | tail -1)
        ICCID=$(echo "$O" | awk -F [:] '/ICCID:/{gsub("\r","");print $2}')
        IMSI=$(echo "$O" | grep -A1 -i ICCID | tail -1)
        IMEI=$(echo "$O" | grep -A2 -i ICCID | tail -1)
	# Sierra cell data
	TECH=$(echo "$O" | awk -F[,\ ] '/^\*CNTI/ {print $3}' | sed 's|/|,|g')
	if [ "x$TECH" != "x" ]; then
		MODE="$TECH"
	fi
	if [ $MODE = "LTE" ]; then
		# Sierra 73XX series
		LAC=$(echo "$O" | awk -F [,] '/\+CEREG/{gsub("\"","");print $3}')
		CID=$(echo "$O" | awk -F [,] '/\+CEREG/{gsub("\"","");print $5}')
		EARFCN=$(echo "$O" | awk '/LTE Rx chan:/{print $4}')
		RSRP=$(echo "$O" |  awk '/RSRP/{print $3}' | head -1)
		RSRQ=$(echo "$O" | awk '/RSRQ/{printf "%.0f\n", $3}' |head -1)
		SINx=$(echo "$O" | awk '/SINR/{print $6}' |head -1)
		SINR=$(echo $SINx | awk '{printf "%.0f\n", $0}')
		CSQ_RSSI=$(echo "$O" | awk '/PCC RxM RSSI:/{print $4}')
		LTE_CA=$(echo "$O" | awk '/SCC RxM RSSI:/{print $0}' |wc -l)
		BWDx=$(echo "$O" | awk '/LTE bw/{print $6}')
		ENBx=$(echo $CID | sed -e 's/..$//')
		CELL=$(printf %d 0x${CID: -2})
		ENBID=$(printf %d 0x$ENBx)
		PCI=$(echo "$O" | awk -F [:,] '/QCRSRQ:/{print $2}')
		if [ $LTE_CA -ge 1 ]; then
			CA=$(echo "$O" | awk -F [:] '/LTE Scell band/{gsub("B","");print $3}')
			for cc in "$CA"; do
				SC=$cc
				SCC="$SCC+$cc"
			done
			bw=$(echo "$O" |awk '/LTE Scell bw:/{gsub("bw:","");print $3}')
			for bwc in $bw; do	
				bwcc="$bwcc+$bwc"
			done
			BWCA=$(($BWDx$bwcc))
		fi
		case $BWDx in
			3) BWDL=1 ;;
			5) BWDL=2 ;;
			10) BWDL=3 ;;
			15) BWDL=4 ;;
			20) BWDL=5 ;;
		esac
		# Sierra 74XX series
		if [ "x$SINx" = "x" ]; then
			SINR=$(echo "$O" | awk '/SINR/{printf "%.0f\n", $3}' |head -1)
			RSRP=$(echo "$O" |  awk '/RSRP/{print $7}' | head -1)
		fi
	else
		LAC=$(echo "$O" | awk -F [,] '/\+CGREG/{gsub("\"","");print $3}')
                CID=$(echo "$O" | awk -F [,] '/\+CGREG/{gsub("\"","");print $4}')
		EARFCN=$(echo "$O" | awk '/channel:/{print $3}')
		SINR=$(echo "$O" | awk -F [:,] '/QCSQ/{print $3}')
		if [ $SINR -ge 0 ]; then
			SINR=0
		elif [ $SINR -le -20 ]; then
			SINR=-20
		fi
	fi
	CHIPTEMP=$(echo "$O" | awk '/Temperature:/{print $5}')
	LAC_NUM=$(printf %d 0x$LAC)
	CID_NUM=$(printf %d 0x$CID)
	if [ $(uci -q get modeminfo.@general[0].decimail) = "1" ]; then
		LAC=$LAC_NUM
		CID=$CID_NUM
	fi
}
