# This is the Couple n Self Trigger Logic register 0x1n84 for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.SelfTrigLogic 0 variable Ch$i.SelfTrigOut 0 } proc GetSelfTrig {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.SelfTrigLogic variable Ch$i.SelfTrigOut set vl [ReadRegister Ch$i.SelfTrig] set Ch$i.SelfTrigLogic [expr $vl & 3] set Ch$i.SelfTrigOut [expr ($vl >> 2) & 1] #InsertLog "ReadRegister Ch$i.SelfTrig [set Ch$i.SelfTrigLogic] [set Ch$i.SelfTrigOut]" } } proc SetSelfTrig {w} { variable NumChans variable allchannels for {set i 0} {$i < $NumChans} {incr i} { if {$allchannels == 0 && $w != $i} {continue} variable Ch$i.SelfTrigLogic variable Ch$i.SelfTrigOut WriteRegister Ch$i.SelfTrig [expr [set Ch$i.SelfTrigLogic] + ([set Ch$i.SelfTrigOut] << 2)] #InsertLog "WriteRegister Ch$i.SelfTrig [expr [set Ch$i.SelfTrigLogic] + ([set Ch$i.SelfTrigOut] << 2)]" } } proc SaveSelfTrig {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.SelfTrig [ReadRegister Ch$i.SelfTrig] } } proc RestSelfTrig {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.SelfTrigLogic set Ch$i.SelfTrigLogic [expr [DBGetValue Ch$i.SelfTrig] & 3] variable Ch$i.SelfTrigOut set Ch$i.SelfTrigOut [expr ([DBGetValue Ch$i.SelfTrig] >> 2) & 1] WriteRegister Ch$i.SelfTrig [DBGetValue Ch$i.SelfTrig] } } proc DrawSelfTrig {} { variable NumChans variable Name set html "" append html "

" append html "" append html "" append html "" append html "" append html "" append html "" for {set i 0} {$i < $NumChans} {incr i} { append html "" append html "" append html "" append html "" append html "" } append html "
ChannelChannel Self Trigger Logicoutput signal type
$i" append html "" append html "" append html "" append html "
" append html "

" return $html }