#!/bin/sh
. $HOME/.sysfsrc

mode="$1"
if [ "$mode" = "" ]; then
    mode="list"
fi
case "$mode" in
     stop)
	dev="$2"
	case "$dev" in
	    bt)
		sudo sh -c "echo 1 > $sys_pm_bt/reset"
		sudo sh -c "echo 0 > $sys_pm_bt_power"
		;;
	    gsm)
		sudo sh -c "echo 0 > $sys_pm_gsm_power"
		;;
	    gps)
		sudo sh -c "echo 0 > $sys_pm_gps_power"
		if [ `cat $sys_pm_gps_power` = 1 ]; then
		    echo "error, retrying"
		    sudo sh -c "echo 1 > $sys_pm_gps_power"
		    sudo sh -c "echo 0 > $sys_pm_gps_power"
		fi
		;;
	    wifi)
		sudo sh -c "echo s3c2440-sdi > $sys_wlan_driver/unbind"
		;;
	    *)
		echo "unknown device $dev"
		exit 1
		;;
	    esac
	;;
    start)
	dev="$2"
	case "$dev" in
	    bt)
		sudo sh -c "echo 1 > $sys_pm_bt_power"
		sudo sh -c "echo 0 > $sys_pm_bt/reset"
		;;
	    gsm)
		sudo sh -c "echo 0 > $sys_pm_gsm/power_on"
		sudo sh -c "echo 1 > $sys_pm_gsm/power_on"
		sudo sh -c "echo 1 > $sys_pm_gsm/reset"
		;;
	    gps)
		sudo sh -c "echo 1 > $sys_pm_gps_power"
		;;
	    wifi)
		sudo sh -c "echo s3c2440-sdi > $sys_wlan_driver/unbind" 2> /dev/null
		sudo sh -c "echo s3c2440-sdi > $sys_wlan_driver/bind"
		;;
	    *)
		echo "unknown device $dev"
		exit 1
		;;
	    esac
	;;
	
     list)
	echo "bt `cat $sys_pm_bt_power`"
	echo "gsm `cat $sys_pm_gsm_power`"
	echo "gps `cat $sys_pm_gps_power`"
	#echo "wifi ?"
	wifi 2> /dev/null
	;;
    measure-consumption)
	echo turning $2 on
	$0 start $2
	for i in `seq 1 30`; do
	    echo $i `cat $sys_battery/current_now`
	    sleep 1
	done
	start=`cat $sys_battery/current_now`
	echo turning $2 off
	$0 stop $2
	for i in `seq 1 40`; do
	    echo $i `cat $sys_battery/current_now`
	    sleep 1
	done
	end=`cat $sys_battery/current_now`
	diff=`expr $start - $end`
	echo difference $diff
	;;
    *)
	echo "unknown operation $mode"
	exit 1
	;;
esac
