SilentState Example¶
The SilentState (SILENCESTAT) feature instructs the Ethernet controller
to delay the STAT? command sent to the selected transient recorder for a
configurable time window around every laser trigger. Only the STAT? status
query is held back during this window; all other commands are forwarded to the
recorder instantaneously, without any delay. Delaying the periodic STAT?
polling suppresses the electrical noise that this traffic would otherwise inject
into the acquisition during the most sensitive part of the shot.
The silence window is defined by two delays, both expressed in microseconds:
pre-trigger block delay : how long before the trigger the controller starts delaying the
STAT?command.post-trigger block delay : how long after the trigger the controller keeps delaying the
STAT?command before forwarding it again.
Note
This feature is only available on newer controllers. Support is detected at
runtime, the API issues a SILENCESTAT? query and, if the controller replies with
unknown command, the feature is considered unsupported and the API raises
a RuntimeError (“Ethernet controller does not support the SilentMode
feature”). Controllers that support the feature do not return
unknown command. See Licel.licel_SilentStat.SilentStat.
Timing diagram¶
The diagram below shows the silence window the controller applies for a single
trigger. The STAT? command is delayed from preTriggerDelay microseconds
before the trigger edge until postTriggerDelay microseconds after it.
Outside this window the STAT? command is forwarded normally, and all other
commands are always forwarded instantaneously regardless of the window.
Controller -> Transient recorder STAT? command
forwarded forwarded
=================+ +=========> t
| STAT? DELAYED (silent) |
|<---- preTrigDelay --->|<-- postTrigDelay -->|
| (us) ^ (us) |
| | |
delay starts TRIGGER (t0) delay ends
(t0 - preTrigDelay) (t0 + postTrigDelay)
Only the STAT? command is delayed within the window -- both before AND
after the trigger. Other commands pass through without delay.
Total silence window = preTrigDelay + postTrigDelay [us]
For a periodic trigger the same window repeats once per shot:
silence window silence window
|<------------->| |<------------->|
_______ ______________ _______ STAT? forwarded
| | | |
|_______________| |_______________| STAT? delayed
^ ^
trigger N trigger N+1
(each silence window = preTrigDelay + postTrigDelay us; the trigger sits
preTrigDelay into the window and postTrigDelay before its end)