# This is the channel CFD Params register 0x1n3c for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.CFD_Params 0 variable Ch$i.CFD_Fraction 0 variable Ch$i.CFD_Delay 0 variable Ch$i.CFD_Xing 0 } proc GetCFDParams {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.CFD_Params variable Ch$i.CFD_Fraction variable Ch$i.CFD_Delay variable Ch$i.CFD_Xing set Ch$i.CFD_Params [ReadRegister Ch$i.CFD_Params] set Ch$i.CFD_Delay [expr [set Ch$i.CFD_Params] & 255] set Ch$i.CFD_Fraction [expr ([set Ch$i.CFD_Params] >> 8) & 3] set Ch$i.CFD_Xing [expr ([set Ch$i.CFD_Params] >> 10) & 3] } } proc SetCFDParams {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { if {$w < $NumChans && $w != $i} {continue} variable Ch$i.CFD_Params WriteRegister Ch$i.CFD_Params [set Ch$i.CFD_Params] } } proc SaveCFDParams {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.CFD_Params [ReadRegister Ch$i.CFD_Params] } } proc RestCFDParams {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.CFD_Params set Ch$i.CFD_Params [DBGetValue Ch$i.CFD_Params] WriteRegister Ch$i.CFD_Params [set Ch$i.CFD_Params] } } proc DrawCFDParams {} { variable NumChans variable Name set html "" append html "
" append html "
| Channel | " append html "CFD Delay Width | " append html "CFD Fraction | " append html "CFD Zero Crossing | " append html "
| $i | " append html "" append html " | " append html "" append html " |