KiCad PCB EDA Suite
Loading...
Searching...
No Matches
TUNING_PROFILE_PARAMETERS_IFACE Class Referenceabstract

Interface for providers of tuning profile parameter information. More...

#include <tuning_profile_parameters_iface.h>

Inheritance diagram for TUNING_PROFILE_PARAMETERS_IFACE:
TUNING_PROFILE_PARAMETERS_USER_DEFINED

Public Member Functions

 TUNING_PROFILE_PARAMETERS_IFACE (BOARD *aBoard, LENGTH_DELAY_CALCULATION *aCalculation)
 
virtual ~TUNING_PROFILE_PARAMETERS_IFACE ()=default
 
virtual void OnStackupChanged ()
 Event called by the length and time calculation architecture if the board stackup has changed.
 
virtual void OnSettingsChanged ()
 Event called by the length and time calculation architecture if netclass definitions have changed.
 
virtual std::vector< int64_t > GetPropagationDelays (const std::vector< LENGTH_DELAY_CALCULATION_ITEM > &aItems, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
 Gets the propagation delays (in internal units) for the given items in the given geometry context.
 
virtual int64_t GetPropagationDelay (const LENGTH_DELAY_CALCULATION_ITEM &aItem, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
 Gets the propagation delay (in internal units) for the given item in the given geometry context.
 
virtual int64_t GetTrackLengthForPropagationDelay (int64_t aDelay, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
 Gets the track length (in internal distance units) required for the given propagation delay (in internal time units).
 
virtual int64_t CalculatePropagationDelayForShapeLineChain (const SHAPE_LINE_CHAIN &aShape, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
 Gets the propagation delay for the given shape line chain.
 

Protected Attributes

BOARDm_board
 The board all calculations are for.
 
LENGTH_DELAY_CALCULATIONm_lengthCalculation
 The parent length / delay calculation object.
 

Detailed Description

Interface for providers of tuning profile parameter information.

This interface is consumed by the LENGTH_TIME_CALCULATOR object to convert space-domain physical layout information (e.g. track lengths) in to time-domain propagation information.

Definition at line 59 of file tuning_profile_parameters_iface.h.

Constructor & Destructor Documentation

◆ TUNING_PROFILE_PARAMETERS_IFACE()

TUNING_PROFILE_PARAMETERS_IFACE::TUNING_PROFILE_PARAMETERS_IFACE ( BOARD * aBoard,
LENGTH_DELAY_CALCULATION * aCalculation )
inlineexplicit

◆ ~TUNING_PROFILE_PARAMETERS_IFACE()

virtual TUNING_PROFILE_PARAMETERS_IFACE::~TUNING_PROFILE_PARAMETERS_IFACE ( )
virtualdefault

Member Function Documentation

◆ CalculatePropagationDelayForShapeLineChain()

virtual int64_t TUNING_PROFILE_PARAMETERS_IFACE::CalculatePropagationDelayForShapeLineChain ( const SHAPE_LINE_CHAIN & aShape,
const TUNING_PROFILE_GEOMETRY_CONTEXT & aContext )
pure virtual

Gets the propagation delay for the given shape line chain.

Parameters
aShapeis the shape to calculate delay for
aContextis the geometry context for which to query to propagation delay

Implemented in TUNING_PROFILE_PARAMETERS_USER_DEFINED.

◆ GetPropagationDelay()

virtual int64_t TUNING_PROFILE_PARAMETERS_IFACE::GetPropagationDelay ( const LENGTH_DELAY_CALCULATION_ITEM & aItem,
const TUNING_PROFILE_GEOMETRY_CONTEXT & aContext )
pure virtual

Gets the propagation delay (in internal units) for the given item in the given geometry context.

Parameters
aItemthe board item to query propagation delay for
aContextis the geometry context in which to query to propagation delay

Implemented in TUNING_PROFILE_PARAMETERS_USER_DEFINED.

◆ GetPropagationDelays()

virtual std::vector< int64_t > TUNING_PROFILE_PARAMETERS_IFACE::GetPropagationDelays ( const std::vector< LENGTH_DELAY_CALCULATION_ITEM > & aItems,
const TUNING_PROFILE_GEOMETRY_CONTEXT & aContext )
pure virtual

Gets the propagation delays (in internal units) for the given items in the given geometry context.

Parameters
aItemsthe board items to query propagation delay for
aContextthe geometry context in which to query to propagation delay

Implemented in TUNING_PROFILE_PARAMETERS_USER_DEFINED.

◆ GetTrackLengthForPropagationDelay()

virtual int64_t TUNING_PROFILE_PARAMETERS_IFACE::GetTrackLengthForPropagationDelay ( int64_t aDelay,
const TUNING_PROFILE_GEOMETRY_CONTEXT & aContext )
pure virtual

Gets the track length (in internal distance units) required for the given propagation delay (in internal time units).

The track length should be calculated with the given geometry context.

Parameters
aContextthe geometry context in which to query to propagation delay
aDelaythe propagation delay for which a length should be calculated

Implemented in TUNING_PROFILE_PARAMETERS_USER_DEFINED.

◆ OnSettingsChanged()

virtual void TUNING_PROFILE_PARAMETERS_IFACE::OnSettingsChanged ( )
inlinevirtual

Event called by the length and time calculation architecture if netclass definitions have changed.

This can be used to invalidate any calculation / simulation caches.

Reimplemented in TUNING_PROFILE_PARAMETERS_USER_DEFINED.

Definition at line 80 of file tuning_profile_parameters_iface.h.

◆ OnStackupChanged()

virtual void TUNING_PROFILE_PARAMETERS_IFACE::OnStackupChanged ( )
inlinevirtual

Event called by the length and time calculation architecture if the board stackup has changed.

This can be used to invalidate any calculation / simulation caches.

Definition at line 74 of file tuning_profile_parameters_iface.h.

Member Data Documentation

◆ m_board

BOARD* TUNING_PROFILE_PARAMETERS_IFACE::m_board
protected

The board all calculations are for.

Definition at line 121 of file tuning_profile_parameters_iface.h.

Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::rebuildCaches(), and TUNING_PROFILE_PARAMETERS_IFACE().

◆ m_lengthCalculation

LENGTH_DELAY_CALCULATION* TUNING_PROFILE_PARAMETERS_IFACE::m_lengthCalculation
protected

The parent length / delay calculation object.

Definition at line 124 of file tuning_profile_parameters_iface.h.

Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::getPropagationDelay(), and TUNING_PROFILE_PARAMETERS_IFACE().


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