|
Back
Midas
Rome
Roody
Rootana
|
Midas DAQ System |
Not logged in |
|
|
05 Sep 2024, Jack Carlton, Forum, Python frontend rate limitations?
|
05 Sep 2024, Ben Smith, Forum, Python frontend rate limitations?
|
05 Sep 2024, Stefan Ritt, Forum, Python frontend rate limitations?
|
06 Sep 2024, Jack Carlton, Forum, Python frontend rate limitations?
|
11 Sep 2024, Konstantin Olchanski, Forum, Python frontend rate limitations?
|
27 Sep 2024, Ben Smith, Forum, Python frontend rate limitations?
|
11 Sep 2024, Konstantin Olchanski, Forum, Python frontend rate limitations?
|
11 Sep 2024, Konstantin Olchanski, Forum, Python frontend rate limitations?
|
|
Message ID: 2828
Entry time: 05 Sep 2024
In reply to: 2826
Reply to this: 2829
2832
|
Author: |
Stefan Ritt |
Topic: |
Forum |
Subject: |
Python frontend rate limitations? |
|
|
> First the general advice: if you reduce the "period" of your equipment, then your function will get called more frequently.
> You can set it to 0 and we'll call it as often as possible. You can set this in the ODB at "/Equipment/Python Data Simulator/Common/Period"
Just for your general understanding: The "period" i the C framework works differently. It calls the poll function with a number,
and then that number is used in the poll function like (simplified):
poll(INT count) {
for (i=0 ; i<count ; i++)
if (new_event())
return TRUE;
return FALSE;
}
This ensures that polling is done as quickly as possible, even staying in the same function (poll) rather than called from the
framework in a loop (which would require a function call to poll each time). The "count" is determined from the framework
during startup of the framework such that the execution time of the poll() routine equals the "period". Like if the period
is 0.1, the count might be a few millions, so that the poll routine returns immediately when a new event occurs or when
100ms have expired. During the polling the frontend is "dead" meaning it cannot react on run transitions for example. That's
why most experiments use 0.1-0.5 seconds. But this does then NOT mean that you can only have 10-2 events per second, but that
the reaction time if the frontend is at maximum 0.1-0.5 seconds which is acceptable most of the case.
Due to this design, the C frontend is capable of producing millions of events per second. It took me some while in the early 1990's
to work out that scheme sitting in the "R" trailer at TRIUMF (old guys will remember...).
Best,
Stefan |