# This is the channel Trig Val Mask register which is CHSETTING 0x81nm # Ch0 nm=80; Ch1 nm=84 etc for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.TrigValMask 0 for {set k 0} {$k < 8} {incr k} { variable Ch$i.TrigValMask_B$k 0 } variable Ch$i.TrigValMask_B08=>09 0 variable Ch$i.TrigValMask_B10=>12 0 for {set k 28} {$k < 32} {incr k} { variable Ch$i.TrigValMask_B$k } } proc GetTrigValMask {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.TrigValMask set Ch$i.TrigValMask [ReadRegister Ch$i.TrigValMask] for {set k 0} {$k < 8} {incr k} { variable Ch$i.TrigValMask_B$k } variable Ch$i.TrigValMask_B08=>09 variable Ch$i.TrigValMask_B10=>12 for {set k 28} {$k < 32} {incr k} { variable Ch$i.TrigValMask_B$k } for {set k 0} {$k < 8} {incr k} { set Ch$i.TrigValMask_B$k [expr ([set Ch$i.TrigValMask] >> $k) & 1] } set Ch$i.TrigValMask_B08=>09 [expr ([set Ch$i.TrigValMask] >> 8) & 3] set Ch$i.TrigValMask_B10=>12 [expr ([set Ch$i.TrigValMask] >> 10) & 7] for {set k 28} {$k < 32} {incr k} { set Ch$i.TrigValMask_B$k [expr ([set Ch$i.TrigValMask] >> $k) & 1] } } } proc SetTrigValMask {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { if {$w < $NumChans && $w != $i} {continue} variable Ch$i.TrigValMask for {set k 0} {$k < 8} {incr k} { variable Ch$i.TrigValMask_B$k } variable Ch$i.TrigValMask_B08=>09 variable Ch$i.TrigValMask_B10=>12 variable Ch$i.TrigValMask_B28 variable Ch$i.TrigValMask_B29 variable Ch$i.TrigValMask_B30 variable Ch$i.TrigValMask_B31 set Ch$i.TrigValMask [expr \ ([set Ch$i.TrigValMask_B0] << 0) | \ ([set Ch$i.TrigValMask_B1] << 1) | \ ([set Ch$i.TrigValMask_B2] << 2) | \ ([set Ch$i.TrigValMask_B3] << 3) | \ ([set Ch$i.TrigValMask_B4] << 4) | \ ([set Ch$i.TrigValMask_B5] << 5) | \ ([set Ch$i.TrigValMask_B6] << 6) | \ ([set Ch$i.TrigValMask_B7] << 7) | \ ([set Ch$i.TrigValMask_B08=>09] << 8) | \ ([set Ch$i.TrigValMask_B10=>12] << 10) | \ ([set Ch$i.TrigValMask_B28] << 28) | \ ([set Ch$i.TrigValMask_B29] << 29) | \ ([set Ch$i.TrigValMask_B30] << 30) | \ ([set Ch$i.TrigValMask_B31] << 31)] WriteRegister Ch$i.TrigValMask [set Ch$i.TrigValMask] } } proc SaveTrigValMask {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.TrigValMask [ReadRegister Ch$i.TrigValMask] } } proc RestTrigValMask {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.TrigValMask set Ch$i.TrigValMask [DBGetValue Ch$i.TrigValMask] WriteRegister Ch$i.TrigValMask [DBGetValue Ch$i.TrigValMask] for {set k 0} {$k < 8} {incr k} { variable Ch$i.TrigValMask_B$k } variable Ch$i.TrigValMask_B08=>09 variable Ch$i.TrigValMask_B10=>12 for {set k 28} {$k < 32} {incr k} { variable Ch$i.TrigValMask_B$k } for {set k 0} {$k < 8} {incr k} { set Ch$i.TrigValMask_B$k [expr ([set Ch$i.TrigValMask] >> $k) & 1] } set Ch$i.TrigValMask_B08=>09 [expr ([set Ch$i.TrigValMask] >> 8) & 3] set Ch$i.TrigValMask_B10=>12 [expr ([set Ch$i.TrigValMask] >> 10) & 7] for {set k 28} {$k < 32} {incr k} { set Ch$i.TrigValMask_B$k [expr ([set Ch$i.TrigValMask] >> $k) & 1] } } } proc DrawTrigValMask {} { variable NumChans variable Name for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.TrigValMask for {set k 0} {$k < 8} {incr k} { variable Ch$i.TrigValMask_B$k } variable Ch$i.TrigValMask_B08=>09 variable Ch$i.TrigValMask_B10=>12 for {set k 28} {$k < 32} {incr k} { variable Ch$i.TrigValMask_B$k } } set html "" append html "

" append html "" append html "" append html "" for {set k 0} {$k < 8} {incr k} { append 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 "" for {set k 0} {$k < 8} {incr k} { append html "" } append html "" append html "" for {set k 28} {$k < 32} {incr k} { append html "" } append html "" } append html "
ChannelTRG_REQ\[$k\]Operation MaskMajority ThresholdLVDS GTRGLVDS ITRGEXT TRGSOFT TRG
$i" append html "" append html "" append html "" append html "" append html "" append html "" append html "" append html "
" append html "

" return $html }