ngscopeclient 0.1-dev+51fbda87c
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | List of all members

Abstract base class for oscilloscope / logic analyzer trigger inputs. More...

#include <Trigger.h>

Inheritance diagram for Trigger:
Inheritance graph
[legend]
Collaboration diagram for Trigger:
Collaboration graph
[legend]

Public Types

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 *)
 
- Public Types inherited from FlowGraphNode
enum  DataLocation { LOC_CPU , LOC_GPU , LOC_DONTCARE }
 
typedef std::map< std::string, FilterParameterParameterMapType
 Short name for a map of strings to parameters.
 

Public Member Functions

 Trigger (Oscilloscope *scope)
 Initialize a new trigger. More...
 
float GetLevel ()
 Get the trigger level.
 
void SetLevel (float level)
 Sets the trigger level. More...
 
OscilloscopeGetScope ()
 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...
 
- Public Member Functions inherited from FlowGraphNode
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.
 
FilterParameterGetParameter (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 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 TriggerCreateTrigger (std::string name, Oscilloscope *scope)
 Creates a new trigger for an oscilloscope. More...
 

Protected Types

typedef std::map< std::string, CreateProcType > CreateMapType
 Helper typedef for m_createprocs.
 

Protected Attributes

Oscilloscopem_scope
 The scope this trigger is part of.
 
FilterParameterm_level
 "Trigger level" parameter
 
- Protected Attributes inherited from FlowGraphNode
std::vector< std::string > m_signalNames
 Names of signals we take as input.
 
std::vector< StreamDescriptorm_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.
 

Static Protected Attributes

static CreateMapType m_createprocs
 Map of trigger type names to factory methods.
 

Additional Inherited Members

- Protected Member Functions inherited from FlowGraphNode
virtual void OnInputChanged (size_t i)
 Called when a new input is connected to the node. More...
 
WaveformBaseGetInputWaveform (size_t i)
 Gets the waveform attached to the specified input. More...
 
SparseAnalogWaveformGetSparseAnalogInputWaveform (size_t i)
 Gets the analog waveform attached to the specified input.
 
UniformAnalogWaveformGetUniformAnalogInputWaveform (size_t i)
 Gets the analog waveform attached to the specified input.
 
SparseDigitalWaveformGetSparseDigitalInputWaveform (size_t i)
 Gets the digital waveform attached to the specified input.
 
UniformDigitalWaveformGetUniformDigitalInputWaveform (size_t i)
 Gets the digital waveform attached to the specified input.
 
SparseDigitalBusWaveformGetSparseDigitalBusInputWaveform (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...
 

Detailed Description

Abstract base class for oscilloscope / logic analyzer trigger inputs.

Member Enumeration Documentation

◆ Condition

Conditions for triggers that perform logical comparisons of values.

Enumerator
CONDITION_EQUAL 

Match when value is equal to target.

CONDITION_NOT_EQUAL 

Match when value is not equal to target.

CONDITION_LESS 

Match when value is less than target.

CONDITION_LESS_OR_EQUAL 

Match when value is less than or equal to target.

CONDITION_GREATER 

Match when value is greater than target.

CONDITION_GREATER_OR_EQUAL 

Match when value is greater than or equal to target.

CONDITION_BETWEEN 

Match when value is greater than one target but less than another.

CONDITION_NOT_BETWEEN 

Match when value is not between two targets.

CONDITION_ANY 

Always match.

Constructor & Destructor Documentation

◆ Trigger()

Trigger::Trigger ( Oscilloscope scope)

Initialize a new trigger.

Parameters
scopeThe scope this trigger is attached to

Member Function Documentation

◆ CreateTrigger()

Trigger * Trigger::CreateTrigger ( std::string  name,
Oscilloscope scope 
)
static

Creates a new trigger for an oscilloscope.

Parameters
nameName of the desired trigger
scopeThe scope to create the trigger for
Returns
The newly created trigger, or nullptr on failure

◆ DoAddTriggerClass()

void Trigger::DoAddTriggerClass ( std::string  name,
CreateProcType  proc 
)
static

Register a new trigger class for dynamic creation.

Do not call this function directly, use the AddTriggerClass macro

Parameters
nameName of the trigger class
procFactory method

◆ EnumTriggers()

void Trigger::EnumTriggers ( std::vector< std::string > &  names)
static

Gets a list of all registered trigger types.

Parameters
[out]namesList of known triggers

◆ SerializeConfiguration()

YAML::Node Trigger::SerializeConfiguration ( IDTable table)
overridevirtual

Serializes this trigger's configuration to a YAML string.

Returns
YAML block with this trigger's configuration

Reimplemented from FlowGraphNode.

◆ SetLevel()

void Trigger::SetLevel ( float  level)
inline

Sets the trigger level.

Parameters
levelTrigger level

The documentation for this class was generated from the following files: