* implemented testbus, testfpga, set/get #frames, triggers, allowed that and for connection to client, also allowed, getnumchannels, configuremac, getrunstatus, setdetectorposition with dummy values
* allowing tests for xilinx
* binaries in
* updated registers, arm64
* compiler set to aarch64 for xilinx server
* updated RegisterDefs.h
* merge into generate branch and resolving conflicts and adding the xilinx changes to callerspecial and commands.yaml
* compiles and can print firmware version (using a different csp0 address)
* fixing other servers (gotthard, jungfrau, moench, mythen3) that it returns in case of mapping failure, xilinxctb: added that it checks type, prints proper fw version, checks kernel date, added armprocessor define to use in common places, added specifiers to supress overflow and truncation warnings
* added detector ip and mac adddress to the printout
* fixed tests and recompiled servers
* replacing detp with sls_Detector_put and detg with sls_detector_get
* sls_detector_not implemented, but extended message to ask user to use sls_detector_get or sls_detector_put
* autocompletion also for sls_detector or det
* commands code generation (#803)
* commands code generation for only frames command
* fix cmake file and add Caller files
* working exptime, fully extended commands file and its variants
* start adding template commands
* add INT_CMD_VEC_ID template
* add list command, generate multiple bins, format code
* reach 208 commands using the cpp macros
* add tests for command parser
* start adding tests for commands parser
* fix typo to use commands.yaml
* add more tests for command_parser
* add all template functions (up to 218 commands)
* finish template functions and add more CmdProxy.cpp functions (250+)
* 257 commands
* 300 commands the rest are very special commands
* add special commands without generation
* separate special functions from generated c++ file
* implementing one command for put and get (buggy)
* add infer action in a separate file
* generate header for special commands from yaml
* allow only 0 or 1 for bool inputs
* group all commands in gen_commands.py
* add help to gen_commands.py
* add autocomplete bash script
* autocompletion: add support for module levels and help
* remove debugging line
* add autocompletion, help to commands, change int [0,1] to bool
* copy tests for Caller.cpp. Tests pass
* update with the new developer branch changes
* fix errors after merging (there is problems with tests)
* fixed port/stopport in yaml (intput typo), added '_caller' to the test dac and test on chip dac command in global test for cmdcaller
* undo previous test simulator debug change
* add documentation for the generated code
* reducing the comment to be replaced in length so formatting does not split into 2 lines
* removed formatting specific style of C++11 in gen_commands.py to keep with the top level clang format of the project
* regeneratign code for commands
* automation generated
* Redirect deprecated commands (#872)
* working implementation, need to fix dac
* fixed deprecation redirect for dac command
* Detector specific autocomplete (#873)
* working implementation, need to fix dac
* fixed deprecation redirect for dac command
* detector specific completion for dac
* added autocomplete using detector specific
* fixed error when autocompleting partial words
* Generate commands/fix commands (#875)
* fix vm_a, im_a etc have deg Celsius suffix, also help missing or changed in some places
* dac: require det id for all, arg0 to be printed at output, help for onchip dac and dac, onchipdac: spacing
* getscan detid and blocking trigger help
* udp_Dstlist det_id fixed, but rx_id invalid
* cmdApp in line with cmdLineApp (missing version, receiver_id, not creating det object in help action
* added set_command to differentiate between check_det_id and require_det_id (mixed up), args: -1 needs to check for at least one argument
* reordering
* reordering and checked till integer_command_hex
* fixed a lot more commands
* fix caller tests for eiger
* changes to tests after Bechir left
* changing .cmd to .cmdcall for the caller commands
* fixed tests for caller, still warning for setexptime about cast input
* autocomplete ran
* add moench test
* regenerating autocomplete and commands
* fixing other things from merge conflicts (renaming slsDetectorDefs to defs in commands.yaml)
* formatting
* added code injection to help (#876)
* updated 3 commands to have get output that can be put into put (#877)
* updated some commands to have get output that can be put into put
* fix tests for clkdiv
* adding help to free (#878)
* removing old commands and renaming them, (also making it work for parameters command as it was still calling cmdproxy) (#879)
* More helpful error messages for unsupported actions (#880)
* removing old commands and renaming them, (also making it work for parameters command as it was still calling cmdproxy)
* Added specific help for unsupported actions
* fixed a vetofile get special exception message. more specific warning for special exception message instead of no function warning
* added condition checking true in exceptions for special message
---------
Co-authored-by: Bechir Brahem <bachbrahem@gmail.com>
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
* if blocking and handling sync, only master gets blocking acq, slaves get non blocking as they are first and so dont get status or error caught when slaves dont get trigger (due to not connected etc) and acq returns with slaves still in waiting status. so check status of all in blocking acq
* for all dets with sync, ensure atleast one master when starting acq
* docs updated about sync
* draft to fix virtual test when it fails
* catching errors in tests and removing sigchild ignore so servers (process in background) executing commands will not fail (pclose no child processes, if sigchld is ignored) fixed
* uncommented python loading config
* somehow killal slsReciever in second detector test fails even though no receiver running
* fixing script for virtual simlator test:fixed issue with check if process running, fixed moench tests
* fix acquisition finished status to have different status for different modules, but does not have to be error. for eg. jf sync fw (2.4.1 gives idle for master and stopped for slaves when stopping acquiistion)
* jf sync mode master could return idle when stopped and so not all modules return the same value and must check for 'stopped or idle', Also must throw if any of the module gives an error
* added contains_only to sls::Result (#827)
* added variadic template for checking if a result contains only specified values
* fix for gcc4.8
* renamed to Result::contains_only
* updated condition in Detector.cpp
* stop on only the positions
---------
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
* getVoltageList, getVoltage /set, getMeasuredVoltage, getVoltageNames /set, getVoltageIndex moved to 'Power' as its misleading
* added cstdint and names slowadc, added division to mV
* changed uV to mV in command line slow adc help. removed all python slowadcs (as it was already implemented as slowadc
---------
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
* merge fix from 7.0.2: new jungfrau fw versions, incremented binary, hdf5 and json versions
* moench: changed dac names and default values to old moench values
* moench: remove interface clk polarity at start up
* moench: default speed is half speed, default values for adc offset and adc phase for different speeds (only half speed confirmed), adc vref voltage to 2.0 like G1
* moench: connected adc pipeline to client
* moench: receiver- default frames per file is 100k and discard partial frames as default
* moench binary in
* using tostring in gui for dacs
* moved frame discard policy as a parameter to be configured with a default depending on detector
* moench: 300 degrees for adc phase in full speed
* transceiverenable, tsamples, romode for tranceiver and digital_transceiver
* 202 spec instr only for transceiver mode
* removed check for empty in trans readout and clean memory before reading from fifo
* ctb read fifo strobe for all after reading all channels, adding 1us after selecting channel, changing fw date
* updated 10gb transceiver enable
----
* added transceiver (tsamples, romode(transceiver, digital_transceiver), transceiverenable (mask)
* clean memory before reading from fifo (for analog and digital as well)
* read fifo then read strobe (also corresp fw) fixes number of reads (also for analg and digital)-> increases all pipelines by 1
* fixed bug in rearranging digital data in receiver
* fixed bug in streaming size of data after rearranging
* fixed bug in setbit, clearbit,and getbit
* status checks fifo before returning idle (transmitting if data in fifo if transceiver more enabled)
* soem matterhorn specifics that will need to be put into pattern in a month or two. this is temporary.
* NOTE: breaking api. rxParameters struct has transceiverenabel and tsamples given from det to receiver
* when dbit list is enabled, the size of data in zmq stream is changed to only the digital bits enabled size. now fixed to also include analog size
* allowing to set 0xffffffffffffffff to pat io control. prevously was used to do a get. fixed also for pat bit mask and pat mask
- start acq list: mixup with master pos #743 : fix that only master starts second and not all (for start acq), typo with pos and masters list
- synced master status running when setting to slave #747: synced master status running when setting to slave
* moench, removed chip version, filter resistor, filter cells, currentsoures, gain mode, setttings(modes), dbitphase, maxdbitphase, autocompdisable, comparatordisabletime, made acq start and stop a pulse, removed unused registers
* added parallel command
* remove gain plot for moench
* moench: updated adc invert val
* moench: update adcoffset to 0xf and adcphase to 140 degrees
* removed sync clock in moench
* updated min fw version
* removing config file in moench server
* using argparse for parsing command line arguments
* added command line option to specify which servers to run
---------
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
* merge fix from #721 PR (sync) 7.0.2.rc -> developer
* row and column for jungfrau mixed up
* multi module jungfrau sync must do slaves first then master for start acquisition and send software trigger, and master first and then slaves for stopacquisition
* non blocking to slaves first and only then blocking/nonblocking to the master for sending software trigger(jungfrau multi mod sync)
* fixed get/set timing jungfrau when sync enabled, getsync during blocking acquire (for trigger or stop) will get stuck as it should ask the stop server
* switching between 1 and 2 interfaces did not set gui/client zmq port properly. Resulted in dummy streaming forever. fixed
* formatting, refactoring: const & for positions, multi mod M3 stop first master first
* adding missing cstdint for gcc 13
* Refactoring handle sync out, handling synchronization also for softwaretrigger for m3, for start/sync/stop for g2/g1
---------
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
* fixed row and col for moench 2 interfaces
* fix moench getTiming and also allow moench to handle sync
---------
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
* rx_hostname and port combo to one, or hostname to all, or a vector of hostnames and ports, ignoring none or empty, then verifying no duplicates for the host port combo including from shared memory
* extracted function for rx_hostname (#694)
* c++14 revert
* unique hostname-port combo for port, hostname, rx_tcpport (#696)
* verify unique combo for rx_port as well
* check unique hostname-port combo also when setting control port, hostname, rx_hostname and rx_tcpport
---------
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
Co-authored-by: Erik Frojdh <erik.frojdh@psi.ch>
* eiger: hardwareversion, fix firmware version unable to read version scenarios, check to see if febl, febr and beb have same fw version
* feb versions can be picked up only after feb initialization