A class representing an SDR Network Interface Card (NIC). More...
#include <SDRNIC.hxx>
Static Public Member Functions | |
static std::shared_ptr< SDRNIC > | getInstance (const std::string &referredInterfaceName) |
Gets an instance of SDRNIC. | |
Protected Member Functions | |
SDRNIC (const std::string &referredInterfaceName) | |
Constructs an SDRNIC object. | |
![]() | |
AbstractNIC (const std::string &referredInterfaceName) | |
Protected constructor. | |
Protected Attributes | |
std::shared_ptr< AbstractSDRFrontEnd > | sdrFrontEnd |
The SDR front end associated with this NIC. | |
![]() | |
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< AbstractHALConfiguration > | configuration |
Hardware abstraction layer configuration. | |
std::shared_ptr< AbstractFrontEnd > | frontEnd |
Frontend interface for hardware interaction. | |
std::shared_ptr< PicoScenesPluginManager > | pluginManager |
Plugin manager for extending functionality. | |
Additional Inherited Members | |
![]() | |
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< AbstractHALConfiguration > | getConfiguration () 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. | |
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.
|
explicitprotected |
|
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.
referredInterfaceName | The name of the interface to refer to. |
|
protected |
The SDR front end associated with this NIC.
Definition at line 42 of file SDRNIC.hxx.