Mikrotik RouterOS ez 2014-10-03
如果不想要使用 MikroTik RouterOS Wireless 內建的 Frequency Auto 選項,想要自訂頻道又要避開訊號不好的頻道,可以採用 Script 方式達成以上條件。
以下提供我寫的 Script 供參考使用!
首先設定好 Wireless:
新增一個 Script 如下:
※$ccq < 20 表示訊號低於 20 就會變更頻率,數值可以自行調整。
※ freqList 是頻率列表,可以自行修改成想要使用那些頻率。
/interface wireless; :global waitingchange; :global ccqerror; :local interface [get number=0 ssid]; :local freqList; :if ([:find [get $interface channel-width] "above"] > 0) do={ :set freqList {2412;2417;2422;2427;2432;2437;2442}; } else { :set freqList {2432;2437;2442;2447;2452;2457;2462}; } monitor $interface once do={ :local freqListLen [:len $freqList]; :local pos [:find $freqList $frequency]; :local ccq $"overall-tx-ccq"; :local regclients $"registered-clients"; :if ($regclients > 0) do={ :set waitingchange 0; :if ($ccq < 20) do={ :set ccqerror ($ccqerror + 1); :if ($ccqerror >= 6) do={ :set ccqerror 0; :log info "Frequency($frequency) CCQ: $ccq%. Too low, change frequency"; :set pos ($pos + 1); :if ($pos > 0) do={ } else { :set pos 0; } :if ($pos = $freqListLen) do={ :set pos ($pos - $freqListLen); } set $interface frequency=[:pick $freqList $pos]; } } else { :set ccqerror 0; :if ($pos >= 0) do={ } else { set $interface frequency=[:pick $freqList 0]; } } } else { :set ccqerror 0; :if ($waitingchange < 3) do={ :set waitingchange ($waitingchange + 1); } else { :set waitingchange 0; :if ([:pick $freqList ($freqListLen / 2 - 1)] != $frequency) do={ set $interface frequency=[:pick $freqList ($freqListLen / 2 - 1)]; } } } }
新增 Schedule 定時執行 Script,這邊我設定每 5 秒偵測一次:
以上就完成設定了
本文章網址:
https://www.ez2o.com/Blog/Post/MikroTik-RouterOS-Wireless-Script
https://www.ez2o.com/Blog/Post/467
https://www.ez2o.com/Blog/Post/MikroTik-RouterOS-Wireless-Script
https://www.ez2o.com/Blog/Post/467
留言
Kuenming ( 2016-02-15 )這個script 在 6.33 下執行,好像沒有反應ez ( 2016-02-15 )我這邊測試是正常的