Otro script mas para la calibración de enlaces con RB411/RB433 (nuevamente el autor, Mark Shumate, aclara que no significa que solo funcionen con esos dos modelos, sino que eran los únicos con los que lo probó).
Este script reconoce 9 diferentes “niveles de señal” y 3 estados (connected, searching y other). Los niveles de señal indican el margen de SNR (relacion señal a ruido); mientras mayor sea el nivel de medida, mayor será el valor de SNR (8 es el mejor, 1 es el peor) y por lo tanto, mas LEDS se ven (solo se usan 4 para este script) y mas rápido se oyen los beeps.
Por otro lado, el user-LED (el LED verde por ensima del LED de power azul) se usa para mostrar el estado de asociación. Si la interfaz esta asociada, el LED es sólido; si la interfaz está buscando, el LED prende y apaga 2 veces por segundo, seguido de 3 beeps; por ultimo, si la interfaz esta en otro estado (deshabilitada, por ejemplo), el LED prende y apaga rápidamente cada 2 segundos, seguido de un doble beep.
Para el que quiera interpretar (y modificar) estos parámetros, la referencia usada es la siguiente:
El script es el siguiente (dejo los comentarios del autor para el que quiera modificar algún valor):
# default delaytime
:local lnsdelaytime “2000ms”;
# name of wireless interface to monitor (default wlan1)
:local lnsintname “wlan1″;
# frequency (as in pitch) of beep (recommend 700 - 1000)
:local lnsbeepfreq 800;
# Here, the different signal levels are assigned to
# signal-to-noise measurements. I haven’t really tweaked
# these yet to be in line with field testing, so they
# may need quite a bit of adjusting.
:local lnslevel8 70;
:local lnslevel7 65;
:local lnslevel6 60;
:local lnslevel5 55;
:local lnslevel4 50;
:local lnslevel3 45;
:local lnslevel2 40;
:local lnslevel1 35;
# The (veery approximate, heh) running time of the script
# is set here. I am too lazy right now to do this a
# better way…besides, who cares if the thing beeps or
# flashes a couple extra minutes right?!?
:local lnsrunningtime 60m;
# Here, we set how long the script will beep. NOTE that
# startup/shutdown tones will still be played.
# I like this feature when using an access point where
# the LEDs are clearly visible. If you don’t want this
# feature, set it to the same as $lnsrunningtime
# (above).
:local lnsbeeptime 10m;
# figure out beep cutoff time
:local lnsrunbeepdiff;
:set lnsrunbeepdiff ($lnsrunningtime - $lnsbeeptime);
# initialize LEDs, play starting tones
:delay 50ms;
:led user-led=no led4=no led3=no led2=no led1=no;
:delay 50ms;
:beep frequency=($lnsbeepfreq - 300) length=50ms;
:delay 50ms;
:beep frequency=($lnsbeepfreq - 200) length=50ms;
:delay 50ms;
# main monitoring cycle
:while ($lnsrunningtime > 0s) do={
/interface wireless monitor “$lnsintname” once do={
:if ($”status” = “connected-to-ess”) do={
:if ($”signal-to-noise” >= $lnslevel8) do={
:set lnsdelaytime 100ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:led user-led=yes led4=yes led3=yes led2=yes led1=yes;
:delay $lnsdelaytime;
}
:if ($”signal-to-noise” >= $lnslevel7 && $”signal-to-noise” < $lnslevel8) do={
:set lnsdelaytime 300ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:for i from=1 to=3 do={
:led user-led=yes led4=no led3=yes led2=yes led1=yes;
:delay ($lnsdelaytime / 6);
:led user-led=yes led4=yes led3=yes led2=yes led1=yes;
:delay ($lnsdelaytime / 6);
}
}
:if ($”signal-to-noise” >= $lnslevel6 && $”signal-to-noise” < $lnslevel7) do={
:set lnsdelaytime 500ms;
:led user-led=yes led4=no led3=yes led2=yes led1=yes;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:delay $lnsdelaytime;
}
:if ($”signal-to-noise” >= $lnslevel5 && $”signal-to-noise” < $lnslevel6) do={
:set lnsdelaytime 700ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:for i from=1 to=3 do={
:led user-led=yes led4=no led3=no led2=yes led1=yes;
:delay ($lnsdelaytime / 6);
:led user-led=yes led4=no led3=yes led2=yes led1=yes;
:delay ($lnsdelaytime / 6);
}
}
:if ($”signal-to-noise” >= $lnslevel4 && $”signal-to-noise” < $lnslevel5) do={
:set lnsdelaytime 900ms;
:led user-led=yes led4=no led3=no led2=yes led1=yes;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:delay $lnsdelaytime;
}
:if ($”signal-to-noise” >= $lnslevel3 && $”signal-to-noise” < $lnslevel4) do={
:set lnsdelaytime 1100ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:for i from=1 to=3 do={
:led user-led=yes led4=no led3=no led2=no led1=yes;
:delay ($lnsdelaytime / 6);
:led user-led=yes led4=no led3=no led2=yes led1=yes;
:delay ($lnsdelaytime / 6);
}
}
:if ($”signal-to-noise” >= $lnslevel2 && $”signal-to-noise” < $lnslevel3) do={
:set lnsdelaytime 1300ms;
:led user-led=yes led4=no led3=no led2=no led1=yes;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:delay $lnsdelaytime;
}
:if ($”signal-to-noise” >= $lnslevel1 && $”signal-to-noise” < $lnslevel2) do={
:set lnsdelaytime 1500ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:for i from=1 to=3 do={
:led user-led=yes led4=no led3=no led2=no led1=no;
:delay ($lnsdelaytime / 6);
:led user-led=yes led4=no led3=no led2=no led1=yes;
:delay ($lnsdelaytime / 6);
}
}
:if ($”signal-to-noise” < $lnslevel1) do={
:set lnsdelaytime 1700ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=($lnsdelaytime / 2);
}
:led user-led=yes led4=no led3=no led2=no led1=no;
:delay $lnsdelaytime;
}
} else={
:if ($”status” = “searching-for-network”) do={
:set lnsdelaytime 2000ms;
:led user-led=no led4=no led3=no led2=no led1=no;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=100ms;
}
:delay 100ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq + 100) length=75ms;
}
:delay 75ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq + 200) length=50ms;
}
:delay 50ms;
:for i from=1 to=4 do={
:led user-led=no;
:delay ($lnsdelaytime / 8 )
:led user-led=yes;
:delay ($lnsdelaytime / 8 )
}
:set lnsdelaytime ($lnsdelaytime + (50ms + 75ms + 100ms));
} else={
:set lnsdelaytime 2000ms;
:led user-led=no led4=no led3=no led2=no led1=no;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq - 150) length=150ms;
}
:delay 150ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq - 350) length=100ms;
}
:delay 100ms;
:for i from=1 to=4 do={
:led user-led=yes;
:delay 50ms;
:led user-led=no;
:delay 50ms;
}
:delay 1550ms;
}
}
}
:set lnsrunningtime (”$lnsrunningtime” - “$lnsdelaytime”);
}
# shut off LEDs, play shutdown tones
:delay 50ms;
:led user-led=no led4=no led3=no led2=no led1=no;
:delay 50ms;
:beep frequency=($lnsbeepfreq - 200) length=50ms;
:delay 50ms;
:beep frequency=($lnsbeepfreq - 300) length=50ms;
:delay 50ms;
Comentarios recientes