ngscopeclient 0.1-dev+51fbda87c
|
Window trigger - detect when the signal leaves a specified range. More...
#include <WindowTrigger.h>
Public Types | |
enum | Crossing { CROSS_UPPER , CROSS_LOWER , CROSS_EITHER , CROSS_NONE } |
Type of level crossing to detect for "stay inside" and "stay outside" windows. More... | |
enum | WindowType { WINDOW_ENTER , WINDOW_EXIT , WINDOW_EXIT_TIMED , WINDOW_ENTER_TIMED } |
How to trigger. More... | |
![]() | |
enum | Condition { CONDITION_EQUAL , CONDITION_NOT_EQUAL , CONDITION_LESS , CONDITION_LESS_OR_EQUAL , CONDITION_GREATER , CONDITION_GREATER_OR_EQUAL , CONDITION_BETWEEN , CONDITION_NOT_BETWEEN , CONDITION_ANY } |
Conditions for triggers that perform logical comparisons of values. More... | |
typedef Trigger *(* | CreateProcType) (Oscilloscope *) |
![]() | |
enum | DataLocation { LOC_CPU , LOC_GPU , LOC_DONTCARE } |
typedef std::map< std::string, FilterParameter > | ParameterMapType |
Short name for a map of strings to parameters. | |
Public Member Functions | |
WindowTrigger (Oscilloscope *scope) | |
Creates a new window trigger. More... | |
virtual bool | ValidateChannel (size_t i, StreamDescriptor stream) override |
void | SetCrossingDirection (Crossing dir) |
Sets the crossing direction (only used for "stay inside" and "stay outside" window types) | |
Crossing | GetCrossingDirection () |
Gets the selected crossing direction. | |
void | SetWindowType (WindowType type) |
Sets the type of window. | |
WindowType | GetWindowType () |
Gets the type of window. | |
void | SetWidth (int64_t ps) |
Sets the time the signal needs to stay in/outside the window. More... | |
int64_t | GetWidth () |
Gets the time the signal needs to stay in / outside the winodw. | |
TRIGGER_INITPROC (WindowTrigger) | |
![]() | |
TwoLevelTrigger (Oscilloscope *scope) | |
Create a two-level trigger. More... | |
float | GetUpperBound () |
Gets the upper of the two trigger levels. More... | |
void | SetUpperBound (float level) |
Sets the upper trigger level. More... | |
float | GetLowerBound () |
Gets the lower of the two trigger levels. | |
void | SetLowerBound (float level) |
Sets the lower trigger level. More... | |
![]() | |
Trigger (Oscilloscope *scope) | |
Initialize a new trigger. More... | |
float | GetLevel () |
Get the trigger level. | |
void | SetLevel (float level) |
Sets the trigger level. More... | |
Oscilloscope * | GetScope () |
Gets the scope this trigger is attached to. | |
virtual std::string | GetTriggerDisplayName ()=0 |
virtual YAML::Node | SerializeConfiguration (IDTable &table) override |
Serializes this trigger's configuration to a YAML string. More... | |
![]() | |
void | DetachInputs () |
Disconnects all inputs from the node without releasing them. More... | |
size_t | GetInputCount () |
std::string | GetInputName (size_t i) |
void | SetInput (size_t i, StreamDescriptor stream, bool force=false) |
Connects a stream to the input of this node. More... | |
void | SetInput (const std::string &name, StreamDescriptor stream, bool force=false) |
virtual bool | ValidateChannel (size_t i, StreamDescriptor stream) |
StreamDescriptor | GetInput (size_t i) |
Gets the descriptor for one of our inputs. | |
FilterParameter & | GetParameter (std::string s) |
bool | HasParameter (std::string s) |
Checks if we have a parameter with a given name. More... | |
ParameterMapType::iterator | GetParamBegin () |
Returns an iterator to the beginning of our parameter map. | |
ParameterMapType::iterator | GetParamEnd () |
Returns an iterator to the end of our parameter map. | |
size_t | GetParamCount () |
Returns the number of parameter we have. | |
virtual YAML::Node | SerializeConfiguration (IDTable &table) |
Serializes this trigger's configuration to a YAML string. More... | |
virtual void | LoadParameters (const YAML::Node &node, IDTable &table) |
Load configuration from a save file. More... | |
virtual void | LoadInputs (const YAML::Node &node, IDTable &table) |
bool | IsDownstreamOf (std::set< FlowGraphNode * > nodes) |
Determines if this node is downstream of any of the specified other nodes. More... | |
virtual DataLocation | GetInputLocation () |
Gets the desired location of the nodes's input data. More... | |
virtual void | Refresh () |
Evaluates a filter graph node. More... | |
virtual void | Refresh (vk::raii::CommandBuffer &cmdBuf, std::shared_ptr< QueueHandle > queue) |
sigc::signal< void()> | signal_parametersChanged () |
sigc::signal< void()> | signal_inputsChanged () |
Static Public Member Functions | |
static std::string | GetTriggerName () |
Return the constant trigger name "Window". | |
![]() | |
static void | DoAddTriggerClass (std::string name, CreateProcType proc) |
Register a new trigger class for dynamic creation. More... | |
static void | EnumTriggers (std::vector< std::string > &names) |
Gets a list of all registered trigger types. More... | |
static Trigger * | CreateTrigger (std::string name, Oscilloscope *scope) |
Creates a new trigger for an oscilloscope. More... | |
Protected Attributes | |
FilterParameter & | m_width |
Time the signal needs to stay in / outside the window. | |
FilterParameter & | m_crossingType |
Crossing direction for stay-inside and stay-outside types. | |
FilterParameter & | m_windowType |
Condition to trigger on. | |
![]() | |
FilterParameter & | m_lowerLevel |
Lower voltage threshold. | |
![]() | |
Oscilloscope * | m_scope |
The scope this trigger is part of. | |
FilterParameter & | m_level |
"Trigger level" parameter | |
![]() | |
std::vector< std::string > | m_signalNames |
Names of signals we take as input. | |
std::vector< StreamDescriptor > | m_inputs |
The channel (if any) connected to each of our inputs. | |
ParameterMapType | m_parameters |
sigc::signal< void()> | m_parametersChangedSignal |
Signal emitted when the set of parameters changes. | |
sigc::signal< void()> | m_inputsChangedSignal |
Signal emitted when the set of inputs changes. | |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, CreateProcType > | CreateMapType |
Helper typedef for m_createprocs. | |
![]() | |
virtual void | OnInputChanged (size_t i) |
Called when a new input is connected to the node. More... | |
WaveformBase * | GetInputWaveform (size_t i) |
Gets the waveform attached to the specified input. More... | |
SparseAnalogWaveform * | GetSparseAnalogInputWaveform (size_t i) |
Gets the analog waveform attached to the specified input. | |
UniformAnalogWaveform * | GetUniformAnalogInputWaveform (size_t i) |
Gets the analog waveform attached to the specified input. | |
SparseDigitalWaveform * | GetSparseDigitalInputWaveform (size_t i) |
Gets the digital waveform attached to the specified input. | |
UniformDigitalWaveform * | GetUniformDigitalInputWaveform (size_t i) |
Gets the digital waveform attached to the specified input. | |
SparseDigitalBusWaveform * | GetSparseDigitalBusInputWaveform (size_t i) |
Gets the digital bus waveform attached to the specified input. | |
void | CreateInput (const std::string &name) |
Creates and names an input signal. | |
std::string | GetInputDisplayName (size_t i) |
Gets the display name for one of our inputs. More... | |
![]() | |
static CreateMapType | m_createprocs |
Map of trigger type names to factory methods. | |
Window trigger - detect when the signal leaves a specified range.
How to trigger.
Enumerator | |
---|---|
WINDOW_ENTER | Trigger immediately upon entry to the window. |
WINDOW_EXIT | Trigger immediately upon exit from the window. |
WINDOW_EXIT_TIMED | Trigger upon exit from the window, if we were in it for at least X time. |
WINDOW_ENTER_TIMED | Trigger upon entry to the window, if we were outside it for at least X time. |
WindowTrigger::WindowTrigger | ( | Oscilloscope * | scope | ) |
Creates a new window trigger.
scope | The oscilloscope the trigger is going to be used with |
|
inline |
Sets the time the signal needs to stay in/outside the window.
Only used for WINDOW_ENTER_TIMED and WINDOW_EXIT_TIMED
|
overridevirtual |
Reimplemented from FlowGraphNode.