User Tools

Site Tools


daq_control_python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
daq_control_python [2020/07/10 09:04]
acqilc
daq_control_python [2021/07/10 23:21] (current)
Line 192: Line 192:
  
 ==== Le contrôle des processus ==== ==== Le contrôle des processus ====
 +
 +Pour controller les processus un programme (daemon) doit être lancé sur chaque machine participant à l'​acquisition:​
 +
 +  sudo /​opt/​dhcal/​bin/​ljcd status
 +  ​
 +Si le programme n'est pas //running// il faut le lancer avec:
 +
 +  sudo /​opt/​dhcal/​bin/​ljcd start
 +  ​
 +On vérifie son état avec un accès à http://​nomdemachine:​9999
 +
 +
 +Ensuite sur la machine sur laquelle on va controller l'​acquisition on utilise le script **difdaq**
 +
 +  usage: difdaq [-h]
 +              [--jc-create | --jc-kill | --jc-destroy | --jc-start | --jc-restart | --jc-status | --jc-info | --jc-appcreate | --daq-initialise | --daq-configure | --daq-startrun | --daq-stoprun | --daq-destroy | --daq-status | --daq-difstatus | --daq-evbstatus | --daq-downloaddb | --dif-ctrlreg]
 +              [--config CONFIG] [--dbstate DBSTATE] [--dbversion DBVERSION]
 +              [--clock CLOCK] [--directory DIRECTORY] [--vth VTH]
 +              [--gain GAIN] [--tdc TDC] [--lines LINES] [--host HOST]
 +              [--name NAME] [--jobname JOBNAME] [--jobpid JOBPID]
 +              [--value VALUE] [--address ADDRESS] [-v] [--comment COMMENT]
 +              [--ctrlreg CTRLREG] [-M METHOD] [-A APPLICATION] [-P PARAMETER]
 +  optional arguments:
 +  -h, --help ​           show this help message and exit
 +  --jc-create ​          Loads configuration in all jobcontrol process
 +  --jc-kill ​            kill all running processes
 +  --jc-destroy ​         delete all jobcontrol configuration
 +  --jc-start ​           start all controled processes described in $DAQCONFIG
 +                        jsonfile variable
 +  --jc-restart ​         restart one job with --jobname=name --jobpid=pid
 +                        --host=hostname
 +  --jc-status ​          show the status all controled processes or of the
 +                        process specified in --name=PROC
 +  --jc-info ​            show the status all controled processesof the host
 +                        specified in --host=Host
 +  --jc-appcreate ​       Create all ZDAQ app on all hosts
 +  --daq-initialise ​     Initialise DAQ, data source discovery and Builder
 +                        final configuration
 +  --daq-configure ​      ​Configure FDAQ, front end ASICs configuration
 +  --daq-startrun ​       start the run
 +  --daq-stoprun ​        stop the run
 +  --daq-destroy ​        ​destroy the readout, back to the CREATED state
 +  --daq-status ​         display DAQ status of all processes
 +  --daq-difstatus ​      ​display DAQ status of all FEBCMS TDC
 +  --daq-evbstatus ​      ​display event builder status
 +  --daq-downloaddb ​     download the dbstate specified in --dbstate=state
 +                        --version=num
 +  --dif-ctrlreg ​        Send CTRLREG to DIFMANAGER --ctrlreg=ctrl
 +  --config CONFIG ​      json config file
 +  --dbstate DBSTATE ​    set the dbstate
 +  --dbversion DBVERSION
 +                        DB state version
 +  --clock CLOCK         set the number of 20 ns clock
 +  --directory DIRECTORY
 +                        shm publisher directory
 +  --vth VTH             set the vth for chips
 +  --gain GAIN           set the gain for chips
 +  --tdc TDC             set the tdc instance
 +  --lines LINES         set the number of lines to be dump
 +  --host HOST           host for log
 +  --name NAME           ​application name
 +  --jobname JOBNAME ​    job name
 +  --jobpid JOBPID ​      job pid
 +  --value VALUE         value to pass
 +  --address ADDRESS ​    ​address to pass
 +  -v, --verbose ​        Raw Json output
 +  --comment COMMENT ​    ​Comment for start run
 +  --ctrlreg CTRLREG ​    ​Hexadecimal string ctrlreg
 +  -M METHOD, --Method METHOD
 +                        Command name
 +  -A APPLICATION,​ --Application APPLICATION
 +                        Application name
 +  -P PARAMETER, --Parameter PARAMETER
 +                        parameter set
 +
 +=== Gestion des processus ===
 +
 +  - On charge la configuration dans les daemon: //difdaq --jc-create//​
 +  - On demarre les processus : //difdaq --jc-start//​
 +  - On peut tuer tous les process : //difdaq --jc-kill//
 +  - Et eliminer la configuration des daemon: //difdaq --jc-destroy//​
 +  - On visualise les process : //difdaq --jc-info// (-v si on veut voir tous les parametres)
 +  - On charge les parametres de toutes les applications:​ //difdaq --jc-appcreate//​
 +
 +
 +Avec //difdaq --jc-info// on a le PID de chaque processus créé, on peut accéder a ses log sur la machine correspondante dans **/​tmp/​fsmjobPID//#​pid//​.log**
 +
 +==== Controle de l'​acquisition ===
 +
 +Je donne un exemple avec des DIFs version LAPP et une SDCC
 + 
 +  - Initialiser les aplications://​difdaq --daq-init//​
 +  - Verifier le statut: //difdaq --daq-status//​ , toutes les DIFs doivent être INITIALISED,​ si ce n'est pas le cas il y a un problème de clock sur le FPGA de la DIF (HDMI ou cable plat)
 +  - Charger le controle d'​acquistion:​ // difdaq --dif-ctrlreg --ctrlreg=0x815A1B00//​
 +  - Changer le state de base de données pour les ASICs://​difdaq --daq-download --dbstate TELESCOPE_DOME --dbversion=25//​
 +  - Configurer les ASICs://​difdaq --daq-configure//,​ un appel a //difdaq --daq-status// ​ doit donner toutes les DIF CONFIGURED et SLC OK, si ce n'est pas le cas il y a soit un problème de connecteur (DIF-ASU,​ASU-ASU) soit un ASIC defectueux
 +  - Demarrer un run://​difdaq --daq-start --comment="​Mon commentaire"//​ ,Il faut ensuite verifier que les DIFs prennent des données et que l'​Event Builder les écrit avec  //difdaq --daq-status// ​
 +  - Arreter un run ://difdaq --daq-stop//​
 +  - Avant de debrancher/​rebrancher une DIF: //difdaq --daq-destroy//​ et on recommence en 1
 +
 +Pour rappel la liste des runs s'​obtient avec //mgjob --runs//
 +
 +Je crée souvent un fichier .daqsetup avec des alias vers ces commandes et la definition des variables dénvironnement:​
 +
 +  source .daqsetup
 +  ​
 +en se connectant doit suffire a les definir.
daq_control_python.1594371862.txt.gz · Last modified: 2021/07/10 23:20 (external edit)