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

Slew rate trigger - trigger when an edge rate meets the specified conditions. More...

#include <SlewRateTrigger.h>

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

Public Types

enum  EdgeType { EDGE_RISING , EDGE_FALLING , EDGE_ANY }
 Edge directions. More...
 
- Public Types inherited from Trigger
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

 SlewRateTrigger (Oscilloscope *scope)
 Initialize the trigger. More...
 
virtual bool ValidateChannel (size_t i, StreamDescriptor stream) override
 
 TRIGGER_INITPROC (SlewRateTrigger)
 
int64_t GetUpperInterval ()
 Get the upper limit on edge duration.
 
void SetUpperInterval (int64_t interval)
 Sets the upper limit on edge duration. More...
 
int64_t GetLowerInterval ()
 Get the lower limit on edge duration.
 
void SetLowerInterval (int64_t interval)
 Sets the lower limit on edge duration. More...
 
void SetCondition (Condition type)
 Set the logical condition for the trigger. More...
 
Condition GetCondition ()
 Get the logical condition for the trigger.
 
void SetSlope (EdgeType type)
 Set the edge direction to trigger on. More...
 
EdgeType GetSlope ()
 Get the edge direction.
 
- Public Member Functions inherited from TwoLevelTrigger
 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...
 
- Public Member Functions inherited from Trigger
 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 std::string GetTriggerName ()
 Return the constant trigger name "Slew Rate".
 
- Static Public Member Functions inherited from Trigger
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 Attributes

FilterParameterm_condition
 Target condition to search for.
 
FilterParameterm_lowerInterval
 Lower interval.
 
FilterParameterm_upperInterval
 Upper interval.
 
FilterParameterm_slope
 Slope.
 
- Protected Attributes inherited from TwoLevelTrigger
FilterParameterm_lowerLevel
 Lower voltage threshold.
 
- Protected Attributes inherited from Trigger
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.
 

Additional Inherited Members

- Protected Types inherited from Trigger
typedef std::map< std::string, CreateProcType > CreateMapType
 Helper typedef for m_createprocs.
 
- 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...
 
- Static Protected Attributes inherited from Trigger
static CreateMapType m_createprocs
 Map of trigger type names to factory methods.
 

Detailed Description

Slew rate trigger - trigger when an edge rate meets the specified conditions.

Member Enumeration Documentation

◆ EdgeType

Edge directions.

Enumerator
EDGE_RISING 

Rising edge.

EDGE_FALLING 

Falling edge.

EDGE_ANY 

Either rising or falling edge.

Constructor & Destructor Documentation

◆ SlewRateTrigger()

SlewRateTrigger::SlewRateTrigger ( Oscilloscope scope)

Initialize the trigger.

Parameters
scopeThe scope this trigger will be used with

Member Function Documentation

◆ SetCondition()

void SlewRateTrigger::SetCondition ( Condition  type)
inline

Set the logical condition for the trigger.

Parameters
typeTrigger condition

◆ SetLowerInterval()

void SlewRateTrigger::SetLowerInterval ( int64_t  interval)
inline

Sets the lower limit on edge duration.

Parameters
intervalTime from crossing first to second level, in fs

◆ SetSlope()

void SlewRateTrigger::SetSlope ( EdgeType  type)
inline

Set the edge direction to trigger on.

Parameters
typeType of edge to trigger on

◆ SetUpperInterval()

void SlewRateTrigger::SetUpperInterval ( int64_t  interval)
inline

Sets the upper limit on edge duration.

Parameters
intervalTime from crossing first to second level, in fs

◆ ValidateChannel()

bool SlewRateTrigger::ValidateChannel ( size_t  i,
StreamDescriptor  stream 
)
overridevirtual

Reimplemented from FlowGraphNode.


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