ngscopeclient v0.2.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members

Base class for triggers involving hardware clock/data recovery pattern matching. More...

#include <CDRTrigger.h>

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

Public Types

enum  LeCroyEqualizerMode { LECROY_EQ_NONE , LECROY_EQ_LOW , LECROY_EQ_MEDIUM , LECROY_EQ_HIGH }
 RX equalizer settings for LeCroy SDA 8Zi GTX trigger board. More...
 
enum  TriggerPosition { POSITION_END , POSITION_START }
 Where to position the reported trigger point, relative to the serial bit pattern. More...
 
enum  Polarity { POLARITY_NORMAL , POLARITY_INVERTED }
 Polarity inversion for the input. 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 class  ExecutionCapabilities {
  None = 0 , CommandBufferAppend = 1 , CommandBufferTailCall = 2 , VulkanOnly = 4 ,
  DynamicShader = 8
}
 
typedef std::map< std::string, FilterParameterParameterMapType
 Short name for a map of strings to parameters.
 

Public Member Functions

 CDRTrigger (Oscilloscope *scope)
 Creates a new CDR trigger.
 
virtual bool ValidateChannel (size_t i, StreamDescriptor stream)
 Check if a stream is allowed to be connected to the given input.
 
void SetBitRate (int64_t rate)
 Sets the nominal baud rate the PLL should attempt to lock to.
 
int64_t GetBitRate ()
 Returns the nominal CDR PLL data rate.
 
void CalculateBitRate ()
 Automatically calculates the bit rate of the incoming signal, if possible.
 
sigc::signal< void()> signal_calculateBitRate ()
 Signal emitted every time autobaud is requested.
 
bool IsAutomaticBitRateCalculationAvailable ()
 Checks if automatic bit rate calculation is available.
 
bool IsCDRLocked ()
 Queries hardware PLL lock status.
 
TriggerPosition GetTriggerPosition ()
 Gets the position of the trigger, relative to the serial bit pattern.
 
void SetTriggerPosition (TriggerPosition p)
 Sets the position of the trigger, relative to the serial bit pattern.
 
LeCroyEqualizerMode GetEqualizerMode ()
 Gets the RX equalizer mode.
 
void SetEqualizerMode (LeCroyEqualizerMode mode)
 Sets the RX equalizer mode.
 
Polarity GetPolarity ()
 Gets the polarity inversion.
 
void SetPolarity (Polarity mode)
 Gets the polarity inversion.
 
- Public Member Functions inherited from Trigger
 Trigger (Oscilloscope *scope)
 Initialize a new trigger.
 
virtual void Refresh (vk::raii::CommandBuffer &cmdBuf, std::shared_ptr< QueueHandle > queue) override
 
float GetLevel ()
 Get the trigger level.
 
float GetUpperLevel ()
 
void SetLevel (float level)
 Sets the trigger level.
 
void SetUpperLevel (float level)
 
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.
 
- Public Member Functions inherited from FlowGraphNode
void DetachInputs ()
 Disconnects all inputs from the node without releasing them.
 
size_t GetInputCount ()
 Get the number of input ports.
 
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.
 
void SetInput (const std::string &name, StreamDescriptor stream, bool force=false)
 
bool HasInput (StreamDescriptor desc)
 Checks if the given stream is connected to at least one of our inputs.
 
StreamDescriptor GetInput (size_t i)
 Gets the descriptor for one of our inputs.
 
std::shared_ptr< InputConstraintGetInputConstraints (size_t i)
 Get the constraints on one of our inputs.
 
FilterParameterGetParameter (std::string s)
 
bool HasParameter (std::string s)
 Checks if we have a parameter with a given name.
 
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 void LoadParameters (const YAML::Node &node, IDTable &table)
 Load configuration from a save file.
 
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.
 
virtual uint32_t GetExecutionCapabilitiesMask ()
 Returns a bitmask of ExecutionCapabilities fields.
 
bool HasMessages () const
 Checks if this graph has any messages.
 
const std::vector< FlowGraphNodeMessage > & GetMessages () const
 Walking through any messages.
 
const FlowGraphNodeMessageGetMostSevereMessage () const
 
void AddSink (size_t stream, FlowGraphNode *node)
 
void RemoveSink (size_t stream, FlowGraphNode *node)
 
const std::set< FlowGraphNode * > & GetSinks (size_t stream)
 
sigc::signal< void()> signal_parametersChanged ()
 
sigc::signal< void()> signal_inputsChanged ()
 

Protected Attributes

FilterParameterm_bitRate
 
FilterParameterm_position
 
FilterParameterm_lecroyEq
 
FilterParameterm_polarity
 
sigc::signal< void()> m_calculateBitRateSignal
 Signal requesting an auto-baud calculation.
 
- Protected Attributes inherited from Trigger
Oscilloscopem_scope
 The scope this trigger is part of.
 
