[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