[Berlin-wireless] cca script
Marco Tidow
martidow
Sa Dez 1 16:36:48 CET 2007
On Fri, Nov.30. 11:38 +0100, Jens Nachtigall wrote:
> Hallo,
>
> wie wurde das gemessen? Meines Wissens kann den CCA-Zustand der wlan-Karte
> nicht so einfach pollen, zumindest nicht bei atheros oder broadcom. Hast Du
> einen link zum skript?
Hallo, keine Lust in den Monats-Archiven dieser Liste zu grep'n? :-) mee too,
hintendran das damals gepostete teil, Idee stammte von Ropf + ein paar minutes
scripten by me.
die grenzen liegen im sequenziellen
nacheinander durch die channels, gibt eben nur ein receiver-device.
deshalb laesst sich per argument eine liste channels vorgeben, damit wirds
"zeitnaher" (e.g. aufruf per scriptname '9 10 11')
hint: in japanesistan zeigt's default-maessig auch channel 14 inkl.
(tatsaechlich aendern sich die unteren channels in der erwaehnten situation
bei jedem durchlauf, kein wifi-transfer ist permanent aktiv, und die luecken
"erwischt" das durch-sample'n der channels eben irgendwann auch;
...waehrend im bereich 7..13 die balken einfach konstant
stehenblieben; no kein stream, ein plain analog-modulierbarer
hf-traeger, im erwaehnten fall allerdings nur als stoersender eingesetzt)
#! /bin/sh --
channels="${1:-1 2 3 4 5 6 7 8 9 10 11 12 13 14}"
duration=100 # per channel, in 1024 usec units
# time to wait until sampling-cycle should have finished
i=0; for c in $channels; do i=$((i+1)); done
interval=$(( (i * duration * 103) /102400 +1))
Messung="wl rm_req -p -d $duration"
for ch in $channels; do
Messung="$Messung cca -c $ch"
done
bar='========';
ibar=' ';
bar="$bar$bar$bar$bar$bar$bar$bar$bar$ibar$ibar$ibar$ibar$ibar$ibar$ibar$ibar"
clear
yy=0
export yy
while :; do
mok=$($Messung) # invoke new cycle
sleep $interval
#clear
echo -e -n "\x1b\x5b\x3b\x31\x48" # vt1xx a like only
echo "CCA - zeitliche Belegung des Spektrums - ropf 2007, mt 2007 (stop w/ ^C)"
echo -e "\n Kanal \t Belegung \n"
report="$(wl rm_rep)"
echo "$report"| while read a b c d; do
case "$a" in
'channel') ch="$c";;
'Carrier')
xx="$c"
yy=$(($xx / 4))
echo -e "$ch \t$xx \t/255\t|$(exec expr substr "$bar" $((65-$yy)) 63)|"
;;
*) ;;
esac
done
done
Mehr Informationen über die Mailingliste Berlin