Removed the tcl monitor program
authorPat Thoyts <Patrick.Thoyts@renishaw.com>
Wed, 18 May 2016 09:03:51 +0000 (10:03 +0100)
committerPat Thoyts <Patrick.Thoyts@renishaw.com>
Wed, 18 May 2016 09:03:51 +0000 (10:03 +0100)
monitor.tcl [deleted file]

diff --git a/monitor.tcl b/monitor.tcl
deleted file mode 100644 (file)
index b5fd092..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-#/usr/bin/env tclsh
-#
-# URL=https://api.thingspeak.com/update
-# KEY=QXY49R9TYM0LYCB2
-# curl --data "key=$KEY&field1=$Temp0&field2=$Pressure0&field3=$Lux" $URL
-
-package require Tcl 8.6
-package require http
-package require tls
-package require autoproxy
-
-variable URL "http://api.thingspeak.com/update"
-variable KEY "1HWAT971G1N0RJ6U"
-
-proc OnHttpComplete {tok} {
-    puts "[http::status $tok] $tok"
-    http::cleanup $tok
-}
-
-proc avg {lst} {
-    set count [llength $lst]
-    foreach v $lst {
-        set sum [expr {$sum + $v}]
-    }
-    return [expr {$sum / double($count)}]
-}
-
-proc median {lst} {
-    set lst [lsort -real $lst]
-    set len [llength $lst]
-    if {$len & 1} {
-        # odd number of elements
-        return [lindex $lst [expr {($len-1)/2}]]
-    } else {
-        # for even number, interpolate center pair
-        set idx2 [expr {$len / 2}]
-        set idx1 [expr {$idx2-1}]
-        return [expr {([lindex $lst $idx1] + [lindex $lst $idx2]) / 2.0}]
-    }
-}
-
-proc upload {} {
-    variable URL
-    variable KEY
-    variable TEMPERATURES
-    variable HUMIDITIES
-    variable PRESSURES
-
-    set A [median $TEMPERATURES]
-    set B [set C 0]
-    if {[llength $HUMIDITIES] > 0} { set B [median $HUMIDITIES] }
-    if {[llength $PRESSURES] > 0} {set C [median $PRESSURES] }
-    set TEMPERATURES [set HUMIDITIES [set PRESSURES {}]]
-    set req [http::formatQuery api_key $KEY field1 $A field2 $B field3 $C]
-    set tok [http::geturl $URL -query $req -timeout 500 -command [list OnHttpComplete]]
-    http::wait $tok
-}
-
-proc main {port {baudrate 57600}} {
-    variable TEMPERATURES {}
-    variable HUMIDITIES {}
-    variable PRESSURES {}
-
-    http::register https 443 [list autoproxy::tls_socket -ssl2 0 -ssl3 0 -tls1 1]
-    autoproxy::init
-    puts "# proxy: [autoproxy::cget -proxy_host]"
-
-    set sio [open $port r]
-    fconfigure $sio -buffering line -encoding ascii -translation {auto crlf} -mode $baudrate,n,8,1
-    while {[gets $sio line] != -1} {
-        if {[string match "# *" $line]} { puts $line; continue }
-        set T {}
-        set H {}
-        set P {}
-        if {[catch {
-            foreach sensor [lrange [split $line "\["] 1 end] {
-                set sensor [string trim $sensor "\[\] "]
-                lassign $sensor id ts t h p
-                lappend T [expr {double($t)}]
-                if {$h != 0} {lappend H [expr {double($h)}]}
-                if {$p != 0} {lappend P [expr {double($p)}]}
-            }
-            set temperature [median $T]
-            lappend TEMPERATURES $temperature
-            if {[llength $H] > 0} {
-                set humidity [median $H]
-                lappend HUMIDITIES $humidity
-            } else {
-                set humidity -1
-            }
-            if {[llength $P]} {
-                set pressure [median $P]
-                lappend PRESSURES $pressure
-            } else {
-                set pressure -1
-            }
-            puts [format "%d %.2f %.2f %.2f : {$T} {$H} {$P}" \
-                      [clock seconds] $temperature $humidity $pressure]
-            # every 5 minutes
-            if {[llength $TEMPERATURES] > (60 * 5)} {
-                upload
-            }
-        } err]} {
-            puts "! $line\n! $::errorInfo"
-        }
-    }
-    return 0
-}
-
-if {!$tcl_interactive} {
-    set r [catch [linsert $argv 0 main] err]
-    if {$r} {
-        puts stderr $::errorInfo
-    }
-    exit $r
-}