50 lines
919 B
Tcl
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
|
|
}
|
|
|