PicoScenes API Docs
 
Loading...
Searching...
No Matches
SDRNIC Class Reference

A class representing an SDR Network Interface Card (NIC). More...

#include <SDRNIC.hxx>

Inheritance diagram for SDRNIC:
Collaboration diagram for SDRNIC:

Static Public Member Functions

static std::shared_ptr< SDRNICgetInstance (const std::string &referredInterfaceName)
 Gets an instance of SDRNIC.
 

Protected Member Functions

 SDRNIC (const std::string &referredInterfaceName)
 Constructs an SDRNIC object.
 
- Protected Member Functions inherited from AbstractNIC
 AbstractNIC (const std::string &referredInterfaceName)
 Protected constructor.
 

Protected Attributes

std::shared_ptr< AbstractSDRFrontEndsdrFrontEnd
 The SDR front end associated with this NIC.
 
- Protected Attributes inherited from AbstractNIC
std::string referredInterfaceName
 Interface name reference.
 
std::string phyId
 Physical interface identifier.
 
PicoScenesDeviceType deviceType = PicoScenesDeviceType::Unknown
 Type of the device (NIC/SDR)
 
std::shared_ptr< AbstractHALConfigurationconfiguration
 Hardware abstraction layer configuration.
 
std::shared_ptr< AbstractFrontEndfrontEnd
 Frontend interface for hardware interaction.
 
std::shared_ptr< PicoScenesPluginManagerpluginManager
 Plugin manager for extending functionality.
 

Additional Inherited Members

- Public Member Functions inherited from AbstractNIC
virtual void startTxService ()=0
 Start the transmission service.
 
virtual void stopTxService ()=0
 Stop the transmission service.
 
virtual void pauseTx ()=0
 Temporarily pause transmission.
 
virtual void resumeTx ()=0
 Resume paused transmission.
 
virtual bool isTxServiceStarted () const =0
 Check if transmission service is running.
 
virtual int transmitPicoScenesFrame (const ModularPicoScenesTxFrame &frame)=0
 Transmit a single PicoScenes frame.
 
virtual int transmitPicoScenesFrameSync (const ModularPicoScenesTxFrame &frame)=0
 Transmit a frame synchronously.
 
virtual int transmitFramesInBatch (const std::vector< ModularPicoScenesTxFrame > &frames, uint16_t numRepeats)=0
 Transmit multiple frames in batch mode.
 
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)
 Template method for batch transmission of frames.
 
virtual ModularPicoScenesTxFrame initializeTxFrame ()
 Initialize a new transmission frame.
 
virtual void startRxService ()=0
 Start the reception service.
 
virtual void stopRxService ()=0
 Stop the reception service.
 
virtual void pauseRx ()=0
 Temporarily pause reception.
 
virtual void resumeRx ()=0
 Resume paused reception.
 
virtual bool isRxServiceStarted () const =0
 Check if reception service is running.
 
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
 Wait for a frame that matches specific conditions.
 
virtual std::optional< ModularPicoScenesRxFrame > syncRxWaitTaskId (uint16_t taskid, uint32_t maxWait_ms)=0
 Wait for a frame with specific task ID.
 
virtual void registerTaskIdHandler (uint16_t taskId, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 Register a handler for specific task ID.
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getHandlerForFrameType (uint8_t frameType)=0
 Get handler for specific frame type.
 
virtual void unregisterTaskIdHandler (uint16_t taskId)=0
 Unregister handler for specific task ID.
 
virtual bool checkTaskIdHandlerExist (uint16_t taskId)=0
 Check if handler exists for specific task ID.
 
virtual void registerFrameTypeHandler (uint8_t frameType, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 Register handler for specific frame type.
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getHandlerForTaskId (uint16_t taskId)=0
 Get handler for specific task ID.
 
virtual void unregisterFrameTypeHandler (uint8_t frameType)=0
 Unregister handler for specific frame type.
 
virtual bool checkFrameTypeHandlerExist (uint8_t frameType)=0
 Check if handler exists for specific frame type.
 
virtual void registerGeneralHandler (const std::string &handlerKeyName, const std::function< bool(const ModularPicoScenesRxFrame &)> &handle)=0
 Register a general handler.
 
virtual std::function< bool(const ModularPicoScenesRxFrame &)> getGeneralHandler (const std::string &handlerKeyName)=0
 Get general handler by name.
 
virtual void unregisterGeneralHandler (const std::string &handlerKeyName)=0
 Unregister general handler.
 
virtual bool checkGeneralHandlerExist (const std::string &handlerKeyName)=0
 Check if general handler exists.
 
const std::string & getReferredInterfaceName () const
 Get the interface name.
 
const std::string & getPhyId () const
 Get the physical interface ID.
 
const std::shared_ptr< AbstractFrontEnd > & getFrontEnd () const
 Get the front end interface.
 
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
 Get the device type.
 
std::shared_ptr< AbstractHALConfigurationgetConfiguration () const
 Get the HAL configuration.
 
template<typename FrontEndT , class = std::enable_if_t<std::is_base_of_v<AbstractFrontEnd, FrontEndT>>>
std::shared_ptr< FrontEndT > getTypedFrontEnd () const
 Get typed front end instance.
 
const std::shared_ptr< PicoScenesPluginManager > & getPluginManager () const
 Get the plugin manager.
 
virtual void installPlugins () const =0
 Install plugins for this NIC.
 
std::vector< std::shared_ptr< po::options_description > > getAllNICOptions ()
 Get all NIC options.
 

Detailed Description

A class representing an SDR Network Interface Card (NIC).

This class provides an interface for managing SDR-based network interfaces, allowing for the creation and management of SDR devices as network interfaces.

Definition at line 17 of file SDRNIC.hxx.

Constructor & Destructor Documentation

◆ SDRNIC()

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

Constructs an SDRNIC object.

This constructor initializes the SDRNIC with the specified interface name and sets up the associated SDR front end.

Parameters
referredInterfaceNameThe name of the interface to refer to.

Member Function Documentation

◆ getInstance()

static std::shared_ptr< SDRNIC > SDRNIC::getInstance ( const std::string &  referredInterfaceName)
static

Gets an instance of SDRNIC.

This method returns a shared pointer to an SDRNIC instance corresponding to the specified interface name. It ensures that only one instance is created for each unique interface name.

Parameters
referredInterfaceNameThe name of the interface to refer to.
Returns
A shared pointer to the SDRNIC instance.

Member Data Documentation

◆ sdrFrontEnd

std::shared_ptr<AbstractSDRFrontEnd> SDRNIC::sdrFrontEnd
protected

The SDR front end associated with this NIC.

Definition at line 42 of file SDRNIC.hxx.


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