#!/usr/bin/tclsh set ::test 0 set ::debug 0 set ::owfs /mnt/1wire set ::driver 12.264329000000 set ::driverpio $::driver/PIO.A set ::driverinit [list \ [list $::driver/set_alarm 311] \ [list $::driver/PIO.A 1] \ [list $::driver/PIO.A 0] \ ] proc logger {msg {priority err}} { syslog -facility daemon -ident irlight $priority $msg } proc owget {name} { if {[catch {open $::owfs/$name} f]} { logger "ERROR: $f" return "" } set res [read -nonewline $f] close $f return $res } proc owput {name {val ""}} { if {[catch {open $::owfs/$name WRONLY} f]} { logger "ERROR(owput): $f" return 0 } puts $f $val close $f return 1 } proc DoInit {{dev ""}} { if {($dev=="") || ($dev==$::driver)} { if {$::debug} {logger "driver init" info} foreach l $::driverinit {owput [lindex $l 0] [lindex $l 1]} } } proc TurnOn {} { if {$::debug} { logger "driver ON" info } owput $::driverpio 1 } proc TurnOff {} { if {$::debug} { logger "driver OFF" info } owput $::driverpio 0 } if {($argc < 1) || (([set mode [lindex $argv 0]] != "init") && ($mode != "on") && ($mode != "off"))} { puts stderr "Usage: $argv0 init|on|off" exit 1 } package require Syslog if {[file exists $::owfs/uncached]} {set ::uncached uncached/} {set ::uncached ""} if {$mode == "init"} { DoInit [lindex $argv 1] TurnOff exit 0 } if {$mode == "on"} { TurnOn exit 0 } if {$mode == "off"} { TurnOff exit 0 }