# This is the channel Local Trigger Management register which is fields within the register at 0x1n84 for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger 0 variable Ch$i.LocalTrigger_B00=>01 0 variable Ch$i.LocalTrigger_B02 0 variable Ch$i.LocalTrigger_B04=>05 0 variable Ch$i.LocalTrigger_B06 0 variable Ch$i.LocalTrigger_B07 0 variable Ch$i.LocalTrigger_B08=>10 0 variable Ch$i.LocalTrigger_B11 0 variable Ch$i.LocalTrigger_B12=>13 0 variable Ch$i.LocalTrigger_B14=>15 0 } proc GetLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger set Ch$i.LocalTrigger [ReadRegister Ch$i.LocalTrigger] variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>13 variable Ch$i.LocalTrigger_B14=>15 set Ch$i.LocalTrigger_B00=>01 [expr [set Ch$i.LocalTrigger] & 3] set Ch$i.LocalTrigger_B02 [expr ([set Ch$i.LocalTrigger] >> 2) & 1] set Ch$i.LocalTrigger_B04=>05 [expr ([set Ch$i.LocalTrigger] >> 4) & 3] set Ch$i.LocalTrigger_B06 [expr ([set Ch$i.LocalTrigger] >> 6) & 1] set Ch$i.LocalTrigger_B07 [expr ([set Ch$i.LocalTrigger] >> 7) & 1] set Ch$i.LocalTrigger_B08=>10 [expr ([set Ch$i.LocalTrigger] >> 8) & 7] set Ch$i.LocalTrigger_B11 [expr ([set Ch$i.LocalTrigger] >> 11) & 1] set Ch$i.LocalTrigger_B12=>13 [expr ([set Ch$i.LocalTrigger] >> 12) & 3] set Ch$i.LocalTrigger_B14=>15 [expr ([set Ch$i.LocalTrigger] >> 14) & 3] } } proc SetLocalTrigger {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger if {$w < $NumChans && $w != $i} {continue} variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>13 variable Ch$i.LocalTrigger_B14=>15 set Ch$i.LocalTrigger [expr \ ([set Ch$i.LocalTrigger_B00=>01] << 0) | \ ([set Ch$i.LocalTrigger_B02] << 2) | \ ([set Ch$i.LocalTrigger_B04=>05] << 4) | \ ([set Ch$i.LocalTrigger_B06] << 6) | \ ([set Ch$i.LocalTrigger_B07] << 7) | \ ([set Ch$i.LocalTrigger_B08=>10] << 8) | \ ([set Ch$i.LocalTrigger_B11] << 11) | \ ([set Ch$i.LocalTrigger_B12=>13] << 12) | \ ([set Ch$i.LocalTrigger_B14=>15] << 14)] WriteRegister Ch$i.LocalTrigger [set Ch$i.LocalTrigger] } } proc SaveLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.LocalTrigger [ReadRegister Ch$i.LocalTrigger] } } proc RestLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger set Ch$i.LocalTrigger [DBGetValue Ch$i.LocalTrigger] WriteRegister Ch$i.LocalTrigger [DBGetValue Ch$i.LocalTrigger] } GetLocalTrigger } proc DrawLocalTrigger {} { variable NumChans variable Name for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>13 variable Ch$i.LocalTrigger_B14=>15 } set html "" append html "
" append html "
| Channel | " append html "Local Trigger Mode | " append html "Enable LT Mode | " append html "LT Validation Mode | " append html "Enable LT Val Mode | " append html "LT Validation is Veto | " append html "Extras Word options | " append html "CFD Fraction | " append html "Reserved | " append html "
| $i | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "