modem_data(){
	# hwinfo
	MANUF=$(echo "$O" | grep -i Manufacturer | sed -n 's/.*Manufacturer: *\([A-Za-z0-9]*\).*/\1/p')
	MODEL=$(echo "$O" | grep -i Model | sed -n 's/.*Model: *\([A-Za-z0-9]*\).*/\1/p')
	DEVICE="$MANUF $MODEL"
	FW=$(echo "$O" | grep -A2 -i $MANUF | tail -1)
	ICCID=$(echo "$O" | awk -F [:] '/ICCID:/{gsub("\r","");print $2}')
	IMEI=$(echo "$O" | grep -A1 -i ICCID | tail -1)
	IMSI=$(echo "$O" | grep -A2 -i ICCID | tail -1)
	generic_data
	if [ "$MODE" = "LTE" ]; then
		LAC=$(echo "$O" | awk -F [,] '/\+CEREG/{gsub("\"","");print $3}')
		CID=$(echo "$O" | awk -F [,] '/\+CEREG/{gsub("\"","");print $5}')
		EARFCN=$(echo "$O" | awk -F [\:/] '/ARFCN/{gsub(" ","", $3); print $3}' | head -1)
		PCI=$(echo "$O" | awk -F [\(,\)] '/PCI/{print $4}')
		RSRP=$(echo "$O" | awk '/^RSRP/{gsub("dBm",""); printf "%.0f\n", $2}' | head -1)
		CSQ_RSSI=$(echo "$O" | awk '/^RSSI/{gsub("dBm",""); printf "%.0f\n", $2}' | head -1)
		RSRQ=$(echo  "$O" | awk '/^RSRQ/{gsub("dB",""); printf "%.0f\n", $2}')
		SINR=$(echo  "$O" | awk '/^RS-SINR/{gsub("dB",""); printf "%.0f\n", $2}')
		if [ ! $SINR ]; then
			SINR=$(echo  "$O" | awk '/^RS-SNR/{gsub("dB",""); printf "%.0f\n", $2}')
		fi
		ENBx=$(echo $CID | sed -e 's/..$//')
		CELL=$(printf %d 0x${CID: -2})
		ENBID=$(printf %d 0x$ENBx)
		BWDx=$(echo "$O" | awk '/PCC info/{printf "%.0f\n",$8}')
		LTE_CA=$(echo "$O" | awk '/SCC\d info:/{print $0}' | wc -l)
		case $BWDx in
			3) BWDL=1 ;;
			5) BWDL=2 ;;
			10) BWDL=3 ;;
			15) BWDL=4 ;;
			20) BWDL=5 ;;
		esac
		if [ $LTE_CA -ge 1 ]; then
			CA=$(echo "$O" | awk '/SCC\d info:/{print $5}')
			for cc in $CA; do
				SC=$(echo $cc | sed -e 's/LTE_B//g' -e 's/.$//')
				SCC="$SCC+$SC"
			done
			bw=$(echo "$O" |awk '/SCC\d info:/{printf "%.0f\n",$8}')
			for bwc in $bw; do
				bwcc="$bwcc+$bwc"
			done
			BWCA=$(($BWDx$bwcc))
			unset BWDx CA bwcc bwc
		fi
	else
		LAC=$(echo "$O" | awk -F [,] '/\+CREG/{gsub("\"","");print $3}')
		CID=$(echo "$O" | awk -F [,] '/\+CREG/{gsub("\"","");print $4}')
		EARFCN=$(echo "$O" | awk -F [\:/] '/Active channel/{gsub(" ","", $2); print $2}')
		RSCP=$(echo "$O" | awk -F [\:\ ,\)/] '/RSCP/{gsub("dBm|)",""); printf "%.0f\n", $7}')
		CSQ_RSSI=$(echo "$O" | awk -F [:,] '/QCSQ/{print $2}')
		SINR=$(echo "$O" | awk -F [:,] '/QCSQ/{print $3}') 
		if [ $SINR -le -24 ]; then				    
			SINR=-24			    
		elif [ $SINR -ge 0 ]; then				      
			SINR=0									
		fi
		
	fi

	CHIPTEMP=$(echo "$O" | awk -F [:] '/^PA|xo_therm_buf:/{gsub("C", ""); print $2}')
}