FilterParameterm_level
 "Trigger level" parameter
 
FilterParameterm_triggerLevel
 
FilterParameterm_upperLevel
 
- Protected Attributes inherited from FlowGraphNode
std::vector< std::shared_ptr< InputDescriptor > > m_inputs
 Input ports.
 
std::vector< std::set< FlowGraphNode * > > m_sinks
 The nodes (if any) that each of our streams drives.
 
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.
 
std::vector< FlowGraphNodeMessagem_messages
 

Additional Inherited Members

- Static Public Member Functions inherited from Trigger
static void DoAddTriggerClass (std::string name, CreateProcType proc)
 Register a new trigger class for dynamic creation.
 
static void EnumTriggers (std::vector< std::string > &names)
 Gets a list of all registered trigger types.
 
static TriggerCreateTrigger (std::string name, Oscilloscope *scope)
 Creates a new trigger for an oscilloscope.
 
- 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.
 
WaveformBaseGetInputWaveform (size_t i)
 Gets the waveform attached to the specified input.
 
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.
 
virtual void CreateInput (const std::string &name)
 Gets the digital bus waveform attached to the specified input.
 
template<class T , class... Args>
void CreateInput (const std::string &name, Args &&... args)
 
std::string GetInputDisplayName (size_t i)
 Gets the display name for one of our inputs.
 
void ClearMessages ()
 Remove any messages left over from the last graph refresh.
 
void AddMessage (const FlowGraphNodeMessage &msg)
 Attach a new message to the node.
 
void AddMessage (Severity severity, const std::string &title, const std::string &message)
 Attach a new message to the node.
 
void AddErrorMessage (const std::string &err)
 Add a new error message.
 
void AddErrorMessage (const std::string &title, const std::string &err)
 Add a new error message with a title.
 
- Static Protected Attributes inherited from Trigger
static CreateMapType m_createprocs
 Map of trigger type names to factory methods.
 

Detailed Description

Base class for triggers involving hardware clock/data recovery pattern matching.

Member Enumeration Documentation

◆ LeCroyEqualizerMode

RX equalizer settings for LeCroy SDA 8Zi GTX trigger board.

TODO: we should refactor this to be more generic

Enumerator
LECROY_EQ_NONE 

No equalization.

LECROY_EQ_LOW 

2 dB boost

LECROY_EQ_MEDIUM 

5 dB boost

LECROY_EQ_HIGH 

9 dB boost

◆ Polarity

Polarity inversion for the input.

Enumerator
POLARITY_NORMAL 
Parameters
Inputsignal is positive polarity
POLARITY_INVERTED 
Parameters
Inputsignal is negated

◆ TriggerPosition

Where to position the reported trigger point, relative to the serial bit pattern.

Enumerator
POSITION_END 

Trigger is reported at the end of the pattern.

POSITION_START 

Trigger is reported at the start of the pattern.

Constructor & Destructor Documentation

◆ CDRTrigger()

CDRTrigger::CDRTrigger ( Oscilloscope scope)

Creates a new CDR trigger.

Parameters
scopeThe scope the trigger is to be created for

Member Function Documentation

◆ GetEqualizerMode()

LeCroyEqualizerMode CDRTrigger::GetEqualizerMode ( )
inline

Gets the RX equalizer mode.

TODO: we should refactor this to be more generic

◆ IsAutomaticBitRateCalculationAvailable()

bool CDRTrigger::IsAutomaticBitRateCalculationAvailable ( )

Checks if automatic bit rate calculation is available.

Checks whether automatic bit rate calculation is available on this trigger.

The current implementation assumes any LeCroyOscilloscope with a CDR trigger board has auto-baud capability, and nothing else does.

◆ IsCDRLocked()

bool CDRTrigger::IsCDRLocked ( )

Queries hardware PLL lock status.

Checks whether the hardware clock recovery PLL is locked.

◆ SetBitRate()

void CDRTrigger::SetBitRate ( int64_t  rate)
inline

Sets the nominal baud rate the PLL should attempt to lock to.

Parameters
rateThe baud rate, in Hz

◆ SetEqualizerMode()

void CDRTrigger::SetEqualizerMode ( LeCroyEqualizerMode  mode)
inline

Sets the RX equalizer mode.

TODO: we should refactor this to be more generic

◆ SetPolarity()

void CDRTrigger::SetPolarity ( Polarity  mode)
inline

Gets the polarity inversion.

Parameters
modePolarity inversion mode

◆ SetTriggerPosition()

void CDRTrigger::SetTriggerPosition ( TriggerPosition  p)
inline

Sets the position of the trigger, relative to the serial bit pattern.

Parameters
pDesired trigger position (start or end)

◆ ValidateChannel()

bool CDRTrigger::ValidateChannel ( size_t  i,
StreamDescriptor  stream 
)
virtual

Check if a stream is allowed to be connected to the given input.

Reimplemented from FlowGraphNode.


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