mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 00:00:02 +02:00
* cli: patwaittime also takes time argument, api: patwaitclocks and patwaitinterval, tcp: patwaitinterval is 2 functions for set and get, patwaitclocks remains a single for backward compatibility with -1 for get, server (loadpattern): clks using member names (needs to be refactored). needs tobe discussed what to do with pattern files. * all tests passed * fixed test * exptime deprecated for ctb and xilinx * pyctbgui..not there yet * fixed in pyctbgui * removed redundant warning for ctb and xilinx exptime in Detector class (already in module class handling all exptime signatures), patwait, patloop and patnloop have to be non inferrable commands because of support for old commands (level as suffix) * fix formatting error from command line parsing * fix tests for patwaittime
13971 lines
335 KiB
YAML
13971 lines
335 KiB
YAML
acquire:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: acquire
|
|
function_alias: acquire
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
activate:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getActive
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setActive
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: activate
|
|
function_alias: activate
|
|
help: "[0, 1]\n\t[Eiger] 1 is default. 0 deactivates readout and does not send data."
|
|
infer_action: true
|
|
template: true
|
|
adcclk:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCClock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCClock
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcclk
|
|
function_alias: adcclk
|
|
help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz."
|
|
infer_action: true
|
|
template: true
|
|
adcenable:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCEnableMask
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCEnableMask
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint32_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcenable
|
|
function_alias: adcenable
|
|
help: "[bitmask]\n\t[Ctb] ADC Enable Mask for 1Gb Enable for each 32 ADC channel."
|
|
infer_action: true
|
|
template: true
|
|
adcenable10g:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTenGigaADCEnableMask
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTenGigaADCEnableMask
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint32_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcenable10g
|
|
function_alias: adcenable10g
|
|
help: "[bitmask]\n\t[Ctb] ADC Enable Mask for 10Gb mode for each 32 ADC channel.\
|
|
\ However, if any of a consecutive 4 bits are enabled, the complete 4 bits are\
|
|
\ enabled."
|
|
infer_action: true
|
|
template: true
|
|
adcindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: getAdcIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- static_cast<int>(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: adcindex
|
|
function_alias: adcindex
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get the adc index for the given name."
|
|
infer_action: true
|
|
template: true
|
|
adcinvert:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCInvert
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCInvert
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint32_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcinvert
|
|
function_alias: adcinvert
|
|
help: "[bitmask]\n\t[Ctb][Jungfrau][Moench] ADC Inversion Mask.\n\t[Jungfrau][Moench]\
|
|
\ Inversions on top of the default mask."
|
|
infer_action: true
|
|
template: true
|
|
adclist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getAdcNames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
- condition: cmd == "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: '"This detector already has fixed dac names. Cannot change them."'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setAdcNames
|
|
input:
|
|
- args
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: adclist
|
|
function_alias: adclist
|
|
help: "[adcname1 adcname2 .. adcname32] \n\t\t[Ctb][Xilinx_Ctb] Set the list of\
|
|
\ adc names for this board."
|
|
infer_action: true
|
|
template: true
|
|
adcname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: getAdcName
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: setAdcName
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: adcname
|
|
function_alias: adcname
|
|
help: "[0-31][name] \n\t\t[Ctb][Xilinx_Ctb] Set the adc at the given position to\
|
|
\ the given name."
|
|
infer_action: true
|
|
template: true
|
|
adcphase:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2
|
|
message: '"adcphase not implemented for this detector"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getADCPhase
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::deg
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2
|
|
message: '"adcphase not implemented for this detector"'
|
|
- condition: args[0] != "deg"
|
|
message: '"Unknown adcphase argument " + args[0] + ". Did you mean deg? "'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getADCPhaseInDegrees
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
- '" deg"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2
|
|
message: '"adcphase not implemented for this detector"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setADCPhase
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::deg
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2
|
|
message: '"adcphase not implemented for this detector"'
|
|
- condition: args[1] != "deg"
|
|
message: '"Unknown adcphase 2nd argument " + args[1] + ". Did you mean deg?"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setADCPhaseInDegrees
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcphase
|
|
function_alias: adcphase
|
|
help: "[n_value] [(optional)deg]\n\t[Jungfrau][Moench][Ctb][Gotthard] Phase shift\
|
|
\ of ADC clock. \n\t[Jungfrau][Moench] Absolute phase shift. If deg used, then\
|
|
\ shift in degrees. Changing Speed also resets adcphase to recommended defaults.\n\
|
|
\t[Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk\
|
|
\ also resets adcphase and sets it to previous values.\n\t[Gotthard] Relative\
|
|
\ phase shift. Cannot get"
|
|
infer_action: true
|
|
adcpipeline:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCPipeline
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCPipeline
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcpipeline
|
|
function_alias: adcpipeline
|
|
help: "[n_value]\n\t[Ctb][Moench] Pipeline for ADC clock."
|
|
infer_action: true
|
|
template: true
|
|
adcreg:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: writeAdcRegister
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcreg
|
|
function_alias: adcreg
|
|
help: "[address] [value]\n\t[Jungfrau][Moench][Ctb][Gotthard] Writes to an adc register\
|
|
\ in hex. Advanced user Function!"
|
|
infer_action: true
|
|
adcvpp:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCVpp
|
|
input:
|
|
- '"0"'
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_type:
|
|
- special::mv
|
|
arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: (args[0] != "mv") && (args[0] != "mV")
|
|
message: '"Unknown argument " + args[0] + ". Did you mean mV?"'
|
|
function: getADCVpp
|
|
input:
|
|
- '"1"'
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- OutString(t)
|
|
- '" mV"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCVpp
|
|
input:
|
|
- args[0]
|
|
- '"0"'
|
|
input_types:
|
|
- int
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::mv
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: (args[1] != "mv") && (args[1] != "mV")
|
|
message: '"Unknown argument " + args[1] + ". Did you mean mV?"'
|
|
function: setADCVpp
|
|
input:
|
|
- args[0]
|
|
- '"1"'
|
|
input_types:
|
|
- int
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
- '" mV"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: adcvpp
|
|
function_alias: adcvpp
|
|
help: "[dac or mV value][(optional unit) mV] \n\t[Ctb] Vpp of ADC.\n\t 0 -> 1V ;\
|
|
\ 1 -> 1.14V ; 2 -> 1.33V ; 3 -> 1.6V ; 4 -> 2V. \n\tAdvanced User function!"
|
|
infer_action: true
|
|
apulse:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getAnalogPulsing
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAnalogPulsing
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: apulse
|
|
function_alias: apulse
|
|
help: "[0, 1]\n\t[Mythen3] Enables or disables analog pulsing. Default is disabled"
|
|
infer_action: true
|
|
template: true
|
|
asamples:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfAnalogSamples
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberOfAnalogSamples
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: asamples
|
|
function_alias: asamples
|
|
help: "[n_samples]\n\t[Ctb] Number of analog samples expected."
|
|
infer_action: true
|
|
template: true
|
|
autocompdisable:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getAutoComparatorDisable
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAutoComparatorDisable
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: autocompdisable
|
|
function_alias: autocompdisable
|
|
help: "[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By default, the on-chip\
|
|
\ gain switching is active during the entire exposure.This mode disables the on\
|
|
\ - chip gain switching comparator automatically after 93.75% (only for chipv1.0)\
|
|
\ of exposure time (only for longer than 100us). It is possible to set the duration\
|
|
\ for chipv1.1 using compdisabletime command.\n\tDefault is 0 or this mode disabled(comparator\
|
|
\ enabled throughout). 1 enables mode. 0 disables mode. "
|
|
infer_action: true
|
|
template: true
|
|
badchannels:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: badchannels
|
|
function_alias: badchannels
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
blockingtrigger:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: block
|
|
type: bool
|
|
value: 'true'
|
|
function: sendSoftwareTrigger
|
|
input:
|
|
- block
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: blockingtrigger
|
|
function_alias: blockingtrigger
|
|
help: "\n\t[Eiger][Jungfrau][Moench] Sends software trigger signal to detector and\
|
|
\ blocks till the frames are sent out for that trigger."
|
|
infer_action: true
|
|
template: true
|
|
burstmode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::burstMode
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: burstmode
|
|
function_alias: burstmode
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
burstperiod:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getBurstPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getBurstPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setBurstPeriod
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setBurstPeriod
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: burstperiod
|
|
function_alias: burstperiod
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Gotthard2] Period between 2 bursts.\
|
|
\ Only in burst mode and auto timing mode."
|
|
infer_action: true
|
|
template: true
|
|
bursts:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfBursts
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setNumberOfBursts
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int64_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: bursts
|
|
function_alias: bursts
|
|
help: "[n_bursts]\n\t[Gotthard2] Number of bursts per aquire. Only in auto timing\
|
|
\ mode and burst mode. Use timing command to set timing mode and burstmode command\
|
|
\ to set burst mode."
|
|
infer_action: true
|
|
template: true
|
|
burstsl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfBurstsLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: burstsl
|
|
function_alias: burstsl
|
|
help: "\n\t[Gotthard2] Number of bursts left in acquisition. Only in burst auto\
|
|
\ mode."
|
|
infer_action: true
|
|
template: true
|
|
bustest:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: executeBusTest
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: bustest
|
|
function_alias: bustest
|
|
help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes\
|
|
\ different values in a R/W register and confirms the writes to check bus.\n\t\
|
|
Advanced User function!"
|
|
infer_action: true
|
|
template: true
|
|
cdsgain:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getCDSGain
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setCDSGain
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: cdsgain
|
|
function_alias: cdsgain
|
|
help: "[0, 1]\n\t[Gotthard2] Enable or disable CDS gain. Default is disabled."
|
|
infer_action: true
|
|
template: true
|
|
chipversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getChipVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: chipversion
|
|
function_alias: chipversion
|
|
help: "\n\t[Jungfrau] Returns chip version. Can be 1.0 or 1.1"
|
|
infer_action: true
|
|
template: true
|
|
clearbit:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[1]) < 0 || StringTo<int>(args[1]) > 31
|
|
message: '"Bit number out of range: " + args[1]'
|
|
function: clearBit
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"0"'
|
|
input_types:
|
|
- uint32_t
|
|
- int
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- uint32_t
|
|
- int
|
|
- special::validate
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[1]) < 0 || StringTo<int>(args[1]) > 31
|
|
message: '"Bit number out of range: " + args[1]'
|
|
- condition: args[2] != "--validate"
|
|
message: '"Could not scan third argument. Did you mean --validate?"'
|
|
function: clearBit
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"1"'
|
|
input_types:
|
|
- uint32_t
|
|
- int
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: clearbit
|
|
function_alias: clearbit
|
|
help: "[reg address in hex] [bit index]\n\tClears bit in address.\n\tUse --validate\
|
|
\ to force validation."
|
|
infer_action: true
|
|
template: true
|
|
clearbusy:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: clearAcquiringFlag
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: clearbusy
|
|
function_alias: clearbusy
|
|
help: "\n\tIf acquisition aborted during acquire command, use this to clear acquiring\
|
|
\ flag in shared memory before starting next acquisition"
|
|
infer_action: true
|
|
template: true
|
|
clearroi:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: clearROI
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: clearroi
|
|
function_alias: clearroi
|
|
help: "\n\t[Gotthard] Resets Region of interest in detector. All channels enabled.\
|
|
\ Default is all channels enabled."
|
|
infer_action: true
|
|
template: true
|
|
clientversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getClientVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: clientversion
|
|
function_alias: clientversion
|
|
help: "\n\tClient software version"
|
|
infer_action: true
|
|
clkdiv:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkdiv not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getClockDivider
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkdiv not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setClockDivider
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: clkdiv
|
|
function_alias: clkdiv
|
|
help: "[n_clock] [n_divider]\n\t[Gotthard2][Mythen3] Clock Divider of clock n_clock.\
|
|
\ Must be greater than 1.\n\t[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock\
|
|
\ index range: 0"
|
|
infer_action: true
|
|
clkfreq:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkfreq not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getClockFrequency
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: clkfreq
|
|
function_alias: clkfreq
|
|
help: "[n_clock] [freq_in_Hz]\n\t[Gotthard2][Mythen3] Frequency of clock n_clock\
|
|
\ in Hz. Use clkdiv to set frequency.\n\t[Gotthard2] Clock index range: 0-5\n\t\
|
|
[Mythen3] Clock index range: 0"
|
|
infer_action: true
|
|
clkphase:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkphase not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getClockPhase
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- int
|
|
- special::deg
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkphase not implemented for this detector."'
|
|
- condition: args[1] != "deg"
|
|
message: '"Cannot scan argument" + args[1] + ". Did you mean deg?"'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getClockPhaseinDegrees
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- '" deg"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkphase not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setClockPhase
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- special::deg
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"clkphase not implemented for this detector."'
|
|
- condition: args[2] != "deg"
|
|
message: '"Cannot scan argument" + args[2] + ". Did you mean deg?"'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setClockPhaseinDegrees
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[1]
|
|
- '" "'
|
|
- args[2]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: clkphase
|
|
function_alias: clkphase
|
|
help: "[n_clock] [phase] [deg (optional)]\n\t[Gotthard2][Mythen3] Phase of clock\
|
|
\ n_clock. If deg, then phase shift in degrees, else absolute phase shift values.n\t\
|
|
[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock index range: 0"
|
|
infer_action: true
|
|
collectionmode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getCollectionMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::collectionMode
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setCollectionMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::collectionMode
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: collectionmode
|
|
function_alias: collectionmode
|
|
help: "[hole|electron]\n\t[Jungfrau] Sets collection mode to hole or electron. Default\
|
|
\ is hole."
|
|
infer_action: true
|
|
template: true
|
|
column:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getColumn
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setColumn
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: column
|
|
function_alias: column
|
|
help: "[value]\n\tSet Detector column (udp header) to value. \n\tGui uses it to\
|
|
\ rearrange for complete image"
|
|
infer_action: true
|
|
template: true
|
|
compdisabletime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getComparatorDisableTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getComparatorDisableTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setComparatorDisableTime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setComparatorDisableTime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: compdisabletime
|
|
function_alias: compdisabletime
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time before end of\
|
|
\ exposure when comparator is disabled. It is only possible for chipv1.1."
|
|
infer_action: true
|
|
template: true
|
|
confadc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getADCConfiguration
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setADCConfiguration
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- args[2]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '", "'
|
|
- ToStringHex( StringTo<int>(args[2]))
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: confadc
|
|
function_alias: confadc
|
|
help: "[chip index 0-9, -1 for all] [adc index 0-31, -1 for all] [7 bit configuration\
|
|
\ value in hex]\n\t[Gotthard2] Sets configuration for specific chip and adc,\
|
|
\ but configures 1 chip (all adcs for that chip) at a time."
|
|
infer_action: true
|
|
config:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: loadConfig
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: config
|
|
function_alias: config
|
|
help: "\n\tFrees shared memory before loading configuration file. Set up once."
|
|
infer_action: true
|
|
template: true
|
|
configtransceiver:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: configureTransceiver
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: configtransceiver
|
|
function_alias: configtransceiver
|
|
help: "\n\t[Xilinx Ctb] Waits for transceiver to be aligned. Chip had to be configured\
|
|
\ (powered on) before this."
|
|
infer_action: true
|
|
template: true
|
|
counters:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: counters
|
|
function_alias: counters
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
currentsource:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- bool
|
|
- special::currentSourceFix
|
|
- int
|
|
argc: 3
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- bool
|
|
- special::currentSourceFix
|
|
- int
|
|
- special::currentSourceLow
|
|
argc: 4
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: currentsource
|
|
function_alias: currentsource
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
dac:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: is_int(args[0]) && det->getDetectorType().squash() != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash() != defs::XILINX_CHIPTESTBOARD
|
|
message: '"Dac indices can only be used for chip test board. Use daclist
|
|
to get list of dac names for current detector."'
|
|
extra_variables:
|
|
- name: dacIndex
|
|
type: defs::dacIndex
|
|
value: '((det->getDetectorType().squash() == defs::CHIPTESTBOARD || det->getDetectorType().squash()
|
|
== defs::XILINX_CHIPTESTBOARD) && !is_int(args[0])) ? det->getDacIndex(args[0])
|
|
: StringTo<defs::dacIndex>(args[0])'
|
|
function: getDAC
|
|
input:
|
|
- dacIndex
|
|
- '"0"'
|
|
input_types:
|
|
- defs::dacIndex
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- special::mv
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: is_int(args[0]) && det->getDetectorType().squash() != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash() != defs::XILINX_CHIPTESTBOARD
|
|
message: '"Dac indices can only be used for chip test board. Use daclist
|
|
to get list of dac names for current detector."'
|
|
- condition: args[1] != "mv" && args[1] != "mV"
|
|
message: '"Unknown argument " + args[1] + ". Did you mean mV?"'
|
|
extra_variables:
|
|
- name: dacIndex
|
|
type: defs::dacIndex
|
|
value: '((det->getDetectorType().squash() == defs::CHIPTESTBOARD || det->getDetectorType().squash()
|
|
== defs::XILINX_CHIPTESTBOARD) && !is_int(args[0])) ? det->getDacIndex(args[0])
|
|
: StringTo<defs::dacIndex>(args[0])'
|
|
function: getDAC
|
|
input:
|
|
- dacIndex
|
|
- '"1"'
|
|
input_types:
|
|
- defs::dacIndex
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutString(t)
|
|
- '" mV"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: is_int(args[0]) && det->getDetectorType().squash() != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash() != defs::XILINX_CHIPTESTBOARD
|
|
message: '"Dac indices can only be used for chip test board. Use daclist
|
|
to get list of dac names for current detector."'
|
|
extra_variables:
|
|
- name: dacIndex
|
|
type: defs::dacIndex
|
|
value: '((det->getDetectorType().squash() == defs::CHIPTESTBOARD || det->getDetectorType().squash()
|
|
== defs::XILINX_CHIPTESTBOARD) && !is_int(args[0])) ? det->getDacIndex(args[0])
|
|
: StringTo<defs::dacIndex>(args[0])'
|
|
function: setDAC
|
|
input:
|
|
- dacIndex
|
|
- args[1]
|
|
- '"0"'
|
|
input_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- special::mv
|
|
argc: 3
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: is_int(args[0]) && det->getDetectorType().squash() != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash() != defs::XILINX_CHIPTESTBOARD
|
|
message: '"Dac indices can only be used for chip test board. Use daclist
|
|
to get list of dac names for current detector."'
|
|
extra_variables:
|
|
- name: dacIndex
|
|
type: defs::dacIndex
|
|
value: '((det->getDetectorType().squash() == defs::CHIPTESTBOARD || det->getDetectorType().squash()
|
|
== defs::XILINX_CHIPTESTBOARD) && !is_int(args[0])) ? det->getDacIndex(args[0])
|
|
: StringTo<defs::dacIndex>(args[0])'
|
|
function: setDAC
|
|
input:
|
|
- dacIndex
|
|
- args[1]
|
|
- '"1"'
|
|
input_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- bool
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
- '" mV"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dac
|
|
function_alias: dac
|
|
help: 'code: return GetHelpDacWrapper(cmd, args);
|
|
|
|
'
|
|
infer_action: true
|
|
dacindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::DAC_0
|
|
function: getDacIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(static_cast<int>(t) - index)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: dacindex
|
|
function_alias: dacindex
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get the dac index for the given name."
|
|
infer_action: true
|
|
template: true
|
|
daclist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getDacNames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
- condition: cmd == "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: '"This detector already has fixed dac names. Cannot change them."'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setDacNames
|
|
input:
|
|
- args
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: daclist
|
|
function_alias: daclist
|
|
help: "[dacname1 dacname2 .. dacname18] \n\t\t[Ctb][Xilinx_Ctb] Set the list of\
|
|
\ dac names for this detector.\n\t\t[All] Gets the list of dac names for every\
|
|
\ dac for this detector."
|
|
infer_action: true
|
|
template: true
|
|
dacname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::DAC_0
|
|
function: getDacName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
input_types:
|
|
- defs::dacIndex
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::DAC_0
|
|
function: setDacName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
- args[1]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: dacname
|
|
function_alias: dacname
|
|
help: "[0-17][name] \n\t\t[Ctb][Xilinx_Ctb] Set the dac at the given position to\
|
|
\ the given name."
|
|
infer_action: true
|
|
template: true
|
|
dacvalues:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::mv
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: dacvalues
|
|
function_alias: dacvalues
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
datastream:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::portPosition
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDataStream
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::portPosition
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::portPosition
|
|
- bool
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDataStream
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- defs::portPosition
|
|
- bool
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: datastream
|
|
function_alias: datastream
|
|
help: "[left|right] [0, 1]\n\t[Eiger] Enables or disables data streaming from left\
|
|
\ or/and right side of detector for 10 GbE mode. 1 (enabled) by default."
|
|
infer_action: true
|
|
dbitclk:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDBITClock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDBITClock
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dbitclk
|
|
function_alias: dbitclk
|
|
help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz."
|
|
infer_action: true
|
|
template: true
|
|
dbitphase:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2 || det_type == defs::MOENCH
|
|
message: '"dbitphase not implemented for this detector"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getDBITPhase
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::deg
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2 || det_type == defs::MOENCH
|
|
message: '"dbitphase not implemented for this detector"'
|
|
- condition: args[0] != "deg"
|
|
message: '"Unknown dbitphase argument " + args[0] + ". Did you mean deg? "'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getDBITPhaseInDegrees
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
- '" deg"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2 || det_type == defs::MOENCH
|
|
message: '"dbitphase not implemented for this detector"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setDBITPhase
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::deg
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::EIGER || det_type == defs::MYTHEN3 || det_type
|
|
== defs::GOTTHARD2 || det_type == defs::MOENCH
|
|
message: '"dbitphase not implemented for this detector"'
|
|
- condition: args[1] != "deg"
|
|
message: '"Unknown dbitphase 2nd argument " + args[1] + ". Did you mean
|
|
deg? "'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setDBITPhaseInDegrees
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dbitphase
|
|
function_alias: dbitphase
|
|
help: "[n_value] [(optional)deg]\n\t[Ctb][Jungfrau] Phase shift of clock to latch\
|
|
\ digital bits. Absolute phase shift. If deg used, then shift in degrees. \n\t\
|
|
[Ctb]Changing dbitclk also resets dbitphase and sets to previous values."
|
|
infer_action: true
|
|
dbitpipeline:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDBITPipeline
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDBITPipeline
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dbitpipeline
|
|
function_alias: dbitpipeline
|
|
help: "[n_value]\n\t[Ctb][Gotthard2] Pipeline of the clock for latching digital\
|
|
\ bits.\n\t[Gotthard2] Options: 0-7\n\t[Ctb] Options: 0-255"
|
|
infer_action: true
|
|
template: true
|
|
defaultdac:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDefaultDac
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::dacIndex
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- defs::detectorSettings
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDefaultDac
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- defs::detectorSettings
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDefaultDac
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- defs::detectorSettings
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDefaultDac
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- args[2]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- defs::detectorSettings
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[2]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: defaultdac
|
|
function_alias: defaultdac
|
|
help: "[dac name][value][(optional)setting]\n\tSets the default for that dac to\
|
|
\ this value.\n\t[Jungfrau][Moench][Mythen3] When settings is provided, it sets\
|
|
\ the default value only for that setting"
|
|
infer_action: true
|
|
defaultpattern:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: loadDefaultPattern
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: defaultpattern
|
|
function_alias: defaultpattern
|
|
help: "\n\t[Mythen3] Loads and runs default pattern in pattern generator. It is\
|
|
\ to go back to initial settings."
|
|
infer_action: true
|
|
template: true
|
|
delay:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDelayAfterTrigger
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDelayAfterTrigger
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDelayAfterTrigger
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setDelayAfterTrigger
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: delay
|
|
function_alias: delay
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench][Xilinx\
|
|
\ Ctb] Delay after trigger"
|
|
infer_action: true
|
|
template: true
|
|
delayl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDelayAfterTriggerLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDelayAfterTriggerLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: delayl
|
|
function_alias: delayl
|
|
help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay\
|
|
\ Left in Acquisition. \n\t[Gotthard2] only in continuous mode."
|
|
infer_action: true
|
|
template: true
|
|
detectorserverversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDetectorServerVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: detectorserverversion
|
|
function_alias: detectorserverversion
|
|
help: "\n\tOn-board detector server software version"
|
|
infer_action: true
|
|
template: true
|
|
detsize:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDetectorSize
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDetectorSize
|
|
input:
|
|
- defs::xy(StringTo<int>(args[0]),StringTo<int>(args[1]))
|
|
input_types:
|
|
- defs::xy
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: detsize
|
|
function_alias: detsize
|
|
help: "[nx] [ny]\n\tDetector size, ie. Number of channels in x and y dim. This is\
|
|
\ used to calculate module coordinates included in UDP data. \n\tBy default, it\
|
|
\ adds module in y dimension for 2d detectors and in x dimension for 1d detectors\
|
|
\ packet header."
|
|
infer_action: true
|
|
diodelay:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDigitalIODelay
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- uint64_t
|
|
- int
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: diodelay
|
|
function_alias: diodelay
|
|
help: "[0-775]\n\t[Ctb] Delay for diode. Delay is in ps and max of 775 ps. Resolution\
|
|
\ is 25 ps."
|
|
infer_action: true
|
|
dpulse:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDigitalPulsing
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDigitalPulsing
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dpulse
|
|
function_alias: dpulse
|
|
help: "[0, 1]\n\t[Mythen3] Enables or disables digital pulsing. Default is disabled"
|
|
infer_action: true
|
|
template: true
|
|
dr:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDynamicRange
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setDynamicRange
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: dr
|
|
function_alias: dr
|
|
help: "[value]\n\tDynamic Range or number of bits per pixel in detector.\n\t[Eiger]\
|
|
\ Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2, else to\
|
|
\ 0.\n\t[Mythen3] Options: 8, 16, 32\n\t[Jungfrau][Moench][Gotthard][Ctb][Mythen3][Gotthard2][Xilinx\
|
|
\ Ctb] 16"
|
|
infer_action: true
|
|
template: true
|
|
drlist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDynamicRangeList
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: drlist
|
|
function_alias: drlist
|
|
help: "\n\tGets the list of dynamic ranges for this detector."
|
|
infer_action: true
|
|
template: true
|
|
dsamples:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfDigitalSamples
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberOfDigitalSamples
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: dsamples
|
|
function_alias: dsamples
|
|
help: "[n_value]\n\t[Ctb] Number of digital samples expected."
|
|
infer_action: true
|
|
template: true
|
|
execcommand:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: execcommand
|
|
function_alias: execcommand
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
exptime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
detectors:
|
|
MYTHEN3:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptimeForAllGates
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptimeForAllGates
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setExptime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setExptime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: exptime
|
|
function_alias: exptime
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb][Xilinx\
|
|
\ Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and\
|
|
\ trigger mode (internal gating). To specify gate index, use exptime1, exptime2,\
|
|
\ exptime3."
|
|
infer_action: true
|
|
template: true
|
|
exptime1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: exptime1
|
|
function_alias: exptime1
|
|
help: "[n_value]\n\t[Mythen3] Exposure time of gate signal 1 in auto and trigger\
|
|
\ mode (internal gating)."
|
|
infer_action: true
|
|
template: true
|
|
exptime2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: exptime2
|
|
function_alias: exptime2
|
|
help: "[n_value]\n\t[Mythen3] Exposure time of gate signal 2 in auto and trigger\
|
|
\ mode (internal gating)."
|
|
infer_action: true
|
|
template: true
|
|
exptime3:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: getExptime
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: setExptime
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: exptime3
|
|
function_alias: exptime3
|
|
help: "[n_value]\n\t[Mythen3] Exposure time of gate signal 3 in auto and trigger\
|
|
\ mode (internal gating)."
|
|
infer_action: true
|
|
template: true
|
|
exptimel:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptimeLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExptimeLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: exptimel
|
|
function_alias: exptimel
|
|
help: "[(optional unit) ns|us|ms|s]\n\t[Gotthard] Exposure time left for current\
|
|
\ frame. "
|
|
infer_action: true
|
|
template: true
|
|
extrastoragecells:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfAdditionalStorageCells
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setNumberOfAdditionalStorageCells
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: extrastoragecells
|
|
function_alias: extrastoragecells
|
|
help: "[0-15]\n\t[Jungfrau] Only for chipv1.0. Number of additional storage cells.\
|
|
\ Default is 0. For advanced users only. \n\tThe #images = #frames x #triggers\
|
|
\ x (#extrastoragecells + 1)."
|
|
infer_action: true
|
|
template: true
|
|
extsampling:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExternalSampling
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setExternalSampling
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: extsampling
|
|
function_alias: extsampling
|
|
help: "[0, 1]\n\t[Ctb] Enable for external sampling signal for digital data to signal\
|
|
\ by extsampling src command. For advanced users only."
|
|
infer_action: true
|
|
template: true
|
|
extsamplingsrc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExternalSamplingSource
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setExternalSamplingSource
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: extsamplingsrc
|
|
function_alias: extsamplingsrc
|
|
help: "[0-63]\n\t[Ctb] Sampling source signal for digital data. For advanced users\
|
|
\ only."
|
|
infer_action: true
|
|
template: true
|
|
extsig:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getExternalSignalFlags
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- defs::externalSignalFlag
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setExternalSignalFlags
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- defs::externalSignalFlag
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: extsig
|
|
function_alias: extsig
|
|
help: "[n_signal] [signal_type]\n\t[Gotthard][Mythen3] External signal mode for\
|
|
\ trigger timing mode.\n\t[Gotthard] [0] [trigger_in_rising_edge|trigger_in_falling_edge]\n\
|
|
\t[Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off]\n\
|
|
\t where 0 is master input trigger signal, 1-3 is master input gate signals, 4\
|
|
\ is busy out signal and 5-7 is master output gate signals."
|
|
infer_action: true
|
|
fformat:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFileFormat
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::fileFormat
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFileFormat
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::fileFormat
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: fformat
|
|
function_alias: fformat
|
|
help: "[binary|hdf5]\n\tFile format of data file. For HDF5, package must be compiled\
|
|
\ with HDF5 flags. Default is binary."
|
|
infer_action: true
|
|
template: true
|
|
filtercells:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfFilterCells
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberOfFilterCells
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: filtercells
|
|
function_alias: filtercells
|
|
help: "[0-12]\n\t[Jungfrau] Set Filter Cell. Only for chipv1.1. Advanced user Command"
|
|
infer_action: true
|
|
template: true
|
|
filterresistor:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFilterResistor
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFilterResistor
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: filterresistor
|
|
function_alias: filterresistor
|
|
help: "[value] [Gotthard2][Jungfrau] Set filter resistor. Increasing values for\
|
|
\ increasing resistance.\n\t[Gotthard2] Options: [0|1|2|3]. Default is 0.\n\t\
|
|
[Jungfrau] Options: [0|1]. Default is 1."
|
|
infer_action: true
|
|
template: true
|
|
findex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getAcquisitionIndex
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAcquisitionIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint64_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: findex
|
|
function_alias: findex
|
|
help: "[n_value]\n\tFile or Acquisition index."
|
|
infer_action: true
|
|
template: true
|
|
firmwaretest:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: executeFirmwareTest
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: firmwaretest
|
|
function_alias: firmwaretest
|
|
help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware\
|
|
\ test, ie. reads a read fixed pattern from a register."
|
|
infer_action: true
|
|
template: true
|
|
firmwareversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFirmwareVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
detectors:
|
|
EIGER:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFirmwareVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: firmwareversion
|
|
function_alias: firmwareversion
|
|
help: "\n\tFirmware version of detector in format [0xYYMMDD] or an increasing 2\
|
|
\ digit number for Eiger."
|
|
infer_action: true
|
|
fliprows:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFlipRows
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFlipRows
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: fliprows
|
|
function_alias: fliprows
|
|
help: "[0, 1]\n\t[Eiger] flips rows paramater sent to slsreceiver to stream as json\
|
|
\ parameter to flip rows in gui \n\t[Jungfrau][Moench] flips rows in the detector\
|
|
\ itself. For bottom module and number of interfaces must be set to 2. slsReceiver\
|
|
\ and slsDetectorGui does not handle."
|
|
infer_action: true
|
|
template: true
|
|
flowcontrol10g:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTenGigaFlowControl
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTenGigaFlowControl
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: flowcontrol10g
|
|
function_alias: flowcontrol10g
|
|
help: "[0, 1]\n\t[Eiger][Jungfrau][Moench] 10GbE Flow Control."
|
|
infer_action: true
|
|
template: true
|
|
fmaster:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: getMasterFileWrite
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setMasterFileWrite
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: fmaster
|
|
function_alias: fmaster
|
|
help: "[0, 1]\n\tEnable or disable receiver master file. Default is 1."
|
|
infer_action: true
|
|
template: true
|
|
fname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFileNamePrefix
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFileNamePrefix
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: fname
|
|
function_alias: fname
|
|
help: "[name]\n\tFile name prefix for output data file. Default is run. File name:\
|
|
\ [file name prefix]_d[detector index]_f[sub file index]_[acquisition/file index].raw."
|
|
infer_action: true
|
|
template: true
|
|
foverwrite:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFileOverWrite
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFileOverWrite
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: foverwrite
|
|
function_alias: foverwrite
|
|
help: "[0, 1]\n\tEnable or disable file overwriting. Default is 1."
|
|
infer_action: true
|
|
template: true
|
|
fpath:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFilePath
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFilePath
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: fpath
|
|
function_alias: fpath
|
|
help: "[path]\n\tDirectory where output data files are written in receiver. Default\
|
|
\ is '/'. \n\tIf path does not exist and fwrite enabled, it will try to create\
|
|
\ it at start of acquisition."
|
|
infer_action: true
|
|
template: true
|
|
framecounter:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfFramesFromStart
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: framecounter
|
|
function_alias: framecounter
|
|
help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames\
|
|
\ from start run control.\n\t[Gotthard2] only in continuous mode."
|
|
infer_action: true
|
|
template: true
|
|
frames:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfFrames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setNumberOfFrames
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int64_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: frames
|
|
function_alias: frames
|
|
help: "[n_frames]\n\tNumber of frames per acquisition. In trigger mode, number of\
|
|
\ frames per trigger. \n\tCannot be set in modular level. \n\tIn scan mode, number\
|
|
\ of frames is set to number of steps.\n\t[Gotthard2] Burst mode has a maximum\
|
|
\ of 2720 frames."
|
|
infer_action: true
|
|
template: true
|
|
framesl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfFramesLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: framesl
|
|
function_alias: framesl
|
|
help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number\
|
|
\ of frames left in acquisition. \n\t[Gotthard2] only in continuous auto mode."
|
|
infer_action: true
|
|
template: true
|
|
frametime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasurementTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasurementTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: frametime
|
|
function_alias: frametime
|
|
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx\
|
|
\ Ctb] Timestamp at a frame start.\n\t[Gotthard2] not in burst and auto mode."
|
|
infer_action: true
|
|
template: true
|
|
free:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: free
|
|
function_alias: free
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
fwrite:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFileWrite
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFileWrite
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: fwrite
|
|
function_alias: fwrite
|
|
help: "[0, 1]\n\tEnable or disable receiver file write. Default is 0."
|
|
infer_action: true
|
|
template: true
|
|
gaincaps:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::defs::M3_GainCaps
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: gaincaps
|
|
function_alias: gaincaps
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
gainmode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getGainMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::gainMode
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setGainMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::gainMode
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gainmode
|
|
function_alias: gainmode
|
|
help: "[dynamic|forceswitchg1|forceswitchg2|fixg1|fixg2|fixg0]\n\t[Jungfrau] Gain\
|
|
\ mode.\n\tCAUTION: Do not use fixg0 without caution, you can damage the detector!!!"
|
|
infer_action: true
|
|
template: true
|
|
gappixels:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: getGapPixelsinCallback
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setGapPixelsinCallback
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: gappixels
|
|
function_alias: gappixels
|
|
help: "[0, 1]\n\t[Eiger][Jungfrau][Moench] Include Gap pixels in client data call\
|
|
\ back in Detecor api. Will not be in detector streaming, receiver file or streaming.\
|
|
\ Default is 0. "
|
|
infer_action: true
|
|
gatedelay:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getGateDelayForAllGates
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getGateDelayForAllGates
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t, args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: -1
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: -1
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gatedelay
|
|
function_alias: gatedelay
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Mythen3] Gate Delay of all gate\
|
|
\ signals in auto and trigger mode (internal gating)."
|
|
infer_action: true
|
|
gatedelay1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t, args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 0
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gatedelay1
|
|
function_alias: gatedelay1
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Mythen3] Gate Delay of gate signal\
|
|
\ 1 in auto and trigger mode (internal gating)."
|
|
infer_action: true
|
|
gatedelay2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t, args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 1
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gatedelay2
|
|
function_alias: gatedelay2
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Mythen3] Gate Delay of gate signal\
|
|
\ 2 in auto and trigger mode (internal gating)."
|
|
infer_action: true
|
|
gatedelay3:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: getGateDelay
|
|
input:
|
|
- gateIndex
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t, args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
extra_variables:
|
|
- name: gateIndex
|
|
type: int
|
|
value: 2
|
|
function: setGateDelay
|
|
input:
|
|
- gateIndex
|
|
- converted_time
|
|
input_types:
|
|
- int
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gatedelay3
|
|
function_alias: gatedelay3
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Mythen3] Gate Delay of gate signal\
|
|
\ 3 in auto and trigger mode (internal gating)."
|
|
infer_action: true
|
|
gates:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfGates
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberOfGates
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: gates
|
|
function_alias: gates
|
|
help: "[n_gates]\n\t[Mythen3] Number of external gates in gating or trigger_gating\
|
|
\ mode (external gating)."
|
|
infer_action: true
|
|
template: true
|
|
getbit:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[1]) < 0 || StringTo<int>(args[1]) > 31
|
|
message: '"Bit number out of range: " + args[1]'
|
|
function: getBit
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- uint32_t
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: getbit
|
|
function_alias: getbit
|
|
help: "[reg address in hex] [bit index]\n\tGets bit in address."
|
|
infer_action: true
|
|
hardwareversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getHardwareVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: hardwareversion
|
|
function_alias: hardwareversion
|
|
help: "\n\tHardware version of detector. \n\t[Eiger] Hardware version of front FPGA\
|
|
\ on detector."
|
|
infer_action: true
|
|
template: true
|
|
highvoltage:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getHighVoltage
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setHighVoltage
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: highvoltage
|
|
function_alias: highvoltage
|
|
help: "[n_value]\n\tHigh voltage to the sensor in Voltage. \n\t[Gotthard] [0|90|110|120|150|180|200]\
|
|
\ \n\t[Eiger][Mythen3][Gotthard2] 0-200 \n\t[Jungfrau][Moench][Ctb] [0|60-200]"
|
|
infer_action: true
|
|
template: true
|
|
hostname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: hostname
|
|
function_alias: hostname
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
im_a:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredCurrent
|
|
input:
|
|
- defs::I_POWER_A
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: im_a
|
|
function_alias: im_a
|
|
help: "\n\t[Ctb] Measured current of power supply a in mA."
|
|
infer_action: true
|
|
template: true
|
|
im_b:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredCurrent
|
|
input:
|
|
- defs::I_POWER_B
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: im_b
|
|
function_alias: im_b
|
|
help: "\n\t[Ctb] Measured current of power supply b in mA."
|
|
infer_action: true
|
|
template: true
|
|
im_c:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredCurrent
|
|
input:
|
|
- defs::I_POWER_C
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: im_c
|
|
function_alias: im_c
|
|
help: "\n\t[Ctb] Measured current of power supply c in mA."
|
|
infer_action: true
|
|
template: true
|
|
im_d:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredCurrent
|
|
input:
|
|
- defs::I_POWER_D
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: im_d
|
|
function_alias: im_d
|
|
help: "\n\t[Ctb] Measured current of power supply d in mA."
|
|
infer_action: true
|
|
template: true
|
|
im_io:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredCurrent
|
|
input:
|
|
- defs::I_POWER_IO
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: im_io
|
|
function_alias: im_io
|
|
help: "\n\t[Ctb] Measured current of power supply io in mA."
|
|
infer_action: true
|
|
template: true
|
|
imagetest:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getImageTestMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setImageTestMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: imagetest
|
|
function_alias: imagetest
|
|
help: "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when\
|
|
\ taking an acquisition. Default is 0.\n\t[Eiger][Jungfrau][Moench] Only for Virtual\
|
|
\ servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost\
|
|
\ saturated."
|
|
infer_action: true
|
|
template: true
|
|
initialchecks:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: getInitialChecks
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setInitialChecks
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: initialchecks
|
|
function_alias: initialchecks
|
|
help: "[0, 1]\n\t[Mythen3][Gotthard2] Enable or disable intial compatibility and\
|
|
\ other checks at detector start up. It is enabled by default. Must come before\
|
|
\ 'hostname' command to take effect. Can be used to reprogram fpga when current\
|
|
\ firmware is incompatible.\n\tAdvanced User function!"
|
|
infer_action: true
|
|
inj_ch:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getInjectChannel
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setInjectChannel
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: inj_ch
|
|
function_alias: inj_ch
|
|
help: "[offset] [increment]\n\t[Gotthard2] Inject channels with current source for\
|
|
\ calibration. Offset is starting channel that is injected, increment determines\
|
|
\ succeeding channels to be injected."
|
|
infer_action: true
|
|
interpolation:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getInterpolation
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setInterpolation
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: interpolation
|
|
function_alias: interpolation
|
|
help: "[0, 1]\n\t[Mythen3] Enables or disables interpolation. Default is disabled.\
|
|
\ Interpolation mode enables all counters and disables vth3. Disabling sets back\
|
|
\ counter mask and vth3."
|
|
infer_action: true
|
|
template: true
|
|
interruptsubframe:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getInterruptSubframe
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setInterruptSubframe
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: interruptsubframe
|
|
function_alias: interruptsubframe
|
|
help: "[0, 1]\n\t[Eiger] 1 interrupts last subframe at required exposure time. 0\
|
|
\ will wait for last sub frame to finish exposing. 0 is default."
|
|
infer_action: true
|
|
template: true
|
|
kernelversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getKernelVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: kernelversion
|
|
function_alias: kernelversion
|
|
help: "\n\tGet kernel version on the detector including time and date."
|
|
infer_action: true
|
|
template: true
|
|
lastclient:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getLastClientIP
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: lastclient
|
|
function_alias: lastclient
|
|
help: "\n\tClient IP Address that last communicated with the detector."
|
|
infer_action: true
|
|
template: true
|
|
led:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getLEDEnable
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setLEDEnable
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: led
|
|
function_alias: led
|
|
help: "[0, 1]\n\t[Ctb] Switches on/off all LEDs."
|
|
infer_action: true
|
|
template: true
|
|
lock:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDetectorLock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDetectorLock
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: lock
|
|
function_alias: lock
|
|
help: "[0, 1]\n\tLock detector to one IP, 1: locks. Default is unlocked"
|
|
infer_action: true
|
|
template: true
|
|
master:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMaster
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setMaster
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: master
|
|
function_alias: master
|
|
help: "[0, 1]\n\t[Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master\
|
|
\ and other(s) to slaves.\n\t[Gotthard][Gotthard2][Mythen3][Eiger][Jungfrau][Moench]\
|
|
\ Gets if the current (half) module is master."
|
|
infer_action: true
|
|
template: true
|
|
maxadcphaseshift:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMaxADCPhaseShift
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: maxadcphaseshift
|
|
function_alias: maxadcphaseshift
|
|
help: "\n\t[Jungfrau][Moench][Ctb] Absolute maximum Phase shift of ADC clock."
|
|
infer_action: true
|
|
template: true
|
|
maxclkphaseshift:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: type != defs::GOTTHARD2 && type != defs::MYTHEN3
|
|
message: '"maxclkphaseshift not implemented for this detector."'
|
|
extra_variables:
|
|
- name: type
|
|
type: defs::detectorType
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getMaxClockPhaseShift
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: maxclkphaseshift
|
|
function_alias: maxclkphaseshift
|
|
help: "[n_clock]\n\t[Gotthard2][Mythen3] Absolute Maximum Phase shift of clock n_clock.n\t\
|
|
[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock index range: 0"
|
|
infer_action: true
|
|
maxdbitphaseshift:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMaxDBITPhaseShift
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: maxdbitphaseshift
|
|
function_alias: maxdbitphaseshift
|
|
help: "\n\t[Ctb][Jungfrau] Absolute maximum Phase shift of of the clock to latch\
|
|
\ digital bits."
|
|
infer_action: true
|
|
template: true
|
|
measuredperiod:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: measuredperiod
|
|
function_alias: measuredperiod
|
|
help: "[(optional unit) ns|us|ms|s]\n\t[Eiger] Measured frame period between last\
|
|
\ frame and previous one. Can be measured with minimum 2 frames in an acquisition."
|
|
infer_action: true
|
|
template: true
|
|
measuredsubperiod:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredSubFramePeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredSubFramePeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: measuredsubperiod
|
|
function_alias: measuredsubperiod
|
|
help: "[(optional unit) ns|us|ms|s]\n\t[Eiger] Measured sub frame period between\
|
|
\ last sub frame and previous one."
|
|
infer_action: true
|
|
template: true
|
|
moduleid:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getModuleId
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: moduleid
|
|
function_alias: moduleid
|
|
help: "\n\t[Gotthard2][Eiger][Mythen3][Jungfrau][Moench] 16 bit value (ideally unique)\
|
|
\ that is streamed out in the UDP header of the detector. Picked up from a file\
|
|
\ on the module."
|
|
infer_action: true
|
|
template: true
|
|
nextframenumber:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNextFrameNumber
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNextFrameNumber
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint64_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: nextframenumber
|
|
function_alias: nextframenumber
|
|
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Ctb][Xilinx Ctb][Gotthard2] Next frame\
|
|
\ number. Stopping acquisition might result in different frame numbers for different\
|
|
\ modules. So, after stopping, next frame number (max + 1) is set for all the\
|
|
\ modules afterwards."
|
|
infer_action: true
|
|
template: true
|
|
nmod:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: size
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: nmod
|
|
function_alias: nmod
|
|
help: "\n\tNumber of modules in shared memory."
|
|
infer_action: true
|
|
template: true
|
|
numinterfaces:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberofUDPInterfaces
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberofUDPInterfaces
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: numinterfaces
|
|
function_alias: numinterfaces
|
|
help: "[1, 2]\n\t[Jungfrau][Moench] Number of udp interfaces to stream data from\
|
|
\ detector. Default: 1.\n\tAlso enables second interface in receiver for listening\
|
|
\ (Writes a file per interface if writing enabled).\n\tAlso restarts client and\
|
|
\ receiver zmq sockets if zmq streaming enabled.\n\t[Eiger] Only gets with result\
|
|
\ 2."
|
|
infer_action: true
|
|
template: true
|
|
overflow:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOverFlowMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOverFlowMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: overflow
|
|
function_alias: overflow
|
|
help: "[0, 1]\n\t[Eiger] Enable or disable show overflow flag in 32 bit mode. Default\
|
|
\ is disabled."
|
|
infer_action: true
|
|
template: true
|
|
packageversion:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPackageVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: packageversion
|
|
function_alias: packageversion
|
|
help: "\n\tPackage version."
|
|
infer_action: true
|
|
parallel:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getParallelMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setParallelMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: parallel
|
|
function_alias: parallel
|
|
help: "[0, 1]\n\t[Eiger][Mythen3][Gotthard2][Moench] Enable or disable parallel\
|
|
\ mode.\n\t[Mythen3] If exptime is too short, the acquisition will return ERROR\
|
|
\ status and take fewer frames than expected.\n\t[Mythen3][Eiger][Moench] Default:\
|
|
\ Non parallel.\n\t[Gotthard2] Default: Parallel. Non parallel mode works only\
|
|
\ in continuous mode."
|
|
infer_action: true
|
|
template: true
|
|
parameters:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: loadParameters
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: parameters
|
|
function_alias: parameters
|
|
help: "\n\tSets detector measurement parameters to those contained in fname. Set\
|
|
\ up per measurement."
|
|
infer_action: true
|
|
template: true
|
|
partialreset:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPartialReset
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPartialReset
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: partialreset
|
|
function_alias: partialreset
|
|
help: "[0, 1]\n\t[Eiger] Sets up detector to do partial or complete reset at start\
|
|
\ of acquisition. 0 complete reset, 1 partial reset. Default is complete reset.\
|
|
\ Advanced function!"
|
|
infer_action: true
|
|
template: true
|
|
patfname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatterFileName
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: patfname
|
|
function_alias: patfname
|
|
help: "\n\t[Ctb][Mythen3][Xilinx Ctb] Gets the pattern file name including path\
|
|
\ of the last pattern uploaded. Returns an empty if nothing was uploaded or via\
|
|
\ a server default file"
|
|
infer_action: true
|
|
template: true
|
|
patioctrl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatternIOControl
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t, 16)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPatternIOControl
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint64_t
|
|
output:
|
|
- ToStringHex(arg0, 16)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patioctrl
|
|
function_alias: patioctrl
|
|
help: "[64 bit mask]\n\t[Ctb] 64 bit mask defining input (0) and output (1) signals."
|
|
infer_action: true
|
|
template: true
|
|
patlimits:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: -1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatternLoopAddresses
|
|
input:
|
|
- '"-1"'
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: -1
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPatternLoopAddresses
|
|
input:
|
|
- '"-1"'
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(arg1, 4)
|
|
- '", "'
|
|
- ToStringHex(arg2, 4)
|
|
- ''']'''
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patlimits
|
|
function_alias: patlimits
|
|
help: "[start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of complete\
|
|
\ pattern"
|
|
infer_action: true
|
|
patloop:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopAddresses
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- false
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: start
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
- name: stop
|
|
type: int
|
|
value: StringTo<int>(args[2])
|
|
function: setPatternLoopAddresses
|
|
input:
|
|
- level
|
|
- start
|
|
- stop
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- '''['''
|
|
- ToStringHex(start, 4)
|
|
- '", "'
|
|
- ToStringHex(stop, 4)
|
|
- ''']'''
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patloop
|
|
function_alias: patloop
|
|
help: "[0-6] [start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of the\
|
|
\ loop level provided.\n\t[Mythen3] Level options: 0-3 only."
|
|
infer_action: false
|
|
pattern_command: patloop
|
|
patloop0:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopAddresses
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- false
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: start
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
- name: stop
|
|
type: int
|
|
value: StringTo<int>(args[2])
|
|
function: setPatternLoopAddresses
|
|
input:
|
|
- level
|
|
- start
|
|
- stop
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(start, 4)
|
|
- '", "'
|
|
- ToStringHex(stop, 4)
|
|
- ''']'''
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patloop0
|
|
function_alias: patloop0
|
|
help: "\n\tDeprecated command. Use patloop."
|
|
infer_action: false
|
|
pattern_command: patloop
|
|
patloop1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopAddresses
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- false
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: start
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
- name: stop
|
|
type: int
|
|
value: StringTo<int>(args[2])
|
|
function: setPatternLoopAddresses
|
|
input:
|
|
- level
|
|
- start
|
|
- stop
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(start, 4)
|
|
- '", "'
|
|
- ToStringHex(stop, 4)
|
|
- ''']'''
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patloop1
|
|
function_alias: patloop1
|
|
help: "\n\tDeprecated command. Use patloop."
|
|
infer_action: false
|
|
pattern_command: patloop
|
|
patloop2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopAddresses
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- false
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: start
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
- name: stop
|
|
type: int
|
|
value: StringTo<int>(args[2])
|
|
function: setPatternLoopAddresses
|
|
input:
|
|
- level
|
|
- start
|
|
- stop
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(start, 4)
|
|
- '", "'
|
|
- ToStringHex(stop, 4)
|
|
- ''']'''
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patloop2
|
|
function_alias: patloop2
|
|
help: "\n\tDeprecated command. Use patloop."
|
|
infer_action: false
|
|
pattern_command: patloop
|
|
patmask:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatternMask
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t, 16)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPatternMask
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint64_t
|
|
output:
|
|
- ToStringHex(arg0, 16)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patmask
|
|
function_alias: patmask
|
|
help: "[64 bit mask]\n\t[Ctb][Mythen3][Xilinx Ctb] Selects the bits that will have\
|
|
\ a pattern mask applied to the selected patmask for every pattern."
|
|
infer_action: true
|
|
template: true
|
|
patnloop:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopCycles
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: nloops
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternLoopCycles
|
|
input:
|
|
- level
|
|
- nloops
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- nloops
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patnloop
|
|
function_alias: patnloop
|
|
help: "[0-6] [n_cycles] \n\t[Ctb][Mythen3][Xilinx Ctb] Number of cycles of the loop\
|
|
\ level provided.\n\t[Mythen3] Level options: 0-3 only."
|
|
infer_action: false
|
|
pattern_command: patnloop
|
|
patnloop0:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopCycles
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: nloops
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternLoopCycles
|
|
input:
|
|
- level
|
|
- nloops
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- nloops
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patnloop0
|
|
function_alias: patnloop0
|
|
help: "\n\tDeprecated command. Use patnloop."
|
|
infer_action: false
|
|
pattern_command: patnloop
|
|
patnloop1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopCycles
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: nloops
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternLoopCycles
|
|
input:
|
|
- level
|
|
- nloops
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- nloops
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patnloop1
|
|
function_alias: patnloop1
|
|
help: "\n\tDeprecated command. Use patnloop."
|
|
infer_action: false
|
|
pattern_command: patnloop
|
|
patnloop2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternLoopCycles
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: nloops
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternLoopCycles
|
|
input:
|
|
- level
|
|
- nloops
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- nloops
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patnloop2
|
|
function_alias: patnloop2
|
|
help: "\n\tDeprecated command. Use patnloop."
|
|
infer_action: false
|
|
pattern_command: patnloop
|
|
patsetbit:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatternBitMask
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t, 16)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPatternBitMask
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint64_t
|
|
output:
|
|
- ToStringHex(arg0, 16)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patsetbit
|
|
function_alias: patsetbit
|
|
help: "[64 bit mask]\n\t[Ctb][Mythen3][Xilinx Ctb] Sets the mask applied to every\
|
|
\ pattern to the selected bits."
|
|
infer_action: true
|
|
template: true
|
|
patternX:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPattern
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: pattern
|
|
function_alias: pattern
|
|
help: "[fname]\n\t[Mythen3][Ctb][Xilinx Ctb] Loads ASCII pattern file directly to\
|
|
\ server (instead of executing line by line)"
|
|
infer_action: true
|
|
patternstart:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: startPattern
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patternstart
|
|
function_alias: patternstart
|
|
help: "\n\t[Mythen3] Starts Pattern"
|
|
infer_action: true
|
|
template: true
|
|
patwait:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternWaitAddr
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: addr
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternWaitAddr
|
|
input:
|
|
- level
|
|
- addr
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- level
|
|
- ''' '''
|
|
- ToStringHex(addr, 4)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patwait
|
|
function_alias: patwait
|
|
help: "[0-6] [addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait address for loop level provided.\
|
|
\ \n\t[Mythen3] Level options: 0-3 only."
|
|
infer_action: false
|
|
pattern_command: patwait
|
|
patwait0:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternWaitAddr
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: addr
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternWaitAddr
|
|
input:
|
|
- level
|
|
- addr
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- ToStringHex(addr, 4)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patwait0
|
|
function_alias: patwait0
|
|
help: "\n\tDeprecated command. Use patwait."
|
|
infer_action: false
|
|
pattern_command: patwait
|
|
patwait1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternWaitAddr
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: addr
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternWaitAddr
|
|
input:
|
|
- level
|
|
- addr
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- ToStringHex(addr, 4)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patwait1
|
|
function_alias: patwait1
|
|
help: "\n\tDeprecated command. Use patwait."
|
|
infer_action: false
|
|
pattern_command: patwait
|
|
patwait2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
function: getPatternWaitAddr
|
|
input:
|
|
- level
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutStringHex(t, 4)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: level
|
|
type: int
|
|
value: StringTo<int>(args[0])
|
|
- name: addr
|
|
type: int
|
|
value: StringTo<int>(args[1])
|
|
function: setPatternWaitAddr
|
|
input:
|
|
- level
|
|
- addr
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- ToStringHex(addr, 4)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patwait2
|
|
function_alias: patwait2
|
|
help: "\n\tDeprecated command. Use patwait."
|
|
infer_action: false
|
|
pattern_command: patwait
|
|
patwaittime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: patwaittime
|
|
function_alias: patwaittime
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
patwaittime0:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: patwaittime0
|
|
duplicate_function: true
|
|
function_alias: patwaittime
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
patwaittime1:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: patwaittime1
|
|
duplicate_function: true
|
|
function_alias: patwaittime
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
patwaittime2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: patwaittime2
|
|
duplicate_function: true
|
|
function_alias: patwaittime
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
patword:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPatternWord
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(arg0, 4)
|
|
- '", "'
|
|
- OutStringHex(t, 16)
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- uint64_t
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPatternWord
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- uint64_t
|
|
output:
|
|
- '''['''
|
|
- ToStringHex(arg0, 4)
|
|
- '", "'
|
|
- ToStringHex(arg1, 16)
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: patword
|
|
function_alias: patword
|
|
help: "[step or address] [64 bit mask]\n\t[Ctb][Mythen3][Xilinx Ctb] 64 bit pattern\
|
|
\ at address of pattern memory.\n\t[Ctb] read is same as executing pattern"
|
|
infer_action: true
|
|
pedestalmode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPedestalMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::pedestal_parameters
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: args[0] != "0"
|
|
message: '"Unknown argument " + args[0] + ". Did you mean 0 to disable pedestal
|
|
mode?"'
|
|
function: setPedestalMode
|
|
input:
|
|
- defs::pedestalParameters()
|
|
input_types:
|
|
- defs::pedestalParameters
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- uint8_t
|
|
- uint16_t
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPedestalMode
|
|
input:
|
|
- defs::pedestalParameters(StringTo<uint8_t>(args[0]), StringTo<uint16_t>(args[1]))
|
|
input_types:
|
|
- defs::pedestalParameters
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: pedestalmode
|
|
function_alias: pedestalmode
|
|
help: " [frames<uint8_t>] [loops<uint16_t>]\n\t\t[Jungfrau] Enable pedestal mode.\
|
|
\ \n\t\tThe number of frames or triggers is overwritten by: \n\t\t(#pedestal_frames\
|
|
\ x #pedestal_loops x 2). \n\t\tIn auto timing mode or in trigger mode with #frames\
|
|
\ > 1, \n\t\t#frames is overwritten and #triggers = 1, \n\t\telse #triggers is\
|
|
\ overwritten and #frames = 1. \n\t\tOne cannot set #frames, #triggers or timing\
|
|
\ mode in pedestal mode (exception thrown).\n\tpedestalmode [0]\n\t\t[Jungfrau]\
|
|
\ Disable pedestal mode.\n\t\tDisabling pedestal mode will set back the normal\
|
|
\ mode values of #frames and #triggers."
|
|
infer_action: true
|
|
period:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPeriod
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPeriod
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setPeriod
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: period
|
|
function_alias: period
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\tPeriod between frames"
|
|
infer_action: true
|
|
template: true
|
|
periodl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPeriodLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPeriodLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: periodl
|
|
function_alias: periodl
|
|
help: "\n\t[Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period\
|
|
\ left for current frame. \n\t[Gotthard2] only in continuous mode."
|
|
infer_action: true
|
|
template: true
|
|
polarity:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPolarity
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::polarity
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPolarity
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::polarity
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: polarity
|
|
function_alias: polarity
|
|
help: "[pos|neg]\n\t[Mythen3] Sets negative or positive polarity. Default is positive"
|
|
infer_action: true
|
|
template: true
|
|
port:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getControlPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setControlPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: port
|
|
function_alias: port
|
|
help: "[n]\n\tPort number of the control server on detector for detector-client\
|
|
\ tcp interface. Default is 1952. Normally unchanged. Set different ports for\
|
|
\ virtual servers on same pc."
|
|
infer_action: true
|
|
template: true
|
|
powerchip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPowerChip
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPowerChip
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: powerchip
|
|
function_alias: powerchip
|
|
help: "[0, 1]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Xilinx Ctb] Power the chip.\
|
|
\ \n\t[Jungfrau][Moench] Default is 0. Get will return power status. Can be off\
|
|
\ if temperature event occured (temperature over temp_threshold with temp_control\
|
|
\ enabled. Will configure chip (only chip v1.1)\n\t[Mythen3][Gotthard2] Default\
|
|
\ is 1. If module not connected or wrong module, powerchip will fail.\n\t[Xilinx\
|
|
\ Ctb] Default is 0. Also configures the chip if powered on."
|
|
infer_action: true
|
|
template: true
|
|
powerindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::V_POWER_A
|
|
function: getPowerIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(static_cast<int>(t) - index)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: powerindex
|
|
function_alias: powerindex
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get the power index for the given name."
|
|
infer_action: true
|
|
template: true
|
|
powerlist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getPowerNames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
- condition: cmd == "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: '"This detector already has fixed dac names. Cannot change them."'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setPowerNames
|
|
input:
|
|
- args
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: powerlist
|
|
function_alias: powerlist
|
|
help: "[powername1 powername2 .. powername4] \n\t\t[Ctb][Xilinx_Ctb] Set the list\
|
|
\ of power names for this board."
|
|
infer_action: true
|
|
template: true
|
|
powername:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::V_POWER_A
|
|
function: getPowerName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
input_types:
|
|
- defs::dacIndex
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::V_POWER_A
|
|
function: setPowerName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
- args[1]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: powername
|
|
function_alias: powername
|
|
help: "[0-4][name] \n\t\t[Ctb][Xilinx_Ctb] Set the power at the given position to\
|
|
\ the given name."
|
|
infer_action: true
|
|
template: true
|
|
powervalues:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
ctb_output_list:
|
|
GETFCN: getPower
|
|
GETFCNLIST: getPowerList
|
|
GETFCNNAME: getPowerNames
|
|
printable_name: '*name_it++'
|
|
suffix: mV
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: powervalues
|
|
function_alias: powervalues
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get values of all powers."
|
|
infer_action: true
|
|
programfpga:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: programFPGA
|
|
input:
|
|
- args[0]
|
|
- '"0"'
|
|
input_types:
|
|
- std::string
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- special::path
|
|
- special::force-delete-normal-file
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: args[1] != "--force-delete-normal-file"
|
|
message: '"Could not scan second argument. Did you mean --force-delete-normal-file?"'
|
|
function: programFPGA
|
|
input:
|
|
- args[0]
|
|
- '"1"'
|
|
input_types:
|
|
- std::string
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: programfpga
|
|
function_alias: programfpga
|
|
help: "[fname.pof | fname.rbf (full path)][(opitonal)--force-delete-normal-file]\n\
|
|
\t[Jungfrau][Moench][Ctb] Programs FPGA from pof file (full path). Then, detector\
|
|
\ controller is rebooted. \n\t\tUse --force-delete-normal-file argument, if normal\
|
|
\ file found in device tree, it must be deleted, a new device drive created and\
|
|
\ programming continued.\n\t[Mythen3][Gotthard2] Programs FPGA from rbf file (full\
|
|
\ path). Then, detector controller is rebooted."
|
|
infer_action: true
|
|
pulse:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: c
|
|
type: defs::xy
|
|
value: defs::xy(StringTo<int>(args[1]), StringTo<int>(args[2]))
|
|
function: pulsePixel
|
|
input:
|
|
- args[0]
|
|
- c
|
|
input_types:
|
|
- int
|
|
- defs::xy
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: pulse
|
|
function_alias: pulse
|
|
help: "[n_times] [x] [y]\n\t[Eiger] Pulse pixel n number of times at coordinates\
|
|
\ (x, y). Advanced User!"
|
|
infer_action: true
|
|
template: true
|
|
pulsechip:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: pulseChip
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: pulsechip
|
|
function_alias: pulsechip
|
|
help: "[n_times] \n\t[Eiger] Pulse chip n times. If n is -1, resets to normal mode\
|
|
\ (reset chip completely at start of acquisition, where partialreset = 0). Advanced\
|
|
\ User!"
|
|
infer_action: true
|
|
pulsenmove:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: c
|
|
type: defs::xy
|
|
value: defs::xy(StringTo<int>(args[1]), StringTo<int>(args[2]))
|
|
function: pulsePixelNMove
|
|
input:
|
|
- args[0]
|
|
- c
|
|
input_types:
|
|
- int
|
|
- defs::xy
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: pulsenmove
|
|
function_alias: pulsenmove
|
|
help: "[n_times] [x] [y]\n\t[Eiger] Pulse pixel n number of times and moves relatively\
|
|
\ by (x, y). Advanced User!"
|
|
infer_action: true
|
|
template: true
|
|
pumpprobe:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPumpProbe
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPumpProbe
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: pumpprobe
|
|
function_alias: pumpprobe
|
|
help: "[0, 1]\n\t[Mythen3] Enables or disables pump probe mode. Default is disabled.\
|
|
\ Pump probe mode only enables vth2. Disabling sets back to previous value."
|
|
infer_action: true
|
|
template: true
|
|
quad:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getQuad
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setQuad
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: quad
|
|
function_alias: quad
|
|
help: "[0, 1]\n\t[Eiger] Sets detector size to a quad. 0 (disabled) is default.\
|
|
\ (Specific hardware required)."
|
|
infer_action: true
|
|
ratecorr:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: ratecorr
|
|
function_alias: ratecorr
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
readnrows:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getReadNRows
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setReadNRows
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: readnrows
|
|
function_alias: readnrows
|
|
help: "\n\t[1-256]\n\t\t[Eiger] Number of rows to readout per half module starting\
|
|
\ from the centre. Options: 0 - 256. 256 is default. The permissible values depend\
|
|
\ on dynamic range and 10Gbe enabled.\n\t[8-512 (multiple of 8)]\n\t\t[Jungfrau]\
|
|
\ Number of rows per module starting from the centre. Options: 8 - 512, must be\
|
|
\ multiples of 8. Default is 512.\n\t\t[Moench] Number of rows per module starting\
|
|
\ from the centre. Options:16 - 400, must be multiples of 16. Default is 400."
|
|
infer_action: true
|
|
template: true
|
|
readout:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: startDetectorReadout
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: readout
|
|
function_alias: readout
|
|
help: "\n\t[Mythen3] Starts detector readout. Status changes to TRANSMITTING and\
|
|
\ automatically returns to idle at the end of readout."
|
|
infer_action: true
|
|
template: true
|
|
readoutspeed:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::CHIPTESTBOARD || det_type == defs::XILINX_CHIPTESTBOARD
|
|
message: '"ReadoutSpeed not implemented. Did you mean runclk?"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getReadoutSpeed
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::speedLevel
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_type == defs::CHIPTESTBOARD || det_type == defs::XILINX_CHIPTESTBOARD
|
|
message: '"ReadoutSpeed not implemented. Did you mean runclk?"'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setReadoutSpeed
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::speedLevel
|
|
output:
|
|
- ToString(StringTo<defs::speedLevel>(args[0]))
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: readoutspeed
|
|
function_alias: readoutspeed
|
|
help: "\n\t[0 or full_speed|1 or half_speed|2 or quarter_speed]\n\t[Eiger][Jungfrau][Moench][Mythen3]\
|
|
\ Readout speed of chip.\n\t[Eiger][Moench] Default speed is full_speed.\n\t[Jungfrau][Mythen3]\
|
|
\ Default speed is half_speed. \n\t[Jungfrau] full_speed option only available\
|
|
\ from v2.0 boards and is recommended to set number of interfaces to 2. Also overwrites\
|
|
\ adcphase to recommended default.\n\t [144|108]\n\t\t[Gotthard2] Readout speed\
|
|
\ of chip in MHz. Default is 108."
|
|
infer_action: true
|
|
readoutspeedlist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getReadoutSpeedList
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: readoutspeedlist
|
|
function_alias: readoutspeedlist
|
|
help: "\n\tList of readout speed levels implemented for this detector."
|
|
infer_action: true
|
|
template: true
|
|
rebootcontroller:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: rebootController
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rebootcontroller
|
|
function_alias: rebootcontroller
|
|
help: "\n\t[Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2][Xilinx Ctb] Reboot\
|
|
\ controller of detector."
|
|
infer_action: true
|
|
template: true
|
|
reg:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: readRegister
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint32_t
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: writeRegister
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"0"'
|
|
input_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
- special::validate
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: args[2] != "--validate"
|
|
message: '"Could not scan third argument. Did you mean --validate?"'
|
|
function: writeRegister
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"1"'
|
|
input_types:
|
|
- uint32_t
|
|
- uint32_t
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: reg
|
|
function_alias: reg
|
|
help: "[address] [32 bit value][(optional)--validate]\n\t[Mythen3][Gotthard2] Reads/writes\
|
|
\ to a 32 bit register in hex. Advanced Function!\n\tGoes to stop server. Hence,\
|
|
\ can be called while calling blocking acquire().\n\t\t Use --validate to force\
|
|
\ validation when writing to it.\n\t[Eiger] +0x100 for only left, +0x200 for only\
|
|
\ right."
|
|
infer_action: true
|
|
resetdacs:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::hard
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: args[0] != "hard"
|
|
message: '"Unknown argument " + args[0] + ". Did you mean hard?"'
|
|
function: resetToDefaultDacs
|
|
input:
|
|
- '"1"'
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: resetToDefaultDacs
|
|
input:
|
|
- '"0"'
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: resetdacs
|
|
function_alias: resetdacs
|
|
help: "[(optional) hard] \n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3]Reset\
|
|
\ dac values to the defaults. A 'hard' optional reset will reset the dacs to the\
|
|
\ hardcoded defaults in on-board detector server."
|
|
infer_action: true
|
|
resetfpga:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: resetFPGA
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: resetfpga
|
|
function_alias: resetfpga
|
|
help: "\n\t[Jungfrau][Moench][Ctb][Xilinx Ctb] Reset FPGA."
|
|
infer_action: true
|
|
template: true
|
|
roi:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getROI
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
exceptions:
|
|
- condition: det_id == -1 && det->size() > 1
|
|
message: '"Cannot execute ROI at multi module level"'
|
|
extra_variables:
|
|
- name: t
|
|
type: defs::ROI
|
|
value: defs::ROI(StringTo<int>(args[0]), StringTo<int>(args[1]))
|
|
function: setROI
|
|
input:
|
|
- t
|
|
input_types:
|
|
- defs::ROI
|
|
output:
|
|
- t
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: roi
|
|
function_alias: roi
|
|
help: "[xmin] [xmax] \n\t[Gotthard] Region of interest in detector.\n\tOptions:\
|
|
\ Only a single ROI per module. \n\tEither all channels or a single adc or 2 chips\
|
|
\ (256 channels). Default is all channels enabled (-1 -1). "
|
|
infer_action: true
|
|
romode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getReadoutMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::readoutMode
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setReadoutMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::readoutMode
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: romode
|
|
function_alias: romode
|
|
help: "[analog|digital|analog_digital|transceiver|digital_transceiver]\n\t[Ctb][xilinx\
|
|
\ Ctb] Readout mode. [Ctb] Default is analog. [Xilinx Ctb] Default is Transceiver\
|
|
\ (only one implemented so far)"
|
|
infer_action: true
|
|
template: true
|
|
row:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRow
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRow
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: row
|
|
function_alias: row
|
|
help: "[value]\n\tSet Detector row (udp header) to value. \n\tGui uses it to rearrange\
|
|
\ for complete image"
|
|
infer_action: true
|
|
template: true
|
|
runclk:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRUNClock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRUNClock
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: runclk
|
|
function_alias: runclk
|
|
help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz."
|
|
infer_action: true
|
|
template: true
|
|
runtime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getActualTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getActualTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: runtime
|
|
function_alias: runtime
|
|
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx\
|
|
\ Ctb] Time from detector start up.\n\t[Gotthard2] not in burst and auto mode."
|
|
infer_action: true
|
|
template: true
|
|
rx_arping:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxArping
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxArping
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_arping
|
|
function_alias: rx_arping
|
|
help: "[0, 1]\n\tStarts a thread in slsReceiver to arping the interface it is listening\
|
|
\ to every minute. Useful in 10G mode."
|
|
infer_action: true
|
|
template: true
|
|
rx_clearroi:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: clearRxROI
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_clearroi
|
|
function_alias: rx_clearroi
|
|
help: "\n\tResets Region of interest in receiver. Default is all channels/pixels\
|
|
\ enabled."
|
|
infer_action: true
|
|
template: true
|
|
rx_dbitlist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_dbitlist
|
|
function_alias: rx_dbitlist
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
rx_dbitoffset:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxDbitOffset
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxDbitOffset
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_dbitoffset
|
|
function_alias: rx_dbitoffset
|
|
help: "[n_bytes]\n\t[Ctb] Offset in bytes in digital data to skip in receiver."
|
|
infer_action: true
|
|
template: true
|
|
rx_discardpolicy:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxFrameDiscardPolicy
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::frameDiscardPolicy
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxFrameDiscardPolicy
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::frameDiscardPolicy
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_discardpolicy
|
|
function_alias: rx_discardpolicy
|
|
help: "[nodiscard (default)|discardempty|discardpartial(fastest)]\n\tFrame discard\
|
|
\ policy of receiver. nodiscard does not discard frames, discardempty discards\
|
|
\ empty frames, discardpartial discards partial frames."
|
|
infer_action: true
|
|
template: true
|
|
rx_fifodepth:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxFifoDepth
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxFifoDepth
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_fifodepth
|
|
function_alias: rx_fifodepth
|
|
help: "[n_frames]\n\tSet the number of frames in the receiver fifo depth (buffer\
|
|
\ between listener and writer threads)."
|
|
infer_action: true
|
|
template: true
|
|
rx_frameindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxCurrentFrameIndex
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_frameindex
|
|
function_alias: rx_frameindex
|
|
help: "\n\tCurrent frame index received for each port in receiver during acquisition."
|
|
infer_action: true
|
|
template: true
|
|
rx_framescaught:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFramesCaught
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_framescaught
|
|
function_alias: rx_framescaught
|
|
help: "\n\tNumber of frames caught by each port in receiver."
|
|
infer_action: true
|
|
template: true
|
|
rx_framesperfile:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFramesPerFile
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFramesPerFile
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_framesperfile
|
|
function_alias: rx_framesperfile
|
|
help: "[n_frames]\n\tNumber of frames per file in receiver in an acquisition. Default\
|
|
\ depends on detector type. 0 is infinite or all frames in single file."
|
|
infer_action: true
|
|
template: true
|
|
rx_hostname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_hostname
|
|
function_alias: rx_hostname
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
rx_jsonaddheader:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_jsonaddheader
|
|
function_alias: rx_jsonaddheader
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
rx_jsonpara:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getAdditionalJsonParameter
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAdditionalJsonParameter
|
|
input:
|
|
- args[0]
|
|
- '""'
|
|
input_types:
|
|
- std::string
|
|
- std::string
|
|
output:
|
|
- args[0]
|
|
- '" deleted"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- std::string
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAdditionalJsonParameter
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- std::string
|
|
- std::string
|
|
output:
|
|
- '"{"'
|
|
- args[0]
|
|
- '": "'
|
|
- args[1]
|
|
- '"}"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_jsonpara
|
|
function_alias: rx_jsonpara
|
|
help: "[key1] [value1]\n\t[Receiver] Additional json header parameter streamed out\
|
|
\ from receiver. If not found in header, the pair is appended. An empty values\
|
|
\ deletes parameter. Max 20 characters for each key/value."
|
|
infer_action: true
|
|
rx_lastclient:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxLastClientIP
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_lastclient
|
|
function_alias: rx_lastclient
|
|
help: "\n\tClient IP Address that last communicated with the receiver."
|
|
infer_action: true
|
|
template: true
|
|
rx_lock:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxLock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxLock
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_lock
|
|
function_alias: rx_lock
|
|
help: "[0, 1]\n\tLock receiver to one client IP, 1 locks, 0 unlocks. Default is\
|
|
\ unlocked."
|
|
infer_action: true
|
|
template: true
|
|
rx_missingpackets:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumMissingPackets
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_missingpackets
|
|
function_alias: rx_missingpackets
|
|
help: "\n\tNumber of missing packets for receiver. If negative, they are packets\
|
|
\ in excess."
|
|
infer_action: true
|
|
template: true
|
|
rx_padding:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPartialFramesPadding
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPartialFramesPadding
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_padding
|
|
function_alias: rx_padding
|
|
help: "[0, 1]\n\tPartial frames padding enable in the receiver. Default: enabled.\
|
|
\ Disabling is fastest."
|
|
infer_action: true
|
|
template: true
|
|
rx_printconfig:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: printRxConfiguration
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_printconfig
|
|
function_alias: rx_printconfig
|
|
help: "\n\tPrints the receiver configuration."
|
|
infer_action: true
|
|
template: true
|
|
rx_realudpsocksize:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxRealUDPSocketBufferSize
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_realudpsocksize
|
|
function_alias: rx_realudpsocksize
|
|
help: "\n\tActual udp socket buffer size. Double the size of rx_udpsocksize due\
|
|
\ to kernel bookkeeping."
|
|
infer_action: true
|
|
template: true
|
|
rx_roi:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 4
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_roi
|
|
function_alias: rx_roi
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
rx_silent:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxSilentMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxSilentMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_silent
|
|
function_alias: rx_silent
|
|
help: "[0, 1]\n\tSwitch on or off receiver text output during acquisition."
|
|
infer_action: true
|
|
template: true
|
|
rx_start:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: startReceiver
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_start
|
|
function_alias: rx_start
|
|
help: "\n\tStarts receiver listener for detector data packets and create a data\
|
|
\ file (if file write enabled)."
|
|
infer_action: true
|
|
template: true
|
|
rx_status:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getReceiverStatus
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: 'true'
|
|
message: '"Cannot put. Did you mean to use command: \"rx_start\" or \"rx_stop\"?"'
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_status
|
|
function_alias: rx_status
|
|
help: "[running, idle, transmitting]\n\tReceiver listener status."
|
|
infer_action: true
|
|
rx_stop:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: stopReceiver
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_stop
|
|
function_alias: rx_stop
|
|
help: "\n\tStops receiver listener for detector data packets and closes current\
|
|
\ data file (if file write enabled)."
|
|
infer_action: true
|
|
template: true
|
|
rx_tcpport:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setRxPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_tcpport
|
|
function_alias: rx_tcpport
|
|
help: "[port]\n\tTCP port for client-receiver communication. Default is 1954. Must\
|
|
\ be different if multiple receivers on same pc. Must be first command to set\
|
|
\ a receiver parameter. Multi command will automatically increment for individual\
|
|
\ modules."
|
|
infer_action: true
|
|
template: true
|
|
rx_threads:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxThreadIds
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_threads
|
|
function_alias: rx_threads
|
|
help: "\n\tGet kernel thread ids from the receiver in order of [parent, tcp, listener\
|
|
\ 0, processor 0, streamer 0, listener 1, processor 1, streamer 1, arping]. If\
|
|
\ no streamer yet or there is no second interface, it gives 0 in its place."
|
|
infer_action: true
|
|
template: true
|
|
rx_udpsocksize:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxUDPSocketBufferSize
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxUDPSocketBufferSize
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_udpsocksize
|
|
function_alias: rx_udpsocksize
|
|
help: "[n_size]\n\tUDP socket buffer size in receiver. Tune rmem_default and rmem_max\
|
|
\ accordingly. Max value is INT_MAX/2."
|
|
infer_action: true
|
|
template: true
|
|
rx_version:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getReceiverVersion
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: rx_version
|
|
function_alias: rx_version
|
|
help: "\n\tReceiver version"
|
|
infer_action: true
|
|
template: true
|
|
rx_zmqfreq:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxZmqFrequency
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxZmqFrequency
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_zmqfreq
|
|
function_alias: rx_zmqfreq
|
|
help: "[nth frame]\n\tFrequency of frames streamed out from receiver via zmq\n\t\
|
|
Default: 1, Means every frame is streamed out. \n\tIf 2, every second frame is\
|
|
\ streamed out. \n\tIf 0, streaming timer is the timeout, after which current\
|
|
\ frame is sent out. (default timeout is 500 ms). Usually used for gui purposes."
|
|
infer_action: true
|
|
template: true
|
|
rx_zmqhwm:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxZmqHwm
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setRxZmqHwm
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_zmqhwm
|
|
function_alias: rx_zmqhwm
|
|
help: "[n_value]\n\tReceiver's zmq send high water mark. Default is the zmq library's\
|
|
\ default (1000). This is a high number and can be set to 2 for gui purposes.\
|
|
\ One must also set the client's receive high water mark to similar value. Final\
|
|
\ effect is sum of them. Also restarts receiver zmq streaming if enabled. Can\
|
|
\ set to -1 to set default value."
|
|
infer_action: true
|
|
template: true
|
|
rx_zmqip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: rx_zmqip
|
|
function_alias: rx_zmqip
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
rx_zmqport:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxZmqPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setRxZmqPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_zmqport
|
|
function_alias: rx_zmqport
|
|
help: "[port]\n\tZmq port for data to be streamed out of the receiver. Also restarts\
|
|
\ receiver zmq streaming if enabled. Default is 30001. Modified only when using\
|
|
\ an intermediate process between receiver and client(gui). Must be different\
|
|
\ for every detector (and udp port). Multi command will automatically increment\
|
|
\ for individual modules."
|
|
infer_action: true
|
|
template: true
|
|
rx_zmqstartfnum:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxZmqStartingFrame
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxZmqStartingFrame
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_zmqstartfnum
|
|
function_alias: rx_zmqstartfnum
|
|
help: "[fnum]\n\tThe starting frame index to stream out. 0 by default, which streams\
|
|
\ the first frame in an acquisition, and then depending on the rx zmq frequency/\
|
|
\ timer"
|
|
infer_action: true
|
|
template: true
|
|
rx_zmqstream:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getRxZmqDataStream
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setRxZmqDataStream
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: rx_zmqstream
|
|
function_alias: rx_zmqstream
|
|
help: "[0, 1]\n\tEnable/ disable data streaming from receiver via zmq (eg. to GUI\
|
|
\ or to another process for further processing). This creates/ destroys zmq streamer\
|
|
\ threads in receiver. \n\tSwitching to Gui automatically enables data streaming\
|
|
\ in receiver. \n\tSwitching back to command line acquire will require disabling\
|
|
\ data streaming in receiver for fast applications. "
|
|
infer_action: true
|
|
template: true
|
|
samples:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: samples
|
|
function_alias: samples
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
savepattern:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: savePattern
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: savepattern
|
|
function_alias: savepattern
|
|
help: "\n\t[Ctb][Mythen3][Xilinx Ctb] Saves pattern to file (ascii). \n\t[Ctb] Also\
|
|
\ executes pattern."
|
|
infer_action: true
|
|
template: true
|
|
scan:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getScan
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[0]) != 0
|
|
message: '"Unknown argument " + args[0] + ". Did you mean 0 to disable scan?"'
|
|
function: setScan
|
|
input:
|
|
- defs::scanParameters()
|
|
input_types:
|
|
- auto
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 4
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setScan
|
|
input:
|
|
- defs::scanParameters(StringTo<defs::dacIndex>(args[0]), StringTo<int>(args[1]),
|
|
StringTo<int>(args[2]), StringTo<int>(args[3]))
|
|
input_types:
|
|
- auto
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- int
|
|
- int
|
|
- int
|
|
- std::string
|
|
argc: 5
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setScan
|
|
input:
|
|
- defs::scanParameters(StringTo<defs::dacIndex>(args[0]), StringTo<int>(args[1]),
|
|
StringTo<int>(args[2]), StringTo<int>(args[3]), t)
|
|
input_types:
|
|
- auto
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
separate_time_units:
|
|
input: args[4]
|
|
output:
|
|
- t
|
|
- unit
|
|
store_result_in_t: false
|
|
command_name: scan
|
|
function_alias: scan
|
|
help: "[dac_name|0|trimbits] [start_val] [stop_val] [step_size] [dac settling time\
|
|
\ ns|us|ms|s]\n\tEnables/ disables scans for dac and trimbits \n\tEnabling scan\
|
|
\ sets number of frames to number of steps in receiver. \n\tTo cancel scan configuration,\
|
|
\ set dac to '0', which also sets number of frames to 1. \n\t[Eiger][Mythen3]\
|
|
\ Use trimbits as dac name for a trimbit scan."
|
|
infer_action: true
|
|
scanerrmsg:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getScanErrorMessage
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: scanerrmsg
|
|
function_alias: scanerrmsg
|
|
help: "\n\tGets Scan error message if scan ended in error for non blocking acquisitions."
|
|
infer_action: true
|
|
template: true
|
|
selinterface:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSelectedUDPInterface
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: selectUDPInterface
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: selinterface
|
|
function_alias: selinterface
|
|
help: "[0, 1]\n\t[Jungfrau][Moench] The udp interface to stream data from detector.\
|
|
\ Effective only when number of interfaces is 1. Default: 0 (outer)"
|
|
infer_action: true
|
|
template: true
|
|
serialnumber:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSerialNumber
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: serialnumber
|
|
function_alias: serialnumber
|
|
help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb]\n\tSerial number\
|
|
\ of detector."
|
|
infer_action: true
|
|
template: true
|
|
setbit:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[1]) < 0 || StringTo<int>(args[1]) > 31
|
|
message: '"Bit number out of range: " + args[1]'
|
|
function: setBit
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"0"'
|
|
input_types:
|
|
- uint32_t
|
|
- int
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- uint32_t
|
|
- int
|
|
- special::validate
|
|
argc: 3
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[1]) < 0 || StringTo<int>(args[1]) > 31
|
|
message: '"Bit number out of range: " + args[1]'
|
|
- condition: args[2] != "--validate"
|
|
message: '"Could not scan third argument. Did you mean --validate?"'
|
|
function: setBit
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- '"1"'
|
|
input_types:
|
|
- uint32_t
|
|
- int
|
|
- bool
|
|
output:
|
|
- '"["'
|
|
- args[0]
|
|
- '", "'
|
|
- args[1]
|
|
- '"]"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: setbit
|
|
function_alias: setbit
|
|
help: "[reg address in hex] [bit index]\n\tSets bit in address.\n\tUse --validate\
|
|
\ to force validation."
|
|
infer_action: true
|
|
template: true
|
|
settings:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSettings
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::detectorSettings
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSettings
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::detectorSettings
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: settings
|
|
function_alias: settings
|
|
help: "[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain,\
|
|
\ highgain0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg,\
|
|
\ g1_lg, g2_hc_hg, g2_hc_lg, g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]\n\t Detector\
|
|
\ Settings\n\t[Jungfrau] - [ gain0 | highgain0]\n\t[Gotthard] - [dynamicgain |\
|
|
\ highgain | lowgain | mediumgain | veryhighgain]\n\t[Gotthard] Also loads default\
|
|
\ dacs on to the detector.\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]\n\
|
|
\t[Mythen3] - [standard | fast | highgain] Also changes vrshaper and vrpreamp.\
|
|
\ \n\t[Eiger] Use threshold or thresholdnotb. \n\t[Eiger] threshold and settings\
|
|
\ loaded from file found in settingspath. \n\t[Moench] - [g1_hg | g1_lg | g2_hc_hg\
|
|
\ | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]"
|
|
infer_action: true
|
|
template: true
|
|
settingslist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSettingsList
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: settingslist
|
|
function_alias: settingslist
|
|
help: "\n\tList of settings implemented for this detector."
|
|
infer_action: true
|
|
template: true
|
|
settingspath:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSettingsPath
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSettingsPath
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: settingspath
|
|
function_alias: settingspath
|
|
help: "[path]\n\t[Eiger][Mythen3] Directory where settings files are loaded from/to."
|
|
infer_action: true
|
|
template: true
|
|
signalindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: getSignalIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- static_cast<int>(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: signalindex
|
|
function_alias: signalindex
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get the signal index for the given name."
|
|
infer_action: true
|
|
template: true
|
|
signallist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getSignalNames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
- condition: cmd == "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: '"This detector already has fixed dac names. Cannot change them."'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setSignalNames
|
|
input:
|
|
- args
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: signallist
|
|
function_alias: signallist
|
|
help: "[signalname1 signalname2 .. signalname63] \n\t\t[Ctb][Xilinx_Ctb] Set the\
|
|
\ list of signal names for this board."
|
|
infer_action: true
|
|
template: true
|
|
signalname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: getSignalName
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
function: setSignalName
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: signalname
|
|
function_alias: signalname
|
|
help: "[0-63][name] \n\t\t[Ctb][Xilinx_Ctb] Set the signal at the given position\
|
|
\ to the given name."
|
|
infer_action: true
|
|
template: true
|
|
sleep:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: sleep
|
|
function_alias: sleep
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
slowadc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: slowadc
|
|
function_alias: slowadc
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
slowadcindex:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::SLOW_ADC0
|
|
function: getSlowADCIndex
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(static_cast<int>(t) - index)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: slowadcindex
|
|
function_alias: slowadcindex
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get the slowadc index for the given name."
|
|
infer_action: true
|
|
template: true
|
|
slowadclist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: getSlowADCNames
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: cmd != "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
- condition: cmd == "daclist" && det_type != defs::CHIPTESTBOARD && det_type
|
|
!= defs::XILINX_CHIPTESTBOARD
|
|
message: '"This detector already has fixed dac names. Cannot change them."'
|
|
extra_variables:
|
|
- name: det_type
|
|
type: auto
|
|
value: det->getDetectorType().squash(defs::GENERIC);
|
|
function: setSlowADCNames
|
|
input:
|
|
- args
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: slowadclist
|
|
function_alias: slowadclist
|
|
help: "[slowadcname1 slowadcname2 .. slowadcname7] \n\t\t[Ctb][Xilinx_Ctb] Set the\
|
|
\ list of slowadc names for this board."
|
|
infer_action: true
|
|
template: true
|
|
slowadcname:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::SLOW_ADC0
|
|
function: getSlowADCName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
input_types:
|
|
- defs::dacIndex
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det->getDetectorType().squash(defs::GENERIC) != defs::CHIPTESTBOARD
|
|
&& det->getDetectorType().squash(defs::GENERIC) != defs::XILINX_CHIPTESTBOARD
|
|
message: cmd + " only allowed for CTB."
|
|
extra_variables:
|
|
- name: index
|
|
type: defs::dacIndex
|
|
value: defs::SLOW_ADC0
|
|
function: setSlowADCName
|
|
input:
|
|
- static_cast<defs::dacIndex>(StringTo<int>(args[0]) + index)
|
|
- args[1]
|
|
input_types:
|
|
- defs::dacIndex
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: slowadcname
|
|
function_alias: slowadcname
|
|
help: "[0-7][name] \n\t\t[Ctb][Xilinx_Ctb] Set the slowadc at the given position\
|
|
\ to the given name."
|
|
infer_action: true
|
|
template: true
|
|
slowadcvalues:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
ctb_output_list:
|
|
GETFCN: getSlowADC
|
|
GETFCNLIST: getSlowADCList
|
|
GETFCNNAME: getSlowADCNames
|
|
printable_name: '*name_it++'
|
|
suffix: uV
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: slowadcvalues
|
|
function_alias: slowadcvalues
|
|
help: "[name] \n\t\t[Ctb][Xilinx_Ctb] Get values of all slow adcs."
|
|
infer_action: true
|
|
start:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: startDetector
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: start
|
|
function_alias: start
|
|
help: "\n\tStarts detector acquisition. Status changes to RUNNING or WAITING and\
|
|
\ automatically returns to idle at the end of acquisition. If the acquisition\
|
|
\ was abruptly stopped, some detectors come back to STOPPED."
|
|
infer_action: true
|
|
template: true
|
|
status:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDetectorStatus
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: 'true'
|
|
message: '"Cannot put. Did you mean to use command: \"start\" or \"stop\"?"'
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: status
|
|
function_alias: status
|
|
help: "[running, error, transmitting, finished, waiting, idle]\n\tDetector status.\
|
|
\ Goes to stop server."
|
|
infer_action: true
|
|
stop:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: stopDetector
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: stop
|
|
function_alias: stop
|
|
help: "\n\tAbort detector acquisition. Status changes to IDLE or STOPPED. Goes to\
|
|
\ stop server."
|
|
infer_action: true
|
|
template: true
|
|
stopport:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getStopPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setStopPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: stopport
|
|
function_alias: stopport
|
|
help: "[n]\n\tPort number of the stop server on detector for detector-client tcp\
|
|
\ interface. Default is 1953. Normally unchanged."
|
|
infer_action: true
|
|
template: true
|
|
storagecell_delay:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getStorageCellDelay
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getStorageCellDelay
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setStorageCellDelay
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setStorageCellDelay
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: storagecell_delay
|
|
function_alias: storagecell_delay
|
|
help: "[duration (0-1638375 ns)] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Additional\
|
|
\ time delay between 2 consecutive exposures in burst mode (resolution of 25ns).\
|
|
\ Only applicable for chipv1.0. For advanced users only."
|
|
infer_action: true
|
|
template: true
|
|
storagecell_start:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getStorageCellStart
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setStorageCellStart
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: storagecell_start
|
|
function_alias: storagecell_start
|
|
help: "[0-max]\n\t[Jungfrau] Storage cell that stores the first acquisition of the\
|
|
\ series. max is 15 (default) for chipv1.0 and 3 (default) for chipv1.1. For advanced\
|
|
\ users only."
|
|
infer_action: true
|
|
template: true
|
|
subdeadtime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSubDeadTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSubDeadTime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSubDeadTime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setSubDeadTime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: subdeadtime
|
|
function_alias: subdeadtime
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger] Dead time of EIGER subframes\
|
|
\ in 32 bit mode. Subperiod = subexptime + subdeadtime."
|
|
infer_action: true
|
|
template: true
|
|
subexptime:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSubExptime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
- arg_types:
|
|
- special::time_unit
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSubExptime
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t , args[0])
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSubExptime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
separate_time_units:
|
|
input: args[0]
|
|
output:
|
|
- converted_time
|
|
- unit
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- special::time_unit
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
convert_to_time:
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
output: converted_time
|
|
function: setSubExptime
|
|
input:
|
|
- converted_time
|
|
input_types:
|
|
- time::ns
|
|
output:
|
|
- args[0]
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: subexptime
|
|
function_alias: subexptime
|
|
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger] Exposure time of EIGER\
|
|
\ subframes in 32 bit mode."
|
|
infer_action: true
|
|
template: true
|
|
sync:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSynchronization
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setSynchronization
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: sync
|
|
function_alias: sync
|
|
help: "[0, 1]\n\t[Jungfrau][Moench] Enables or disables synchronization between\
|
|
\ modules. Sync mode requires at least one master configured. Also requires flatband\
|
|
\ cabling between master and slave with termination board."
|
|
infer_action: true
|
|
template: true
|
|
syncclk:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSYNCClock
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: syncclk
|
|
function_alias: syncclk
|
|
help: "[n_clk in MHz]\n\t[Ctb] Sync clock in MHz."
|
|
infer_action: true
|
|
template: true
|
|
temp_10ge:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_10GE
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_10ge
|
|
function_alias: temp_10ge
|
|
help: "[n_value]\n\t[Eiger]Temperature close to the 10GbE"
|
|
infer_action: true
|
|
template: true
|
|
temp_adc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_ADC
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_adc
|
|
function_alias: temp_adc
|
|
help: "[n_value]\n\t[Jungfrau][Moench][Gotthard] ADC Temperature"
|
|
infer_action: true
|
|
template: true
|
|
temp_control:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperatureControl
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTemperatureControl
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: temp_control
|
|
function_alias: temp_control
|
|
help: "[0, 1]\n\t[Jungfrau][Moench] Temperature control enable. Default is 0 (disabled).\
|
|
\ If temperature crosses threshold temperature and temperature control is enabled,\
|
|
\ power to chip will be switched off and temperature event occurs. To power on\
|
|
\ chip again, temperature has to be less than threshold temperature and temperature\
|
|
\ event has to be cleared."
|
|
infer_action: true
|
|
template: true
|
|
temp_dcdc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_DCDC
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_dcdc
|
|
function_alias: temp_dcdc
|
|
help: "[n_value]\n\t[Eiger]Temperature close to the dc dc converter"
|
|
infer_action: true
|
|
template: true
|
|
temp_event:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperatureEvent
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: StringTo<int>(args[0]) != 0
|
|
message: '"Unknown argument for temp event: ( " + args[0] + " ). Did you
|
|
mean 0 to reset event?"'
|
|
function: resetTemperatureEvent
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"cleared"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: temp_event
|
|
function_alias: temp_event
|
|
help: "[0]\n\t[Jungfrau][Moench] 1, if a temperature event occured. To clear this\
|
|
\ event, set it to 0.\n\tIf temperature crosses threshold temperature and temperature\
|
|
\ control is enabled, power to chip will be switched off and temperature event\
|
|
\ occurs. To power on chip again, temperature has to be less than threshold temperature\
|
|
\ and temperature event has to be cleared."
|
|
infer_action: true
|
|
temp_fpga:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_FPGA
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_fpga
|
|
function_alias: temp_fpga
|
|
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Xilinx\
|
|
\ CTB] FPGA Temperature"
|
|
infer_action: true
|
|
template: true
|
|
temp_fpgaext:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_FPGAEXT
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_fpgaext
|
|
function_alias: temp_fpgaext
|
|
help: "[n_value]\n\t[Eiger]Temperature close to the FPGA"
|
|
infer_action: true
|
|
template: true
|
|
temp_fpgafl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_FPGA2
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_fpgafl
|
|
function_alias: temp_fpgafl
|
|
help: "[n_value]\n\t[Eiger]Temperature of the left front end board fpga."
|
|
infer_action: true
|
|
template: true
|
|
temp_fpgafr:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_FPGA3
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_fpgafr
|
|
function_alias: temp_fpgafr
|
|
help: "[n_value]\n\t[Eiger]Temperature of the right front end board fpga."
|
|
infer_action: true
|
|
template: true
|
|
temp_slowadc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::SLOW_ADC_TEMP
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_slowadc
|
|
function_alias: temp_slowadc
|
|
help: "[n_value]\n\t[Ctb]Temperature of the slow adc"
|
|
infer_action: true
|
|
template: true
|
|
temp_sodl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_SODL
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_sodl
|
|
function_alias: temp_sodl
|
|
help: "[n_value]\n\t[Eiger]Temperature close to the left so-dimm memory"
|
|
infer_action: true
|
|
template: true
|
|
temp_sodr:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperature
|
|
input:
|
|
- defs::TEMPERATURE_SODR
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
- "\" \xB0C\""
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: temp_sodr
|
|
function_alias: temp_sodr
|
|
help: "[n_value]\n\t[Eiger]Temperature close to the right so-dimm memory"
|
|
infer_action: true
|
|
template: true
|
|
temp_threshold:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getThresholdTemperature
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setThresholdTemperature
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: temp_threshold
|
|
function_alias: temp_threshold
|
|
help: "[n_temp (in degrees)]\n\t[Jungfrau][Moench] Threshold temperature in degrees.\
|
|
\ If temperature crosses threshold temperature and temperature control is enabled,\
|
|
\ power to chip will be switched off and temperature event occurs. To power on\
|
|
\ chip again, temperature has to be less than threshold temperature and temperature\
|
|
\ event has to be cleared."
|
|
infer_action: true
|
|
template: true
|
|
templist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTemperatureList
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: templist
|
|
function_alias: templist
|
|
help: "\n\tList of temperature commands implemented for this detector."
|
|
infer_action: true
|
|
template: true
|
|
tempvalues:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
ctb_output_list:
|
|
GETFCN: getTemperature
|
|
GETFCNLIST: getTemperatureList
|
|
GETFCNNAME: ''
|
|
printable_name: '*it'
|
|
suffix: "\xB0C"
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: tempvalues
|
|
function_alias: tempvalues
|
|
help: "\n\tGets the values for every temperature for this detector."
|
|
infer_action: true
|
|
tengiga:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTenGiga
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTenGiga
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: tengiga
|
|
function_alias: tengiga
|
|
help: "[0, 1]\n\t[Eiger][Ctb][Mythen3] 10GbE Enable."
|
|
infer_action: true
|
|
template: true
|
|
threshold:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- defs::detectorSettings
|
|
argc: 2
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
- defs::detectorSettings
|
|
argc: 4
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: threshold
|
|
function_alias: threshold
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
thresholdnotb:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- defs::detectorSettings
|
|
argc: 2
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 3
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
- defs::detectorSettings
|
|
argc: 4
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: thresholdnotb
|
|
duplicate_function: true
|
|
function_alias: threshold
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
timing:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTimingMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::timingMode
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTimingMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::timingMode
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: timing
|
|
function_alias: timing
|
|
help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\
|
|
\t[Jungfrau][Moench][Gotthard][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t\
|
|
[Mythen3] [auto|trigger|gating|trigger_gating]\n\t[Eiger] [auto|trigger|gating|burst_trigger]"
|
|
infer_action: true
|
|
template: true
|
|
timing_info_decoder:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTimingInfoDecoder
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::timingInfoDecoder
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTimingInfoDecoder
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::timingInfoDecoder
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: timing_info_decoder
|
|
function_alias: timing_info_decoder
|
|
help: "[swissfel|shine]\n\t[Jungfrau] Advanced Command and only for Swissfel and\
|
|
\ Shine. Sets the bunch id or timing info decoder. Default is swissfel."
|
|
infer_action: true
|
|
template: true
|
|
timinglist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTimingModeList
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- ToString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: timinglist
|
|
function_alias: timinglist
|
|
help: "\n\tGets the list of timing modes for this detector."
|
|
infer_action: true
|
|
template: true
|
|
timingsource:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTimingSource
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::timingSourceType
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTimingSource
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- defs::timingSourceType
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: timingsource
|
|
function_alias: timingsource
|
|
help: "[internal|external]\n\t[Gotthard2] Timing source. Internal is crystal and\
|
|
\ external is system timing. Default is internal."
|
|
infer_action: true
|
|
template: true
|
|
top:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTop
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTop
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: top
|
|
function_alias: top
|
|
help: "[0, 1]\n\t[Eiger] Sets half module to top (1), else bottom."
|
|
infer_action: true
|
|
template: true
|
|
transceiverenable:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTransceiverEnableMask
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint32_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTransceiverEnableMask
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint32_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: transceiverenable
|
|
function_alias: transceiverenable
|
|
help: "[bitmask]\n\t[Ctb][Xilinx Ctb] Transceiver Enable Mask. Enable for each 4\
|
|
\ Transceiver channel."
|
|
infer_action: true
|
|
template: true
|
|
trigger:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
extra_variables:
|
|
- name: block
|
|
type: bool
|
|
value: 'false'
|
|
function: sendSoftwareTrigger
|
|
input:
|
|
- block
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: trigger
|
|
function_alias: trigger
|
|
help: "\n\t[Eiger][Mythen3][Jungfrau][Moench] Sends software trigger signal to detector"
|
|
infer_action: true
|
|
template: true
|
|
triggers:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfTriggers
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int64_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setNumberOfTriggers
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int64_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: triggers
|
|
function_alias: triggers
|
|
help: "[n_triggers]\n\tNumber of triggers per aquire. Set timing mode to use triggers."
|
|
infer_action: true
|
|
template: true
|
|
triggersl:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfTriggersLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: triggersl
|
|
function_alias: triggersl
|
|
help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number\
|
|
\ of triggers left in acquisition. Only when external trigger used."
|
|
infer_action: true
|
|
template: true
|
|
trimbits:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: saveTrimbits
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: loadTrimbits
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- args[0]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: trimbits
|
|
function_alias: trimbits
|
|
help: "[fname]\n\t[Eiger][Mythen3] Put will load the trimbit file to detector. If\
|
|
\ no extension specified, serial number of each module is attached. Get will save\
|
|
\ the trimbits from the detector to file with serial number added to file name."
|
|
infer_action: true
|
|
trimen:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: trimen
|
|
function_alias: trimen
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
trimval:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getAllTrimbits
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setAllTrimbits
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: trimval
|
|
function_alias: trimval
|
|
help: "[n_trimval]\n\t[Eiger][Mythen3] All trimbits set to this value. Returns -1\
|
|
\ if all trimbits are different values."
|
|
infer_action: true
|
|
template: true
|
|
tsamples:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberOfTransceiverSamples
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setNumberOfTransceiverSamples
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: tsamples
|
|
function_alias: tsamples
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Number of transceiver samples expected."
|
|
infer_action: true
|
|
template: true
|
|
txdelay:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: getTransmissionDelay
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setTransmissionDelay
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: txdelay
|
|
function_alias: txdelay
|
|
help: "[n_delay]\n\t[Eiger][Jungfrau][Moench][Mythen3] Set transmission delay for\
|
|
\ all modules in the detector using the step size provided.Sets up \n\t[Eiger]\
|
|
\ txdelay_left to (2 * mod_index * n_delay), \n\t[Eiger] txdelay_right to ((2\
|
|
\ * mod_index + 1) * n_delay) and \n\t[Eiger] txdelay_frame to (2 *num_modules\
|
|
\ * n_delay)\n\t[Jungfrau][Moench][Mythen3] txdelay_frame to (num_modules * n_delay)\
|
|
\ for every module."
|
|
infer_action: true
|
|
txdelay_frame:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTransmissionDelayFrame
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTransmissionDelayFrame
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: txdelay_frame
|
|
function_alias: txdelay_frame
|
|
help: "[n_delay]\n\t[Eiger][Jungfrau][Moench][Mythen3] Transmission delay of first\
|
|
\ udp packet being streamed out of the module.\n\t[Jungfrau][Moench] [0-31] Each\
|
|
\ value represents 1 ms\n\t[Eiger] Additional delay to txdelay_left and txdelay_right.\
|
|
\ Each value represents 10ns. Typical value is 50000.\n\t[Mythen3] [0-16777215]\
|
|
\ Each value represents 8 ns (125 MHz clock), max is 134 ms."
|
|
infer_action: true
|
|
template: true
|
|
txdelay_left:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTransmissionDelayLeft
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTransmissionDelayLeft
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: txdelay_left
|
|
function_alias: txdelay_left
|
|
help: "[n_delay]\n\t[Eiger] Transmission delay of first packet in an image being\
|
|
\ streamed out of the module's left UDP port. Each value represents 10ns. Typical\
|
|
\ value is 50000."
|
|
infer_action: true
|
|
template: true
|
|
txdelay_right:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getTransmissionDelayRight
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setTransmissionDelayRight
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: txdelay_right
|
|
function_alias: txdelay_right
|
|
help: "[n_delay]\n\t[Eiger] Transmission delay of first packet in an image being\
|
|
\ streamed out of the module's right UDP port. Each value represents 10ns. Typical\
|
|
\ value is 50000."
|
|
infer_action: true
|
|
template: true
|
|
type:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDetectorType
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: type
|
|
function_alias: type
|
|
help: "\n\tReturns detector type. Can be Eiger, Jungfrau, Gotthard, Moench, Mythen3,\
|
|
\ Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard"
|
|
infer_action: true
|
|
template: true
|
|
udp_cleardst:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: clearUDPDestinations
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_cleardst
|
|
function_alias: udp_cleardst
|
|
help: "\n\tClears udp destination details on the detector."
|
|
infer_action: true
|
|
template: true
|
|
udp_dstip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: udp_dstip
|
|
function_alias: udp_dstip
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
udp_dstip2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: udp_dstip2
|
|
function_alias: udp_dstip2
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
udp_dstlist:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: det_id == -1
|
|
message: '"Can execute udp_dstlist only at module level."'
|
|
- condition: rx_id < 0 || rx_id >= MAX_UDP_DESTINATION
|
|
message: '"Invalid receiver index " + std::to_string(rx_id) + " to set round
|
|
robin entry."'
|
|
function: getDestinationUDPList
|
|
input:
|
|
- rx_id
|
|
input_types:
|
|
- auto
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: -1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
exceptions:
|
|
- condition: det_id == -1
|
|
message: '"Can execute udp_dstlist only at module level."'
|
|
- condition: rx_id < 0 || rx_id >= MAX_UDP_DESTINATION
|
|
message: '"Invalid receiver index " + std::to_string(rx_id) + " to set round
|
|
robin entry."'
|
|
- condition: args.empty()
|
|
message: '"udp_dstlist require at least one argument."'
|
|
function: setDestinationUDPList
|
|
input:
|
|
- getUdpEntry()
|
|
input_types:
|
|
- auto
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_dstlist
|
|
function_alias: udp_dstlist
|
|
help: "[ip=x.x.x.x] [(optional)ip2=x.x.x.x] \n\t\t[mac=xx:xx:xx:xx:xx:xx] [(optional)mac2=xx:xx:xx:xx:xx:xx]\n\
|
|
\t\t[port=value] [(optional)port2=value]\n\t\tThe order of ip, mac and port does\
|
|
\ not matter. entry_value can be >0 only for [Eiger][Jungfrau][Moench][Mythen3][Gotthard2]\
|
|
\ where round robin is implemented. If 'auto' used, then ip is set to ip of rx_hostname."
|
|
infer_action: true
|
|
udp_dstmac:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDestinationUDPMAC
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- MacAddr
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDestinationUDPMAC
|
|
input:
|
|
- MacAddr(args[0])
|
|
input_types:
|
|
- MacAddr
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_dstmac
|
|
function_alias: udp_dstmac
|
|
help: "[x:x:x:x:x:x]\n\tMac address of the receiver (destination) udp interface.\
|
|
\ Not mandatory to set as udp_dstip retrieves it from slsReceiver process, but\
|
|
\ must be set if you use a custom receiver (not slsReceiver). Use router mac if\
|
|
\ router between detector and receiver."
|
|
infer_action: true
|
|
template: true
|
|
udp_dstmac2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDestinationUDPMAC2
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- MacAddr
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setDestinationUDPMAC2
|
|
input:
|
|
- MacAddr(args[0])
|
|
input_types:
|
|
- MacAddr
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_dstmac2
|
|
function_alias: udp_dstmac2
|
|
help: "[x:x:x:x:x:x]\n\t[Jungfrau][Moench] Mac address of the receiver (destination)\
|
|
\ udp interface 2. Not mandatory to set as udp_dstip2 retrieves it from slsReceiver\
|
|
\ process but must be set if you use a custom receiver (not slsReceiver). \n\t\
|
|
\ [Jungfrau][Moench] top half or inner interface \n\t [Gotthard2] veto debugging.\
|
|
\ Use router mac if router between detector and receiver."
|
|
infer_action: true
|
|
template: true
|
|
udp_dstport:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDestinationUDPPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setDestinationUDPPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_dstport
|
|
function_alias: udp_dstport
|
|
help: "[n]\n\tPort number of the receiver (destination) udp interface. Default is\
|
|
\ 50001. \n\tIf multi command, ports for each module is calculated (incremented\
|
|
\ by 1 if no 2nd interface)"
|
|
infer_action: true
|
|
template: true
|
|
udp_dstport2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getDestinationUDPPort2
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setDestinationUDPPort2
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_dstport2
|
|
function_alias: udp_dstport2
|
|
help: "[n]\n\t[Jungfrau][Moench][Eiger][Gotthard2] Port number of the receiver (destination)\
|
|
\ udp interface 2. Default is 50002. \n\tIf multi command, ports for each module\
|
|
\ is calculated (incremented by 2) \n\t[Jungfrau][Moench] top half or inner interface\
|
|
\ \n\t[Eiger] right half \n\t[Gotthard2] veto debugging"
|
|
infer_action: true
|
|
template: true
|
|
udp_firstdst:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getFirstUDPDestination
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setFirstUDPDestination
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_firstdst
|
|
function_alias: udp_firstdst
|
|
help: "\n\t[0 - N]\n\twhere N is the max number of udp destinations - 1.\n\t[Jungfrau][Moench][Gotthard2]\
|
|
\ Max number of udp destinations is 32.\n\t[Mythen3] Max number of udp destination\
|
|
\ is 64.\n\t One can set which is the first destination that the detector will\
|
|
\ stream images out from in a round robin fashion. The entry must not have been\
|
|
\ empty. Default: 0"
|
|
infer_action: true
|
|
template: true
|
|
udp_numdst:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getNumberofUDPDestinations
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: udp_numdst
|
|
function_alias: udp_numdst
|
|
help: "\n\t[Jungfrau][Moench][Eiger][Mythen3][Gotthard2] One can enter upto 32 (64\
|
|
\ for Mythen3) destinations that the detector will stream images out in a round\
|
|
\ robin fashion. This is get only command. Default: 1"
|
|
infer_action: true
|
|
template: true
|
|
udp_reconfigure:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: reconfigureUDPDestination
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_reconfigure
|
|
function_alias: udp_reconfigure
|
|
help: "\n\tReconfigures Detector with UDP destination. More for debugging as the\
|
|
\ configuration is done automatically when the detector has sufficient UDP details."
|
|
infer_action: true
|
|
template: true
|
|
udp_srcip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: udp_srcip
|
|
function_alias: udp_srcip
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
udp_srcip2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- std::string
|
|
argc: 1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: udp_srcip2
|
|
function_alias: udp_srcip2
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
udp_srcmac:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSourceUDPMAC
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- MacAddr
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSourceUDPMAC
|
|
input:
|
|
- MacAddr(args[0])
|
|
input_types:
|
|
- MacAddr
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_srcmac
|
|
function_alias: udp_srcmac
|
|
help: "[x:x:x:x:x:x]\n\tMac address of the detector (source) udp interface. \n\t\
|
|
[Eiger] Do not set as detector will replace with its own DHCP Mac (1G) or DHCP\
|
|
\ Mac + 1 (10G)."
|
|
infer_action: true
|
|
template: true
|
|
udp_srcmac2:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getSourceUDPMAC2
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- MacAddr
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setSourceUDPMAC2
|
|
input:
|
|
- MacAddr(args[0])
|
|
input_types:
|
|
- MacAddr
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_srcmac2
|
|
function_alias: udp_srcmac2
|
|
help: "[x:x:x:x:x:x]\n\t[Jungfrau][Moench] Mac address of the top half or inner\
|
|
\ (source) udp interface. "
|
|
infer_action: true
|
|
template: true
|
|
udp_validate:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: validateUDPConfiguration
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: udp_validate
|
|
function_alias: udp_validate
|
|
help: "\n\tValidates that UDP configuration in the detector is valid. If not configured,\
|
|
\ it will throw with error message requesting missing udp information."
|
|
infer_action: true
|
|
template: true
|
|
update:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
- special::path
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: args[args.size() - 1].find(".pof") == std::string::npos && args[args.size()
|
|
- 1].find(".rbf") == std::string::npos
|
|
message: '"Programming file must be a pof/rbf file."'
|
|
function: updateFirmwareAndServer
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- std::string
|
|
- std::string
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: update
|
|
function_alias: update
|
|
help: "\n\tWithout tftp: [server_name (incl fullpath)] [fname.pof (incl full path)]\
|
|
\ This does not use tftp.\n\t\t[Jungfrau][Moench][Gotthard][Ctb] Updates the firmware,\
|
|
\ detector server, deletes old server, creates the symbolic link and then reboots\
|
|
\ detector controller. \n\t\t[Mythen3][Gotthard2] will require a script to start\
|
|
\ up the shorter named server link at start up. \n\t\tserver_name is full path\
|
|
\ name of detector server binary\n\t\tfname is full path of programming file"
|
|
infer_action: true
|
|
updatedetectorserver:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: updateDetectorServer
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: updatedetectorserver
|
|
function_alias: updatedetectorserver
|
|
help: "[server_name with full path]\n\t[Jungfrau][Moench][Eiger][Ctb][Mythen3][Gotthard2]\
|
|
\ Copies detector server via TCP (without tftp). Makes a symbolic link with a\
|
|
\ shorter name (without vx.x.x). Then, detector controller reboots (except Eiger).\n\
|
|
\t[Jungfrau][Moench][Ctb]Also changes respawn server to the link, which is effective\
|
|
\ after a reboot."
|
|
infer_action: true
|
|
updatekernel:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- special::path
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: updateKernel
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- std::string
|
|
output:
|
|
- '"successful"'
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: updatekernel
|
|
function_alias: updatekernel
|
|
help: "[kernel_name with full path]\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2]\
|
|
\ Advanced Command!! You could damage the detector. Please use with caution.\n\
|
|
\tUpdates the kernel image. Then, detector controller reboots with new kernel."
|
|
infer_action: true
|
|
updatemode:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getUpdateMode
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setUpdateMode
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: updatemode
|
|
function_alias: updatemode
|
|
help: "[0|1]\n\tRestart the detector server in update mode or not. This is useful\
|
|
\ when server-firmware compatibility is at its worst and server cannot start up\
|
|
\ normally"
|
|
infer_action: true
|
|
template: true
|
|
user:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: getUserDetails
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: user
|
|
function_alias: user
|
|
help: "\n\tUser details from shared memory (hostname, type, PID, User, Date)."
|
|
infer_action: true
|
|
v_a:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_A
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_A
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_a
|
|
function_alias: v_a
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply a in mV."
|
|
infer_action: true
|
|
template: true
|
|
v_b:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_B
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_B
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_b
|
|
function_alias: v_b
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply b in mV."
|
|
infer_action: true
|
|
template: true
|
|
v_c:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_C
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_C
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_c
|
|
function_alias: v_c
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply c in mV."
|
|
infer_action: true
|
|
template: true
|
|
v_chip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_CHIP
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_CHIP
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_chip
|
|
function_alias: v_chip
|
|
help: "[n_value]\n\t[Ctb] Power supply chip in mV. Do not use it unless you are\
|
|
\ completely sure you will not fry the board."
|
|
infer_action: true
|
|
template: true
|
|
v_d:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_D
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_D
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_d
|
|
function_alias: v_d
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply d in mV."
|
|
infer_action: true
|
|
template: true
|
|
v_io:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_POWER_IO
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_POWER_IO
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_io
|
|
function_alias: v_io
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply io in mV. Minimum 1200 mV. Must\
|
|
\ be the first power regulator to be set after fpga reset (on-board detector server\
|
|
\ start up)."
|
|
infer_action: true
|
|
template: true
|
|
v_limit:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getPower
|
|
input:
|
|
- defs::V_LIMIT
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setPower
|
|
input:
|
|
- defs::V_LIMIT
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: v_limit
|
|
function_alias: v_limit
|
|
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Soft limit for power supplies (ctb only) and\
|
|
\ DACS in mV."
|
|
infer_action: true
|
|
template: true
|
|
vchip_comp_adc:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VB_COMP_ADC
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VB_COMP_ADC
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_comp_adc
|
|
function_alias: vchip_comp_adc
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ for comparator current of ADC."
|
|
infer_action: true
|
|
template: true
|
|
vchip_comp_fe:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VB_COMP_FE
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VB_COMP_FE
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_comp_fe
|
|
function_alias: vchip_comp_fe
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ for comparator current of analogue front end."
|
|
infer_action: true
|
|
template: true
|
|
vchip_cs:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VB_CS
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VB_CS
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_cs
|
|
function_alias: vchip_cs
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ for current injection into preamplifier."
|
|
infer_action: true
|
|
template: true
|
|
vchip_opa_1st:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VB_OPA_1ST
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VB_OPA_1ST
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_opa_1st
|
|
function_alias: vchip_opa_1st
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ for opa current for driving the other DACs in chip."
|
|
infer_action: true
|
|
template: true
|
|
vchip_opa_fd:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VB_OPA_FD
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VB_OPA_FD
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_opa_fd
|
|
function_alias: vchip_opa_fd
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ current for CDS opa stage."
|
|
infer_action: true
|
|
template: true
|
|
vchip_ref_comp_fe:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getOnChipDAC
|
|
input:
|
|
- defs::VREF_COMP_FE
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- OutStringHex(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setOnChipDAC
|
|
input:
|
|
- defs::VREF_COMP_FE
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
output:
|
|
- args[0]
|
|
- ''' '''
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vchip_ref_comp_fe
|
|
function_alias: vchip_ref_comp_fe
|
|
help: "[chip index 0-9, -1 for all][10 bit hex value] \n\t[Gotthard2] On chip Dac\
|
|
\ for reference voltage of the comparator of analogue front end."
|
|
infer_action: true
|
|
template: true
|
|
versions:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
command_name: versions
|
|
function_alias: versions
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
veto:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getVeto
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- bool
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setVeto
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- bool
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: veto
|
|
function_alias: veto
|
|
help: "[0, 1]\n\t[Gotthard2] Enable or disable veto data data from chip. Default\
|
|
\ is 0."
|
|
infer_action: true
|
|
template: true
|
|
vetoalg:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- defs::streamingInterface
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: interface == defs::streamingInterface::NONE
|
|
message: '"Must specify an interface to set algorithm"'
|
|
extra_variables:
|
|
- name: interface
|
|
type: defs::streamingInterface
|
|
value: StringTo<defs::streamingInterface>(args[0])
|
|
function: getVetoAlgorithm
|
|
input:
|
|
- interface
|
|
input_types:
|
|
- defs::streamingInterface
|
|
output:
|
|
- OutString(t)
|
|
- ''' '''
|
|
- ToString(interface)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- defs::vetoAlgorithm
|
|
- defs::streamingInterface
|
|
argc: 2
|
|
cast_input:
|
|
- false
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: interface == defs::streamingInterface::NONE
|
|
message: '"Must specify an interface to set algorithm"'
|
|
extra_variables:
|
|
- name: alg
|
|
type: defs::vetoAlgorithm
|
|
value: StringTo<defs::vetoAlgorithm>(args[0])
|
|
- name: interface
|
|
type: defs::streamingInterface
|
|
value: StringTo<defs::streamingInterface>(args[1])
|
|
function: setVetoAlgorithm
|
|
input:
|
|
- alg
|
|
- interface
|
|
input_types:
|
|
- defs::vetoAlgorithm
|
|
- defs::streamingInterface
|
|
output:
|
|
- ToString(alg)
|
|
- ''' '''
|
|
- ToString(interface)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vetoalg
|
|
function_alias: vetoalg
|
|
help: "[hits|raw] [lll|10gbe]\n\t[Gotthard2] Set the veto algorithm. Default is\
|
|
\ hits."
|
|
infer_action: true
|
|
vetofile:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: 'true'
|
|
message: '"Cannot get vetofile. Did you mean vetophoton?"'
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setVetoFile
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vetofile
|
|
function_alias: vetofile
|
|
help: "[chip index 0-9, -1 for all] [file name] \n\t[Gotthard2] Set veto reference\
|
|
\ for each 128 channels for specific chip. The file should have 128 rows of gain\
|
|
\ index and 12 bit value in dec"
|
|
infer_action: true
|
|
vetophoton:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- std::string
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getVetoPhoton
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- std::string
|
|
output:
|
|
- '"saved to file "'
|
|
- args[1]
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
- int
|
|
- std::string
|
|
argc: 4
|
|
cast_input:
|
|
- true
|
|
- true
|
|
- true
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setVetoPhoton
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
- args[2]
|
|
- args[3]
|
|
input_types:
|
|
- int
|
|
- int
|
|
- int
|
|
- std::string
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: vetophoton
|
|
function_alias: vetophoton
|
|
help: "[ichip] [#photons] [energy in keV] [reference file]\n\t[Gotthard2] Set veto\
|
|
\ reference for 128 channels for chip ichip according to reference file and #photons\
|
|
\ and energy in keV.\n\t[ichip] [output file]\n\t Get gain indices and veto reference\
|
|
\ for 128 channels for chip ichip, saved to file."
|
|
infer_action: true
|
|
vetoref:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
exceptions:
|
|
- condition: 'true'
|
|
message: '"Cannot get vetoref. Did you mean vetophoton?"'
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- int
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setVetoReference
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- int
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: vetoref
|
|
function_alias: vetoref
|
|
help: "[gain index] [12 bit value]\n\t[Gotthard2] Set veto reference for all 128\
|
|
\ channels for all chips."
|
|
infer_action: true
|
|
vetostream:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types: []
|
|
argc: -1
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: ''
|
|
input: []
|
|
input_types: []
|
|
output: []
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: vetostream
|
|
function_alias: vetostream
|
|
help: ''
|
|
infer_action: true
|
|
is_description: true
|
|
virtual:
|
|
actions:
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
- uint16_t
|
|
argc: 2
|
|
cast_input:
|
|
- true
|
|
- true
|
|
check_det_id: true
|
|
convert_det_id: true
|
|
function: setVirtualDetectorServers
|
|
input:
|
|
- args[0]
|
|
- args[1]
|
|
input_types:
|
|
- int
|
|
- uint16_t
|
|
output:
|
|
- ToString(args)
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: virtual
|
|
function_alias: virtualFunction
|
|
help: "[n_servers] [starting_port_number]\n\tConnecs to n virtual server at local\
|
|
\ host starting at specific control port. Every virtual server will have a stop\
|
|
\ port (control port + 1)"
|
|
infer_action: true
|
|
vm_a:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPower
|
|
input:
|
|
- defs::V_POWER_A
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: vm_a
|
|
function_alias: vm_a
|
|
help: "\n\t[Ctb] Measured voltage of power supply a in mV."
|
|
infer_action: true
|
|
template: true
|
|
vm_b:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPower
|
|
input:
|
|
- defs::V_POWER_B
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: vm_b
|
|
function_alias: vm_b
|
|
help: "\n\t[Ctb] Measured voltage of power supply b in mV."
|
|
infer_action: true
|
|
template: true
|
|
vm_c:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPower
|
|
input:
|
|
- defs::V_POWER_C
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: vm_c
|
|
function_alias: vm_c
|
|
help: "\n\t[Ctb] Measured voltage of power supply c in mV."
|
|
infer_action: true
|
|
template: true
|
|
vm_d:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPower
|
|
input:
|
|
- defs::V_POWER_D
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: vm_d
|
|
function_alias: vm_d
|
|
help: "\n\t[Ctb] Measured voltage of power supply d in mV."
|
|
infer_action: true
|
|
template: true
|
|
vm_io:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getMeasuredPower
|
|
input:
|
|
- defs::V_POWER_IO
|
|
input_types:
|
|
- int
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
command_name: vm_io
|
|
function_alias: vm_io
|
|
help: "\n\t[Ctb] Measured voltage of power supply io in mV."
|
|
infer_action: true
|
|
template: true
|
|
zmqhwm:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getClientZmqHwm
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- t
|
|
require_det_id: false
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- int
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setClientZmqHwm
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- int
|
|
output:
|
|
- det->getClientZmqHwm()
|
|
require_det_id: false
|
|
store_result_in_t: false
|
|
command_name: zmqhwm
|
|
function_alias: zmqhwm
|
|
help: "[n_limit] \n\tClient's zmq receive high water mark. Default is the zmq library's\
|
|
\ default (1000), can also be set here using -1. \n\tThis is a high number and\
|
|
\ can be set to 2 for gui purposes. \n\tOne must also set the receiver's send\
|
|
\ high water mark to similar value. Final effect is sum of them.\n\t Setting it\
|
|
\ via command line is useful only before zmq enabled (before opening gui)."
|
|
infer_action: true
|
|
zmqip:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getClientZmqIp
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- IpAddr
|
|
argc: 1
|
|
cast_input:
|
|
- false
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: setClientZmqIp
|
|
input:
|
|
- IpAddr(args[0])
|
|
input_types:
|
|
- IpAddr
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: zmqip
|
|
function_alias: zmqip
|
|
help: "[x.x.x.x]\n\tIp Address to listen to zmq data streamed out from receiver\
|
|
\ or intermediate process. Default connects to receiver zmq Ip Address (from rx_hostname).\
|
|
\ Modified only when using an intermediate process between receiver and client(gui).\
|
|
\ Also restarts client zmq streaming if enabled."
|
|
infer_action: true
|
|
template: true
|
|
zmqport:
|
|
actions:
|
|
GET:
|
|
args:
|
|
- arg_types: []
|
|
argc: 0
|
|
cast_input: []
|
|
check_det_id: false
|
|
convert_det_id: true
|
|
function: getClientZmqPort
|
|
input: []
|
|
input_types: []
|
|
output:
|
|
- OutString(t)
|
|
require_det_id: true
|
|
store_result_in_t: true
|
|
PUT:
|
|
args:
|
|
- arg_types:
|
|
- uint16_t
|
|
argc: 1
|
|
cast_input:
|
|
- true
|
|
check_det_id: false
|
|
convert_det_id: false
|
|
function: setClientZmqPort
|
|
input:
|
|
- args[0]
|
|
input_types:
|
|
- uint16_t
|
|
output:
|
|
- args.front()
|
|
require_det_id: true
|
|
store_result_in_t: false
|
|
command_name: zmqport
|
|
function_alias: zmqport
|
|
help: "[port]\n\tZmq port in client(gui) or intermediate process for data to be\
|
|
\ streamed to from receiver. Default connects to receiver zmq streaming out port\
|
|
\ (30001). Modified only when using an intermediate process between receiver and\
|
|
\ client(gui). Also restarts client zmq streaming if enabled. Must be different\
|
|
\ for every detector (and udp port). Multi command will automatically increment\
|
|
\ for individual modules."
|
|
infer_action: true
|
|
template: true
|