PicoScenes API Docs
 
Loading...
Searching...
No Matches
AbstractNIC Class Referenceabstract

#include <AbstractNIC.hxx>

Inheritance diagram for AbstractNIC:
Collaboration diagram for AbstractNIC:

Public Member Functions

virtual void startTxService ()=0
 
virtual void stopTxService ()=0
 
virtual void pauseTx ()=0
 
virtual void resumeTx ()=0
 
virtual bool isTxServiceStarted () const =0
 
virtual int transmitPicoScenesFrame (const ModularPicoScenesTxFrame &frame)=0
 
virtual int transmitPicoScenesFrameSync (const ModularPicoScenesTxFrame &frame)=0
 
virtual int transmitFramesInBatch (const std::vector< ModularPicoScenesTxFrame > &frames, uint16_t numRepeats)=0
 
template<int repeat = 1, typename ... Frames, typename = std::enable_if_t<(std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame *> &&...) || (std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame> &&...) || ((std::is_same_v<std::remove_cvref_t<Frames>, std::shared_ptr<ModularPicoScenesTxFrame>> || std::is_same_v<std::remove_cvref_t<Frames>, std::unique_ptr<ModularPicoScenesTxFrame>>) &&...)>>
int transmitFramesInBatch (Frames &&... frames)
 
virtual ModularPicoScenesTxFrame initializeTxFrame ()
 
virtual void startRxService ()=0
 
virtual void stopRxService ()=0
 
virtual void pauseRx ()=0
 
virtual void resumeRx ()=0
 
virtual bool isRxServiceStarted () const =0
 
virtual std::optional< ModularPicoScenesRxFrame > syncRxConditionally (const std::function< bool(const ModularPicoScenesRxFrame &)> &condition, const std::chrono::milliseconds &maxWait_ms, std::optional< std::string > conditionaName=std::nullopt)=0
 
virtual std::optional< ModularPicoScenesRxFrame > syncRxWaitTaskId (uint16_t taskid, uint32_t maxWait_ms)=0
 
