Možno sa Vám to hodí, ja som to ešte ani nemal čas odskúšať a asi už nebude ani dôvod. Mal som raz problémový spoj počas sneženia :-)
Do skriptíku zadáte radio-name pripojenej protistrany, prahovú hodnotu ccq (ľahko si pridáte i odstup signal-šum), počet cyklov, pauzu medzi cyklami a prahovú signálovú hodnotu protistrany. Po dosiahnutí prahových hodnôt sa nastaví default hodnota tx-power na karte, ku ktorej patrí radio-name protistrany.
Ak náhodou nebude protistrana bežať, tiež sa zmení tx-power na default z definovanej za "normálnych" podmienok.
#nazov radioname opacnej-pripojenej strany kontrolovaneho radia
:local radioname "horna-dolna-ap98-p2p"
:local mindbm -85
:local minccq 30
:local checkdelay 5
:local samplescount 4
:local wlanname
:local avgdbm 0
:local avgccq 0
:global fulltxpower
:set wlanname [/interface wire registr get [find radio-name="$radioname"] interface]
:if ([/int wir get [find name="$wlanname"] tx-power-mode ]="card-rates") do={
:set fulltxpower 0
} else={
:set fulltxpower 1
}
:if (![/interface wire get [find name=$wlanname] running]) do={
/interf wire set [find name=$wlanname] tx-power-mode="default"
:set fulltxpower 1
:log error "Zapinam plny vykon $wlanname pretoze rozhranie nebezi."
} else={
:for i from=1 to=$samplescount do={
:set avgdbm ($avgdbm+[:pick [/int wir reg get [find radio-name="$radioname"] tx-signal-strength] 0 ([:find [/int wir reg get [find radio-name="$radioname"] signal-strength] @]-3)])
:set avgccq ($avgccq+[/int wir reg get [find radio-name="$radioname"] tx-ccq])
:delay $checkdelay
}
:set avgdbm ($avgdbm/$samplescount)
:set avgccq ($avgccq/$samplescount)
:log warning "dbm: $avgdbm ccq: $avgccq pw: $fulltxpower"
:if ((fulltxpower=0) && ((avgdbm<=mindbm) || (avgccq<=minccq))) do={
/inte wir set [find name=$wlanname] tx-power-mode="default"
:set fulltxpower 1
:log warning "Zapinam plny vykon $wlanname pretoze priemerny dbm: $avgdbm a CCQ: $avgccq je pod nastavene hranice posledneho $samplescount cyklu."
} else={
:if (fulltxpower=1) do={
/int wire set [find name=$wlanname] tx-power-mode="card-rates"
:set fulltxpower 0
:log warning "Vypinam plny vykon $wlanname pretoze priemerny dbm: $avgdbm a CCQ: $avgccq je pod nastavene hranice posledneho $samplescount cyklu."
}
}
}