Files
sea/tcl/drivers/cemhack.tcl
2022-08-18 15:04:28 +02:00

50 lines
919 B
Tcl

namespace eval cemhack {} {
}
proc stdConfig::cemhack {bronkobj} {
controller syncedprot
obj CEM_HACK rd
prop read cemhack::read
prop obj $bronkobj
prop register_update 1
kids "CEM workaround" {
node set par 0
node prop par 5
node offset par 2.5
}
}
proc cemhack::read {} {
if {[sct register_update]} {
on_update_call [sct obj] cemhack::update
}
sct register_update 1
# cemhack::update will set this flag to 0
return idle
}
proc cemhack::update {} {
sct on_update_call_cnt 5
set t [sct value]
sct register_update 0
if {$t == 0} {
set t [hval [sct]]
} else {
sct update $t
}
set soll [hval [sct]/set]
set prop [hval [sct]/prop]
set offset [hval [sct]/offset]
set output [expr $offset + $prop * ($soll - $t)]
if {$output > 100} {
set output 100
} elseif {$output < 0} {
set output 0
}
hset [sct obj]/output $output
return idle
}