Network Interface Card class with CSI extraction capabilities for MAC80211 devices.
More...
|
const std::string & | getDevId () const |
| Get the device interface identifier.
|
|
const std::string & | getMonId () const |
| Get the monitor interface identifier.
|
|
uint16_t | getPhyIdNumber () const |
| Get the physical interface number.
|
|
const std::string & | getPhyPath () const |
| Get the path to the physical interface in the system.
|
|
const std::array< uint8_t, 6 > & | getMacAddressMon () const |
| Get the MAC address of the monitor interface.
|
|
const std::array< uint8_t, 6 > & | getMacAddressDev () const |
| Get the MAC address of the device interface.
|
|
const std::shared_ptr< MAC80211CSIExtractableFrontEnd > & | getMacFrontEnd () const |
| Get the associated MAC80211 CSI-capable frontend.
|
|
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.
|
|
Network Interface Card class with CSI extraction capabilities for MAC80211 devices.
This class implements a NIC interface for MAC80211-based devices that support Channel State Information (CSI) extraction. It provides:
- Device identification and management
- MAC address handling for both monitor and device interfaces
- Integration with MAC80211CSIExtractableFrontEnd for CSI operations
Definition at line 21 of file MAC80211CSIExtractableNIC.hxx.