#!/local/bin/wishnm -f

set dev { 
	fls-gw1
	fls-gw2
	nm-hx 
	nm-hx1
	nm-sa nm-sc 
	nm-e01 nm-e04 nm-e07 nm-e10 nm-e10a 
	nm-b0s nm-b03 
	nm-a02 nm-a05 
	nm-d 
	nm-g01 
	nm-spt 
	elrond
	gimli
	pippin
	elros
	frodo
	term1-hx
	term2-hx
	term1-sa
	term1-sc
	term1-g1
	term2-g1
	term1-e04
	term1-e07
	term1-b0s
	term1-b03
	}

set sdev {
	elrond
	gimli
	pippin
	elros
	frodo
	term1-hx
	}

set color(0) "#00ff00"
set color(1) "#30ff30"
set color(2) "#60ff60"
set color(3) "#90ff90"
set color(4) "#ff9090"
set color(5) "#ff6060"
set color(6) "#ff3030"
set color(7) "#ff0000"

set p0 [snmp mkpdu {
    system.sysUpTime.0
    }]

proc sysUptime {dev args} {
    global sess pdu cnt
    #puts stdout "<< <$dev> <$args> <$sess> <$pdu>"
    set cnt($dev) 0
    }

proc action {dev args} {
    global sess pdu cnt
    #puts stdout "<< <$args> <$sess> <$pdu>"
    set cnt($dev) 6
    }

proc poll {dev} {
    global sn p0 cnt color
    #puts stdout "poll $dev"
    if {$sn($dev) == ""} {
        set z [catch "snmp open $dev" y]
        if {$z == 0} { 
	    #puts stdout "** $dev"
	    set sn($dev) $y 
	    set cnt($dev) 0
	    snmp callback $sn($dev) pdu sess "sysUptime $dev"
	  } else {
	    .dev.$dev configure -bg blue
	    }
        }
    if {$sn($dev) != ""} { 
	#puts stdout ">> $dev"
	snmp send $sn($dev) -P get $p0
	.dev.$dev configure -bg $color($cnt($dev))
	if {$cnt($dev) > 6 } {
	    action $dev
	    }
	incr cnt($dev)
	}
    after 5000 poll $dev
    }

proc domenu {dev} {
   menu .$dev 
   .$dev add command -label $dev -state disabled
   .$dev add command -label info -command "puts stdout \"Hej mor $dev\""
   .$dev add command -label dismiss -command "destroy .$dev"
   .$dev post [expr [winfo width .dev.$dev]+[winfo rootx .dev.$dev]] [winfo rooty .dev.$dev]
   bind .$dev <Leave> "destroy .$dev"
   }

frame .dev
foreach i $dev { 
    pack append .dev \
	[button .dev.$i -anchor w -text $i -command "domenu $i" ] \
	{top fillx}
    set sn($i) ""
    after 2000 poll $i
    }

pack append . \
	[label .l1 -text "FLS-NMS" -fg gray85 -bg maroon \
	     -font "-*-times-medium-r-*-*-*-180-*-*-*-*-*-*" ] {top fillx} \
	.dev {top fillx} \

wm title . TK
