- dieses Skript am besten nach /etc/init.d/S54antennen_autosensing kopieren
#!/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