# This is the channel Algorithm Control register which is fields within the register at 0x1n80 for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl 0 variable Ch$i.AlgorithmControl_B00=>05 0 variable Ch$i.AlgorithmControl_B6 0 variable Ch$i.AlgorithmControl_B08=>09 0 variable Ch$i.AlgorithmControl_B10=>11 0 variable Ch$i.AlgorithmControl_B12=>13 0 variable Ch$i.AlgorithmControl_B14 0 variable Ch$i.AlgorithmControl_B16 0 variable Ch$i.AlgorithmControl_B17 0 variable Ch$i.AlgorithmControl_B18=>19 0 variable Ch$i.AlgorithmControl_B20=>22 0 variable Ch$i.AlgorithmControl_B24 0 variable Ch$i.AlgorithmControl_B26 0 variable Ch$i.AlgorithmControl_B27 0 } proc GetAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl set Ch$i.AlgorithmControl [ReadRegister Ch$i.AlgorithmControl] variable Ch$i.AlgorithmControl_B00=>05 variable Ch$i.AlgorithmControl_B6 variable Ch$i.AlgorithmControl_B08=>09 variable Ch$i.AlgorithmControl_B10=>11 variable Ch$i.AlgorithmControl_B12=>13 variable Ch$i.AlgorithmControl_B14 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 set Ch$i.AlgorithmControl_B00=>05 [expr [set Ch$i.AlgorithmControl] & 0x3f] set Ch$i.AlgorithmControl_B6 [expr ([set Ch$i.AlgorithmControl] >> 6) & 1] set Ch$i.AlgorithmControl_B08=>09 [expr ([set Ch$i.AlgorithmControl] >> 8) & 3] set Ch$i.AlgorithmControl_B10=>11 [expr ([set Ch$i.AlgorithmControl] >> 10) & 3] set Ch$i.AlgorithmControl_B12=>13 [expr ([set Ch$i.AlgorithmControl] >> 12) & 3] set Ch$i.AlgorithmControl_B14 [expr ([set Ch$i.AlgorithmControl] >> 14) & 1] set Ch$i.AlgorithmControl_B16 [expr ([set Ch$i.AlgorithmControl] >> 16) & 1] set Ch$i.AlgorithmControl_B17 [expr ([set Ch$i.AlgorithmControl] >> 17) & 1] set Ch$i.AlgorithmControl_B18=>19 [expr ([set Ch$i.AlgorithmControl] >> 18) & 3] set Ch$i.AlgorithmControl_B20=>22 [expr ([set Ch$i.AlgorithmControl] >> 20) & 7] set Ch$i.AlgorithmControl_B24 [expr ([set Ch$i.AlgorithmControl] >> 24) & 1] set Ch$i.AlgorithmControl_B26 [expr ([set Ch$i.AlgorithmControl] >> 26) & 1] set Ch$i.AlgorithmControl_B27 [expr ([set Ch$i.AlgorithmControl] >> 27) & 1] } } proc SetAlgorithmControl {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl if {$w < $NumChans && $w != $i} {continue} variable Ch$i.AlgorithmControl_B00=>05 variable Ch$i.AlgorithmControl_B6 variable Ch$i.AlgorithmControl_B08=>09 variable Ch$i.AlgorithmControl_B10=>11 variable Ch$i.AlgorithmControl_B12=>13 variable Ch$i.AlgorithmControl_B14 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 set Ch$i.AlgorithmControl_B27 0 set Ch$i.AlgorithmControl [expr \ ([set Ch$i.AlgorithmControl_B00=>05] << 0) | \ ([set Ch$i.AlgorithmControl_B6] << 6) | \ ([set Ch$i.AlgorithmControl_B08=>09] << 8) | \ ([set Ch$i.AlgorithmControl_B10=>11] << 10) | \ ([set Ch$i.AlgorithmControl_B12=>13] << 12) | \ ([set Ch$i.AlgorithmControl_B14] << 14) | \ ([set Ch$i.AlgorithmControl_B16] << 16) | \ ([set Ch$i.AlgorithmControl_B17] << 17) | \ ([set Ch$i.AlgorithmControl_B18=>19] << 18) | \ ([set Ch$i.AlgorithmControl_B20=>22] << 20) | \ ([set Ch$i.AlgorithmControl_B24] << 24) | \ ([set Ch$i.AlgorithmControl_B26] << 26) | \ ([set Ch$i.AlgorithmControl_B27] << 27)] WriteRegister Ch$i.AlgorithmControl [set Ch$i.AlgorithmControl] } } proc SaveAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.AlgorithmControl [ReadRegister Ch$i.AlgorithmControl] } } proc RestAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl set Ch$i.AlgorithmControl [DBGetValue Ch$i.AlgorithmControl] WriteRegister Ch$i.AlgorithmControl [DBGetValue Ch$i.AlgorithmControl] } GetAlgorithmControl } proc DrawAlgorithmControl {} { variable NumChans variable Name for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl variable Ch$i.AlgorithmControl_B00=>05 variable Ch$i.AlgorithmControl_B6 variable Ch$i.AlgorithmControl_B08=>09 variable Ch$i.AlgorithmControl_B10=>11 variable Ch$i.AlgorithmControl_B12=>13 variable Ch$i.AlgorithmControl_B14 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 } set html "" append html "
" append html "
| Channel | " append html "Trapezoid Rescaling | " } append html "
| $i | " append html "" } append html " |
| $i | " append html "" } append html " |
| $i | " append html "" } append html " |
| $i | " append html "" } append html " |
" append html "
| Channel | " append html "Discr Mode | " append html "Decimation | " append html "Digital Gain | " append html "Peak Mean | " append html "Internal Test Pulse | " append html "Invert Input | " append html "Trigger on RC-CR or RC-CR2 | " append html "Trigger Mode | " append html "Baseline average | " append html "Self Trigger | " append html "Pseudo Event #1 | " 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 "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "