#!/bin/bash

#
# This script automate the setup of QMI supported wwan devices.
#

# your cdc_wdm modem location
QMI_PORT="/dev/cdc-wdm0"
UBLOX_PORT="/dev/ttyACM0"

function led_init {
	echo 0 >  /sys/class/leds/uc8100me\:CEL1/brightness
	echo 0 >  /sys/class/leds/uc8100me\:CEL2/brightness
	echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
}

function qmi_strength {
    dbm=`cell_mgmt signal |  awk '{print $2}'`
	if [ x"$dbm" == x"" ]; then
		return
	fi
	
	if [ $dbm -ge -73 ]; then
#		'Excellent'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL3/brightness
	elif [ $dbm -ge -93 ]; then
#		'Good'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	elif [ $dbm -ge -109 ]; then
#		'Marginal'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	else
#		'No Signal'
		echo 0 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	fi
}

function wifi_strength {
    dbm=`wifi_mgmt signal | awk '{print $4}' | grep level`
	if [ x"$dbm" == x"" ]; then
		led_init
		return
	fi
	dbm=${dbm##*=}
	
	if [ $dbm -ge -60 ]; then
#		'Excellent'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL3/brightness
	elif [ $dbm -ge -75 ]; then
#		'Good'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 1 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	elif [ $dbm -ge -95 ]; then
#		'Marginal'
		echo 1 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	else
#		'No Signal'
		echo 0 >  /sys/class/leds/uc8100me\:CEL1/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL2/brightness
		echo 0 >  /sys/class/leds/uc8100me\:CEL3/brightness
	fi
}

led_init

if [ X"$1" == X"wifi" ]; then
	while [ true ];
	do
		# Check wlan device
		if ! ip link | grep wlan0 > /dev/null; then
			# off all LED and sleep 30 seconds, then check again.
			led_init
			sleep 30
			continue
		fi
		wifi_strength
		sleep 10
	done 
else
	cell_mgmt signal
	while [ true ];
	do
		# Cannot detect QMI device
		if [ ! -e $QMI_PORT ] && [ ! -e $UBLOX_PORT ]; then
			# off all LED and sleep 30 seconds, then check again.
			led_init
			sleep 30
			continue
		fi
		qmi_strength
		sleep 10
	done 
fi

