iface=$1

channel=""
ess=""
bss=""
wps=""
sec=""
encryption=""
mgmt=""
mode=""
noise=""
rssi=""
signal=""

print=0
set_address=0
set_signal=0
set_noise=0

echo $(iwlist $iface scanning | grep Cell |wc -l)

ret=$(iwlist $iface scanning last)

for line in $ret; do
	if [ $set_address -eq "1" ]; then
		bss="$line"
		set_address=0
		continue
	fi
	if [ $set_signal -eq "1" ]; then
		signal=${line:6}
		set_signal=0
		continue
	fi
	if [ $set_noise -eq "1" ]; then
		noise=${line:6}
		set_noise=0
		continue
	fi
	case "$line" in
		Cell)
			if [ $print -eq "1" ]; then
				rssi=$((signal-noise))
				if [ -z $ess ]; then
					ess="-"
				fi
				echo "$channel,$ess,$bss,$wps,$sec,$encryption,$mgmt,$mode,$noise,$rssi"
				unset channel ess bss wps sec encryption mgmt mode noise rssi
			else
				print=1
			fi
		;;
		Address*)
			set_address=1
		;;
		ESSID*)
			ess=${line:6}
		;;
		Signal)
			set_signal=1
		;;
		Noise)
			set_noise=1
		;;
		Frequency*)
			channel=${line:10}
			channel=${channel//.}
			while [ ${#channel} -lt 4 ];
			do
				channel=$channel"0"
			done
		;;
		*)
			wps="-"
			sec="-"
			encryption="-"
			mgmt="-"
			mode="-"
		;;
	esac
	
done
if [ -z $ess ]; then
	ess="-"
fi
rssi=$((signal-noise))
echo "$channel,$ess,$bss,$wps,$sec,$encryption,$mgmt,$mode,$noise,$rssi"
