Änderungen

1.043 Bytes hinzugefügt ,  12:00, 31. Aug. 2006
→‎Skript: neues skript
Zeile 30: Zeile 30:     
===Skript===
 
===Skript===
*dieses Skript am besten nach <tt>/etc/init.d/S54antennen_autosensing</tt> kopieren
+
*[http://www.stud.tu-ilmenau.de/~babi-mtr/wirelessweimar/S54antennen_autosensing dieses Skript runterladen] und am besten nach <tt>/etc/init.d/S54antennen_autosensing</tt> kopieren
 
<pre>
 
<pre>
 
#!/bin/sh
 
#!/bin/sh
   −
logger "AUTOANT-WAHL: Start..."
+
#
 +
# Automatische Wahl der richtigen Antenne - Bastian Bittorf /weimarnetz - $VER 2006aug31,12uhr07
 +
#
    
RX=$(nvram get wl0_antdiv)
 
RX=$(nvram get wl0_antdiv)
 
TX=$(nvram get ff_txant)
 
TX=$(nvram get ff_txant)
 +
PRE="AUTOANT-WAHL: "
 +
ENDE=0
 +
CONF="/etc/olsrd.conf"
 +
PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' $CONF)
 +
eval $(netparam)
 +
 +
logger $PRE"Start..."
 +
 +
if [ "$RX" = "-1" ] && [ "$TX" = "-1" ] && [ "$(nvram get ff_httpinfo)" = 1 ]
 +
then
 +
 +
#
 +
# Antenne A einstellen, starten einer neuen Messreihe, warten
 +
#
 +
 +
logger $PRE"Antenne A einstellen und $PAUSE sek. warten..."
 +
wl -i $WIFIDEV antdiv 0
 +
wl -i $WIFIDEV txant 0
 +
sleep $PAUSE
 +
 +
#
 +
# Erfassen der Messwerte je nach Plugin unterschiedlich
 +
#
 +
 +
if [ -n "$(grep httpinfo $CONF)" ]
 +
  then
 +
  logger $PRE"httpinfo-Plugin (Port 8080) erkannt..."
 +
  eval $(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{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 +
fi
 +
 +
if [ -n "$(grep txtinfo $CONF)" ]
 +
  then
 +
  logger $PRE"txtinfo-Plugin (Port 2006) erkannt..."
 +
  eval $(wget -O - http://127.0.0.1:2006/neighbours|grep $WIFIADR|awk '{
 +
  z++;p=p+$6;etx=etx+$8}
 +
  END{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 +
fi
 +
 +
logger $PRE"Nachbarn,Pakete,ETXsum = $NACHBAR1, $PAKETE1, $ETXSUM"
 +
 +
#
 +
# Antenne B einstellen, starten einer neuen Messreihe, warten
 +
#
 +
 +
logger "AUTOANT-WAHL: Antenne B einstellen, OLSR-Neustart erzwingen und $PAUSE sek. warten..."
 +
wl -i $WIFIDEV antdiv 1
 +
wl -i $WIFIDEV txant 1
 +
/etc/init.d/S53olsrd restart
 +
sleep $PAUSE
   −
if [ "$RX" = "-1" ] && [ "$TX" = "-1" ];then
+
#
 +
# Erfassen der Messwerte je nach Plugin unterschiedlich
 +
#
   −
eval $(netparam)
+
if [ -n "$(grep httpinfo $CONF)" ]
PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' /etc/olsrd.conf)
+
  then
ENDE=0
+
  eval $(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{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 +
fi
   −
logger "AUTOANT-WAHL: Antenne A einstellen und $PAUSE sek. warten..."
+
if [ -n "$(grep txtinfo $CONF)" ]
wl -i $WIFIDEV antdiv 0
+
  then
wl -i $WIFIDEV txant 0
+
  eval $(wget -O - http://127.0.0.1:2006/neighbours|grep $WIFIADR|awk '{
sleep $PAUSE
+
  z++;p=p+$6;etx=etx+$8}
 +
  END{print "NACHBAR2="z";PAKETE2="p";ETXSUM2="etx*100";ETXSUM="etx}')
 +
fi
   −
WERTE=$(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{
+
#
if(s==1&&$0=="</table>")exit
+
# Vergleiche & Auswertungen
if(s==1){
+
#
  z++
  −
  p=p+$21
  −
  etx=etx+$33
  −
  }
  −
if($3=="width")s=1}
  −
END{printf("%i;%i;%i;%s",z,p,etx*100,etx)}')
  −
NACHBAR1=$(echo "$WERTE"|cut -d";" -f1)
  −
PAKETE1=$(echo "$WERTE"|cut -d";" -f2)
  −
ETXSUM1=$(echo "$WERTE"|cut -d";" -f3)
  −
ETXSUM=$(echo "$WERTE"|cut -d";" -f4)
  −
logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR1,$PAKETE1,$ETXSUM1,$ETXSUM"
     −
/etc/init.d/S53olsrd restart
+
logger $PRE"Nachbarn,Pakete,ETXsum = $NACHBAR2, $PAKETE2, $ETXSUM"
   −
logger "AUTOANT-WAHL: Antenne B einstellen und $PAUSE sek. warten..."
+
if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: Nachbaranzahl vergleichen...";fi
wl -i $WIFIDEV antdiv 1
+
if [ "$NACHBAR1" -gt "$NACHBAR2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
wl -i $WIFIDEV txant 1
+
if [ "$NACHBAR1" -lt "$NACHBAR2" ] && [ "$ENDE" = 0 ];then ENDE=1;fi
sleep $PAUSE
     −
WERTE=$(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{
+
if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: Paketanzahl vergleichen...";fi
  if(s==1&&$0=="</table>")exit
+
  if [ "$PAKETE1" -gt "$PAKETE2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
if(s==1){
+
  if [ "$PAKETE1" -lt "$PAKETE2" ] && [ "$ENDE" = 0 ];then ENDE=1;fi
  z++
  −
  p=p+$21
  −
  etx=etx+$33
  −
  }
  −
  if($3=="width")s=1}
  −
END{printf("%i;%i;%i;%s",z,p,etx*100,etx)}')
  −
NACHBAR2=$(echo "$WERTE"|cut -d";" -f1)
  −
PAKETE2=$(echo "$WERTE"|cut -d";" -f2)
  −
ETXSUM2=$(echo "$WERTE"|cut -d";" -f3)
  −
ETXSUM=$(echo "$WERTE"|cut -d";" -f4)
  −
logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR2,$PAKETE2,$ETXSUM2,$ETXSUM"
     −
if [ "$ENDE" != "1" ];then logger "AUTOANT-WAHL: Nachbaranzahl vergleichen...";fi
+
if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: ETX-Summen vergleichen...";fi
if [ "$NACHBAR1" -gt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi
+
if [ "$ETXSUM1" -lt "$ETXSUM2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
if [ "$NACHBAR1" -lt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
+
if [ "$ETXSUM1" -gt "$ETXSUM2" ] && [ "$ENDE" = 0 ];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
+
# Umsetzungen der Schlussfolgerung
if [ "$PAKETE1" -lt "$PAKETE2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
+
#
   −
if [ "$ENDE" != "1" ];then logger "AUTOANT-WAHL: ETX-Summen vergleichen...";fi
+
if [ "$ANT" = "A" ]
if [ "$ETXSUM1" -lt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi
+
  then
if [ "$ETXSUM1" -gt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
+
  wl -i $WIFIDEV antdiv 0
 +
  wl -i $WIFIDEV txant 0
 +
  logger $PRE"Antenne A wird genommen..."
 +
  else
 +
  logger $PRE"Antenne B wird genommen (bzw. gelassen)..."
 +
fi
   −
if [ "$ANT" = "A" ]
  −
then
  −
wl -i $WIFIDEV antdiv 0
  −
wl -i $WIFIDEV txant 0
  −
logger "AUTOANT-WAHL: Antenne A wird genommen..."
   
  else
 
  else
  logger "AUTOANT-WAHL: Antenne B wird genommen (bzw. gelassen)..."
+
  logger $PRE"keine Skriptausfuehrung, Antennenwahl nicht auf Auto oder OLSR-Info-Plugin nicht aktiviert."
fi
  −
 
   
fi
 
fi
   −
logger "AUTOANT-WAHL: Ende..."
+
logger $PRE"Ende..."
    +
#
 +
# Ende...
 +
#
 
</pre>
 
</pre>