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. | |
Protected Member Functions inherited from AbstractNIC | |
| AbstractNIC (const std::string &referredInterfaceName) | |
| Protected constructor. | |
Protected Attributes | |
| std::shared_ptr< AbstractSDRFrontEnd > | sdrFrontEnd |
| 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< 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 | |
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< 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.