PicoScenes API Docs
 
Loading...
Searching...
No Matches
MAC80211CSIExtractableFrontEnd.hxx
Go to the documentation of this file.
1//
2// Created by Zhiping Jiang on 9/15/21.
3//
4
5#ifndef PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLEFRONTEND_HXX
6#define PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLEFRONTEND_HXX
7
9
21public:
22
29
42 int startRx() override {
43 if (csiPathPointer > 0) {
44 rxServiceStarted = true;
46 return 0;
47 }
48
49 throw std::runtime_error("CSI data port of [" + getReferredInterfaceName() + "] is not properly opened.");
50 }
51
58 virtual void setFrameTypeFilter(const std::vector<uint8_t> &frameTypes) {
59 throw std::runtime_error(fmt::format("<{}> does not support operation: {}.", getReferredInterfaceName(), std::string(BOOST_CURRENT_FUNCTION)));
60 }
61
62protected:
65
76};
77
78
79#endif //PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLEFRONTEND_HXX
std::string referredInterfaceName
the user specified frontend name
bool rxServiceStarted
indicate whether Rx service loop is running
const std::string & getReferredInterfaceName() const
Get the user-specified frontend name.
Base class for MAC80211-based NICs that support CSI extraction.
MAC80211CSIExtractableFrontEnd(const std::string &referredInterfaceName)
Constructor for CSI-capable front-end.
int csiPathPointer
< File descriptor for CSI data port
virtual void setFrameTypeFilter(const std::vector< uint8_t > &frameTypes)
Set frame type filter for CSI collection.
int startRx() override
Start the CSI reception service.
virtual void startCSIExtractionAndParsingLoop()=0
Start the CSI extraction and parsing loop.
Frontend class for MAC80211-based devices supporting frame injection.