Back Midas Rome Roody Rootana
  Midas DAQ System  Not logged in ELOG logo
Entry  10 Mar 2022, Gennaro Tortone, Bug Report, Python ODB watch 
    Reply  16 Mar 2022, Ben Smith, Bug Report, Python ODB watch 
       Reply  21 Mar 2022, Stefan Ritt, Bug Report, Python ODB watch 
Message ID: 2357     Entry time: 21 Mar 2022     In reply to: 2356
Author: Stefan Ritt 
Topic: Bug Report 
Subject: Python ODB watch 
What you describe is a well-known problem with the ODB. At PSI we have similar issues. There are
two approaches to solve it:

1) Write values one-by-one to the ODB, but do not trigger a watch update. In the sequencer, this
can be achieved with the ODBSET command (see https://daq00.triumf.ca/MidasWiki/index.php/Sequencer 
and the last paragraph right of the ODBSET command). You use notify=0 for all set commands except
the last one where you use notify=1. On the C++ API, you can use db_set_data_index1() which has
this notify flag as the last parameter.

2) You add intelligence to your front-end. If you get a watchdog update, you do not apply this
directly to the hardware, but put it into a FIFO. Once you do not get any more update for a certain
period (like 1s is a good value), you empty the FIFO and apply all setting immediately.

Both methods have been used at PSI successfully, although 1) is much easier to implement, especially
if you use the midas sequencer.

Stefan
ELOG V3.1.4-2e1708b5