Zeile 26: |
Zeile 26: |
| ===Aber?=== | | ===Aber?=== |
| *Das Messprotokoll ist zugaenglich und es wird eine Moeglichkeit geben, den Automatismus zu verbieten bzw. eine eigene Vorgabe zu treffen. | | *Das Messprotokoll ist zugaenglich und es wird eine Moeglichkeit geben, den Automatismus zu verbieten bzw. eine eigene Vorgabe zu treffen. |
| + | |
| + | ===Skript=== |
| + | *dieses Skript am besten nach <tt>/etc/init.d/S54antennen_autosensing</tt> kopieren |
| + | <pre> |
| + | #!/bin/sh |
| + | |
| + | WIFIDEV=$(awk 'sub(":","") {print $1}' /proc/net/wireless) |
| + | PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' /etc/olsrd.conf) |
| + | |
| + | logger "AUTOANT-WAHL: Antenne A einstellen und warten..." |
| + | wl -i $WIFIDEV antdiv 0 |
| + | wl -i $WIFIDEV txant 0 |
| + | WERTE=$(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{ |
| + | if(s==1&&$0=="</table>")exit |
| + | if(s==1){ |
| + | z++ |
| + | p=p+$21 |
| + | etx=etx+$33 |
| + | } |
| + | if($3=="width")s=1} |
| + | END{printf("%i;%i;%i",z,p,etx)}') |
| + | NACHBAR1=$(echo "$WERTE"|cut -d";" -f1) |
| + | PAKETE1=$(echo "$WERTE"|cut -d";" -f2) |
| + | ETXSUM1=$(echo "$WERTE"|cut -d";" -f3) |
| + | logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR1,$PAKETE1,$ETXSUM1" |
| + | sleep $PAUSE |
| + | |
| + | logger "AUTOANT-WAHL: Antenne A einstellen und warten..." |
| + | wl -i $WIFIDEV antdiv 1 |
| + | wl -i $WIFIDEV txant 1 |
| + | WERTE=$(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{ |
| + | if(s==1&&$0=="</table>")exit |
| + | if(s==1){ |
| + | z++ |
| + | p=p+$21 |
| + | etx=etx+$33 |
| + | } |
| + | if($3=="width")s=1} |
| + | END{printf("%i;%i;%i",z,p,etx)}') |
| + | NACHBAR2=$(echo "$WERTE"|cut -d";" -f1) |
| + | PAKETE2=$(echo "$WERTE"|cut -d";" -f2) |
| + | ETXSUM2=$(echo "$WERTE"|cut -d";" -f3) |
| + | logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR2,$PAKETE2,$ETXSUM2" |
| + | sleep $PAUSE |
| + | |
| + | if [ "ENDE" != "1" ];then logger "AUTOANT-WAHL: Nachbaranzahl vergleichen...";fi |
| + | if [ "$NACHBAR1" -gt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi |
| + | if [ "$NACHBAR1" -lt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi |
| + | |
| + | if [ "ENDE" != "1" ];then logger "AUTOANT-WAHL: Paketanzahl vergleichen...";fi |
| + | if [ "$PAKETE1" -gt "$PAKETE2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi |
| + | if [ "$PAKETE1" -lt "$PAKETE2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi |
| + | |
| + | if [ "ENDE" != "1" ];then logger "AUTOANT-WAHL: ETX-Summen vergleichen...";fi |
| + | if [ "$ETXSUM1" -lt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi |
| + | if [ "$ETXSUM1" -gt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi |
| + | |
| + | if [ "$ANT" = "A" ] |
| + | then |
| + | wl -i $WIFIDEV antdiv 0 |
| + | wl -i $WIFIDEV txant 0 |
| + | logger "AUTOANT-WAHL: Antenne A wird genommen..." |
| + | fi |
| + | else |
| + | logger "AUTOANT-WAHL: Antenne B wird genommen..." |
| + | fi |
| + | |
| + | |
| + | </pre> |