virtual void registerTaskIdHandler (uint16_t taskId, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getHandlerForFrameType (uint8_t frameType)=0
 
virtual void unregisterTaskIdHandler (uint16_t taskId)=0
 
virtual bool checkTaskIdHandlerExist (uint16_t taskId)=0
 
virtual void registerFrameTypeHandler (uint8_t frameType, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getHandlerForTaskId (uint16_t taskId)=0
 
virtual void unregisterFrameTypeHandler (uint8_t frameType)=0
 
virtual bool checkFrameTypeHandlerExist (uint8_t frameType)=0
 
virtual void registerGeneralHandler (const std::string &handlerKeyName, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getGeneralHandler (const std::string &handlerKeyName)=0
 
virtual void unregisterGeneralHandler (const std::string &handlerKeyName)=0
 
virtual bool checkGeneralHandlerExist (const std::string &handlerKeyName)=0
 
const std::string & getReferredInterfaceName () const
 
const std::string & getPhyId () const
 
const std::shared_ptr< AbstractFrontEnd > & getFrontEnd () const
 
virtual const PicoScenesFrameTxParameters & getUserSpecifiedTxParameters () const =0
 This methods returns the PicoScenesFrameTxParameters object created by the user specified Tx parameters.
.
 
virtual PicoScenesFrameTxParameters & getUserSpecifiedTxParameters ()=0
 This methods returns the PicoScenesFrameTxParameters object created by the user specified Tx parameters.
.
 
PicoScenesDeviceType getDeviceType () const
 
std::shared_ptr< AbstractHALConfigurationgetConfiguration () const
 
template<typename FrontEndT , class = std::enable_if_t<std::is_base_of_v<AbstractFrontEnd, FrontEndT>>>
std::shared_ptr< FrontEndT > getTypedFrontEnd () const
 
const std::shared_ptr< PicoScenesPluginManager > & getPluginManager () const
 
virtual void installPlugins () const =0
 
std::vector< std::shared_ptr< po::options_description > > getAllNICOptions ()
 

Protected Member Functions

 AbstractNIC (const std::string &referredInterfaceName)
 

Protected Attributes

std::string referredInterfaceName
 
std::string phyId
 
PicoScenesDeviceType deviceType = PicoScenesDeviceType::Unknown
 
std::shared_ptr< AbstractHALConfigurationconfiguration
 
std::shared_ptr< AbstractFrontEndfrontEnd
 
std::shared_ptr< PicoScenesPluginManagerpluginManager
 

Detailed Description

Definition at line 21 of file AbstractNIC.hxx.

Constructor & Destructor Documentation

◆ AbstractNIC()

AbstractNIC::AbstractNIC ( const std::string &  referredInterfaceName)
explicitprotected

Member Function Documentation

◆ checkFrameTypeHandlerExist()

virtual bool AbstractNIC::checkFrameTypeHandlerExist ( uint8_t  frameType)
pure virtual

◆ checkGeneralHandlerExist()

virtual bool AbstractNIC::checkGeneralHandlerExist ( const std::string &  handlerKeyName)
pure virtual

◆ checkTaskIdHandlerExist()

virtual bool AbstractNIC::checkTaskIdHandlerExist ( uint16_t  taskId)
pure virtual

◆ getAllNICOptions()

std::vector< std::shared_ptr< po::options_description > > AbstractNIC::getAllNICOptions ( )

◆ getConfiguration()

std::shared_ptr< AbstractHALConfiguration > AbstractNIC::getConfiguration ( ) const

◆ getDeviceType()

PicoScenesDeviceType AbstractNIC::getDeviceType ( ) const

◆ getFrontEnd()

const std::shared_ptr< AbstractFrontEnd > & AbstractNIC::getFrontEnd ( ) const

◆ getGeneralHandler()

virtual std::function< bool(const ModularPicoScenesRxFrame &)> AbstractNIC::getGeneralHandler ( const std::string &  handlerKeyName)
pure virtual

◆ getHandlerForFrameType()

virtual std::function< bool(const ModularPicoScenesRxFrame &)> AbstractNIC::getHandlerForFrameType ( uint8_t  frameType)
pure virtual

◆ getHandlerForTaskId()

virtual std::function< bool(const ModularPicoScenesRxFrame &)> AbstractNIC::getHandlerForTaskId ( uint16_t  taskId)
pure virtual

◆ getPhyId()

const std::string & AbstractNIC::getPhyId ( ) const

◆ getPluginManager()

const std::shared_ptr< PicoScenesPluginManager > & AbstractNIC::getPluginManager ( ) const

◆ getReferredInterfaceName()

const std::string & AbstractNIC::getReferredInterfaceName ( ) const

Referenced by getTypedFrontEnd().

◆ getTypedFrontEnd()

template<typename FrontEndT , class = std::enable_if_t<std::is_base_of_v<AbstractFrontEnd, FrontEndT>>>
std::shared_ptr< FrontEndT > AbstractNIC::getTypedFrontEnd ( ) const
inline

◆ getUserSpecifiedTxParameters() [1/2]

virtual const PicoScenesFrameTxParameters & AbstractNIC::getUserSpecifiedTxParameters ( ) const
pure virtual

This methods returns the PicoScenesFrameTxParameters object created by the user specified Tx parameters.
.

The user specified Tx parameters in CLI are parsed and interpreted into a PicoScenesFrameTxParameters object. To make this object available to upper-level plugins, it is store in the NIC/SDR's AbstractNIC object.
Plugin developers can access the user specified Tx parameters via this method.

◆ getUserSpecifiedTxParameters() [2/2]

virtual PicoScenesFrameTxParameters & AbstractNIC::getUserSpecifiedTxParameters ( )
pure virtual

This methods returns the PicoScenesFrameTxParameters object created by the user specified Tx parameters.
.

The user specified Tx parameters in CLI are parsed and interpreted into a PicoScenesFrameTxParameters object. To make this object available to upper-level plugins, it is store in the NIC/SDR's AbstractNIC object.
Plugin developers can access the user specified Tx parameters via this method.

◆ initializeTxFrame()

virtual ModularPicoScenesTxFrame AbstractNIC::initializeTxFrame ( )
inlinevirtual
See also
AbstractFrontEnd::initializeTxFrame
Returns

Definition at line 61 of file AbstractNIC.hxx.

References frontEnd.

◆ installPlugins()

virtual void AbstractNIC::installPlugins ( ) const
pure virtual

◆ isRxServiceStarted()

virtual bool AbstractNIC::isRxServiceStarted ( ) const
pure virtual

◆ isTxServiceStarted()

virtual bool AbstractNIC::isTxServiceStarted ( ) const
pure virtual

◆ pauseRx()

virtual void AbstractNIC::pauseRx ( )
pure virtual

◆ pauseTx()

virtual void AbstractNIC::pauseTx ( )
pure virtual

◆ registerFrameTypeHandler()

virtual void AbstractNIC::registerFrameTypeHandler ( uint8_t  frameType,
const std::function< bool(const ModularPicoScenesRxFrame &)> &  handle 
)
pure virtual

◆ registerGeneralHandler()

virtual void AbstractNIC::registerGeneralHandler ( const std::string &  handlerKeyName,
const std::function< bool(const ModularPicoScenesRxFrame &)> &  handle 
)
pure virtual

◆ registerTaskIdHandler()

virtual void AbstractNIC::registerTaskIdHandler ( uint16_t  taskId,
const std::function< bool(const ModularPicoScenesRxFrame &)> &  handle 
)
pure virtual

◆ resumeRx()

virtual void AbstractNIC::resumeRx ( )
pure virtual

◆ resumeTx()

virtual void AbstractNIC::resumeTx ( )
pure virtual

◆ startRxService()

virtual void AbstractNIC::startRxService ( )
pure virtual

◆ startTxService()

virtual void AbstractNIC::startTxService ( )
pure virtual

◆ stopRxService()

virtual void AbstractNIC::stopRxService ( )
pure virtual

◆ stopTxService()

virtual void AbstractNIC::stopTxService ( )
pure virtual

◆ syncRxConditionally()

virtual std::optional< ModularPicoScenesRxFrame > AbstractNIC::syncRxConditionally ( const std::function< bool(const ModularPicoScenesRxFrame &)> &  condition,
const std::chrono::milliseconds &  maxWait_ms,
std::optional< std::string >  conditionaName = std::nullopt 
)
pure virtual

◆ syncRxWaitTaskId()

virtual std::optional< ModularPicoScenesRxFrame > AbstractNIC::syncRxWaitTaskId ( uint16_t  taskid,
uint32_t  maxWait_ms 
)
pure virtual

◆ transmitFramesInBatch() [1/2]

virtual int AbstractNIC::transmitFramesInBatch ( const std::vector< ModularPicoScenesTxFrame > &  frames,
uint16_t  numRepeats 
)
pure virtual

Referenced by transmitFramesInBatch().

◆ transmitFramesInBatch() [2/2]

template<int repeat = 1, typename ... Frames, typename = std::enable_if_t<(std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame *> &&...) || (std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame> &&...) || ((std::is_same_v<std::remove_cvref_t<Frames>, std::shared_ptr<ModularPicoScenesTxFrame>> || std::is_same_v<std::remove_cvref_t<Frames>, std::unique_ptr<ModularPicoScenesTxFrame>>) &&...)>>
int AbstractNIC::transmitFramesInBatch ( Frames &&...  frames)
inline

Definition at line 44 of file AbstractNIC.hxx.

References transmitFramesInBatch().

◆ transmitPicoScenesFrame()

virtual int AbstractNIC::transmitPicoScenesFrame ( const ModularPicoScenesTxFrame &  frame)
pure virtual

◆ transmitPicoScenesFrameSync()

virtual int AbstractNIC::transmitPicoScenesFrameSync ( const ModularPicoScenesTxFrame &  frame)
pure virtual

◆ unregisterFrameTypeHandler()

virtual void AbstractNIC::unregisterFrameTypeHandler ( uint8_t  frameType)
pure virtual

◆ unregisterGeneralHandler()

virtual void AbstractNIC::unregisterGeneralHandler ( const std::string &  handlerKeyName)
pure virtual

◆ unregisterTaskIdHandler()

virtual void AbstractNIC::unregisterTaskIdHandler ( uint16_t  taskId)
pure virtual

Member Data Documentation

◆ configuration

std::shared_ptr<AbstractHALConfiguration> AbstractNIC::configuration
protected

Definition at line 160 of file AbstractNIC.hxx.

◆ deviceType

PicoScenesDeviceType AbstractNIC::deviceType = PicoScenesDeviceType::Unknown
protected

Definition at line 159 of file AbstractNIC.hxx.

◆ frontEnd

std::shared_ptr<AbstractFrontEnd> AbstractNIC::frontEnd
protected

Definition at line 161 of file AbstractNIC.hxx.

Referenced by initializeTxFrame().

◆ phyId

std::string AbstractNIC::phyId
protected

Definition at line 158 of file AbstractNIC.hxx.

◆ pluginManager

std::shared_ptr<PicoScenesPluginManager> AbstractNIC::pluginManager
protected

Definition at line 162 of file AbstractNIC.hxx.

◆ referredInterfaceName

std::string AbstractNIC::referredInterfaceName
protected

Definition at line 157 of file AbstractNIC.hxx.


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