Alignment Script that "reads back" RSSI with Beeps - MikroTik Script RouterOS
How To Alignment Script that "reads back" RSSI with Beeps..
:local lnsdelaytime 230ms;
:local lnsintname "wlan1";
:local lnsbeepfreq 800;
:local tensbeepfreq 1200;
:local onesbeepfreq 1100;
:local lnsrunningtime 10m;
:local lnsbeeptime 10m;
:local lnsrunbeepdiff;
:set lnsrunbeepdiff ($lnsrunningtime - $lnsbeeptime);
:delay 150ms;
:beep frequency=($lnsbeepfreq - 300) length=150ms;
:delay 150ms;
:beep frequency=($lnsbeepfreq - 200) length=150ms;
:delay 550ms;
:while ($lnsrunningtime > 0s) do={
/interface wireless monitor "$lnsintname" once do={
:put "Monitoring....";
:if ($"status" = "connected-to-ess") do={
:local rssi ($"signal-strength");
:put $"signal-strength";
:local tensBeeps (tonum( $rssi / 10 ) * -1 );
:put $tensBeeps;
:local onesBeeps (($rssi*-1) - ($tensBeeps * 10))
:put $onesBeeps;
:for i from=1 to=($tensBeeps) do={
:beep frequency=(-($rssi*$rssi)/10+$tensbeepfreq) length=($lnsdelaytime / 2);
:delay $lnsdelaytime;
:set lnsrunningtime ($lnsrunningtime - $lnsdelaytime);
}
:delay 400ms;
:set lnsrunningtime ($lnsrunningtime - 400ms);
:if ($onesBeeps = 0) do={
:beep frequency=(-($rssi * $rssi)/10 + $onesbeepfreq) length=($lnsdelaytime*2);
:delay $lnsdelaytime;
:set lnsrunningtime ($lnsrunningtime - ($lnsdelaytime));
} else={
:for i from=1 to=($onesBeeps) do={
:beep frequency=(-($rssi * $rssi)/10 + $onesbeepfreq) length=($lnsdelaytime / 2);
:delay $lnsdelaytime;
:set lnsrunningtime ($lnsrunningtime - $lnsdelaytime);
}
}
:delay 1s;
} else={
:if ($"status" = "searching-for-network") do={
:delay 200ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=$lnsbeepfreq length=150ms;
}
:delay 200ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq + 100) length=125ms;
}
:delay 150ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq + 200) length=100ms;
}
:delay 300ms;
:set lnsrunningtime ($lnsrunningtime - 750ms);
} else={
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq - 150) length=150ms;
}
:delay 150ms;
:if ($lnsrunningtime > $lnsrunbeepdiff) do={
:beep frequency=($lnsbeepfreq - 350) length=100ms;
}
:delay 1550ms;
}
}
}
:put $lnsrunningtime;
}
:beep frequency=($lnsbeepfreq - 200) length=150ms;
:delay 150ms;
:beep frequency=($lnsbeepfreq - 300) length=150ms;
:delay 150ms;