# STYX modems
function modem_data(){
    generic_data
    # hwinfo
    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 -A3 -i $FAMILY | tail -1)
    IMEI=$(echo "$O" | grep -A1 -i $ICCID | tail -1)
    # signal info
    if [ "$MODE" = "LTE" ]; then
        EARFCN=$(echo "$O" | awk -F: '/DL CHANNEL:/ {print $2}')
    	RSRP=$(echo "$O" | awk -F: '/RSRP:/ {print $2}')
    	SINR=$(echo "$O" | awk -F: '/SINR:/ {printf $2/5-20}')
    	CID=$(echo "$O"  | awk -F: '/CELL ID:/ {print $2}')
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	ENBx=$(echo $CID | sed -e 's/..$//')
    	CELL=$(printf %d 0x${CID: -2})
    	ENBID=$(printf %d 0x$ENBx)

    	RSRQ=$(echo "$O" | awk -F: '/RSRQ:/ {print $2}')
    	BWUL=$(echo "$O" | awk -F: '/UL CHANNEL:/ {print $2}')
    	BWDL=$(echo "$O" | awk -F: '/DL CHANNEL:/ {print $2}')
    elif [ "$MODE" = "WCDMA" ]; then
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	CID=$(echo "$O"  | awk -F: '/CELL ID:/ {print $2}')
    	EARFCN=$(echo "$O" | awk -F: '/DL CHANNEL:/ {print $2}')
    	ECIO=$(echo "$O" | awk -F: '/ECIO:/ {print $2}')
    	SINR=$ECIO
    elif [ "$MODE" = "HDR" ]; then
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	CID=$(echo "$O"  | awk -F: '/SECTOR ID:/ {print $2}')
    	SINR=$(echo "$O" | awk -F: '/SINR:/ {printf $2/5-20}')
    elif [ "$MODE" = "TDSCDMA" ]; then
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	CID=$(echo "$O"  | awk -F: '/CELL ID:/ {print $2}')
    elif [ "$MODE" = "GSM" ]; then
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	CID=$(echo "$O"  | awk -F: '/CELL ID:/ {print $2}')
    	ECIO=$(echo "$O" | awk -F: '/ECIO:/ {print $2}')
    	SINR=$ECIO
    else
    	LAC=$(echo "$O" | awk -F[,\ ] '/\+CREG:/{print $5}')
    	CID=$(echo "$O"  | awk -F: '/BASIC ID:/ {print $2}')
    	ECIO=$(echo "$O" | awk -F: '/ECIO:/ {print $2}')
    	SINR=$ECIO
    fi

    # TEMP -> according to documentation rev.1.0
    # the device does not provide temperature information.

    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
}
