5#ifndef PICOSCENES_PLATFORM_ABSTRACTPICOSCENESPLUGIN_HXX
6#define PICOSCENES_PLATFORM_ABSTRACTPICOSCENESPLUGIN_HXX
10#include "ModularPicoScenesFrame.hxx"
12namespace pos = boost::program_options::command_line_style;
49 return std::vector{PicoScenesDeviceType::USRP, PicoScenesDeviceType::QCA9300, PicoScenesDeviceType::IWL5300, PicoScenesDeviceType::MAC80211Compatible};
76 virtual void rxHandle(
const ModularPicoScenesRxFrame &rxs) {}
95 void setNIC(
const std::shared_ptr<AbstractNIC> &nicV) {
107 std::shared_ptr<AbstractNIC>
nic;
Abstract base class for Network Interface Card (NIC) operations.
Abstract base class that defines the interface for all PicoScenes plugins.
virtual void parseAndExecuteCommands(const std::string &commandString)
Parse and execute a command string.
virtual std::string getPluginName()=0
Get the name of the plugin.
virtual std::string getPluginDescription()=0
Get a description of the plugin's functionality.
virtual void rxHandle(const ModularPicoScenesRxFrame &rxs)
Handle a received frame.
virtual void finalize()
Finalize the plugin.
virtual std::shared_ptr< po::options_description > pluginOptionsDescription()
Get the command-line options description for this plugin.
void setNIC(const std::shared_ptr< AbstractNIC > &nicV)
Set the Network Interface Card (NIC) for this plugin.
virtual std::string pluginStatus()=0
Get the current status of the plugin.
virtual std::vector< PicoScenesDeviceType > getSupportedDeviceTypes()
Get the list of device types supported by this plugin.
virtual ~AbstractPicoScenesPlugin()=default
Virtual destructor.
std::shared_ptr< AbstractNIC > nic
The Network Interface Card used by this plugin.
virtual void initialization()
Initialize the plugin.