Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 22nd, 2012  |  syntax: None  |  size: 2.63 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/sh
  2.  
  3. place=".1.3.6.1.4.1.2021.255"
  4.  
  5. refresh() {
  6.  
  7.   id=1
  8.   lastid=0
  9.   noise_reference=$(wl -i `nvram get wl0_ifname` noise | cut -d" " -f3)
  10.  
  11.   for mac in $(wl -i `nvram get wl0_ifname` assoclist | cut -d" " -f2)
  12.   do
  13.     if test $lastid -eq 0
  14.     then
  15.       getnext_1361412021255="$place.3.54.1.3.32.1.1.1"
  16.       getnext_1361412021255354133211="$place.3.54.1.3.32.1.1.1"
  17.       getnext_1361412021255354133214="$place.3.54.1.3.32.1.4.1"
  18.       getnext_13614120212553541332113="$place.3.54.1.3.32.1.13.1"
  19.       getnext_13614120212553541332126="$place.3.54.1.3.32.1.26.1"
  20.     else
  21.       eval getnext_1361412021255354133211${lastid}="$place.3.54.1.3.32.1.1.$id"
  22.       eval getnext_1361412021255354133214${lastid}="$place.3.54.1.3.32.1.4.$id"
  23.       eval getnext_13614120212553541332113${lastid}="$place.3.54.1.3.32.1.13.$id"
  24.       eval getnext_13614120212553541332126${lastid}="$place.3.54.1.3.32.1.26.$id"
  25.     fi
  26.  
  27.     rssi=$(wl -i `nvram get wl0_ifname` rssi $mac | cut -d" " -f3)
  28.     if test $rssi -eq 0
  29.     then
  30.       snr=0
  31.     else
  32.       let snr=-1*$noise_reference+$rssi
  33.     fi
  34.     mac=$(echo $mac | tr : ' ')
  35.  
  36.     eval value_1361412021255354133211${id}=$id;
  37.     eval type_1361412021255354133211${id}='integer';
  38.     eval value_1361412021255354133214${id}='$mac';
  39.     eval type_1361412021255354133214${id}='octet';
  40.     eval value_13614120212553541332113${id}=$noise_reference;
  41.     eval type_13614120212553541332113${id}='integer';
  42.     eval value_13614120212553541332126${id}=$snr;
  43.     eval type_13614120212553541332126${id}='integer';
  44.  
  45.     lastid=$id
  46.     let id=$id+1
  47.  
  48.   done
  49.  
  50.   if test $lastid -ne 0
  51.   then
  52.     eval getnext_1361412021255354133211${lastid}="$place.3.54.1.3.32.1.4.1"
  53.     eval getnext_1361412021255354133214${lastid}="$place.3.54.1.3.32.1.13.1"
  54.     eval getnext_13614120212553541332113${lastid}="$place.3.54.1.3.32.1.26.1"
  55.     eval getnext_13614120212553541332126${lastid}="NONE"
  56.   fi
  57. }
  58.  
  59. LASTREFRESH=0
  60.  
  61. while read CMD
  62. do
  63.   case "$CMD" in
  64.     PING)
  65.       echo PONG
  66.       continue
  67.       ;;
  68.     getnext)
  69.       read REQ
  70.       let REFRESH=$(date +%s)-$LASTREFRESH
  71.       if test $REFRESH -gt 30
  72.       then
  73.         LASTREFRESH=$(date +%s)
  74.         refresh
  75.       fi
  76.      
  77.       oid=$(echo $REQ | tr -d .)
  78.       eval ret=\$getnext_${oid}
  79.       if test "x$ret" = "xNONE"
  80.       then
  81.         echo NONE
  82.         continue
  83.       fi
  84.       ;;
  85.     *)
  86.       read REQ
  87.       if test "x$REQ" = "x$place"
  88.       then
  89.         echo NONE
  90.         continue
  91.       else
  92.         ret=$REQ
  93.       fi
  94.       ;;
  95.   esac
  96.  
  97.   oid=$(echo $ret | tr -d .)
  98.   if eval test "x\$type_${oid}" != "x"
  99.   then
  100.     echo $ret
  101.     eval echo "\$type_${oid}"
  102.     eval echo "\$value_${oid}"
  103.   else
  104.     echo NONE
  105.   fi
  106.  
  107. done