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
8
#include "
MAC80211InjectionOnlyFrontEnd.hxx
"
9
20
class
MAC80211CSIExtractableFrontEnd
:
public
MAC80211InjectionOnlyFrontEnd
{
21
public
:
22
28
explicit
MAC80211CSIExtractableFrontEnd
(
const
std::string &
referredInterfaceName
) :
MAC80211InjectionOnlyFrontEnd
(
referredInterfaceName
) {}
29
42
int
startRx
()
override
{
43
if
(
csiPathPointer
> 0) {
44
rxServiceStarted
=
true
;
45
startCSIExtractionAndParsingLoop
();
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
62
protected
:
64
int
csiPathPointer
{};
65
75
virtual
void
startCSIExtractionAndParsingLoop
() = 0;
76
};
77
78
79
#endif
//PICOSCENES_PLATFORM_MAC80211CSIEXTRACTABLEFRONTEND_HXX
MAC80211InjectionOnlyFrontEnd.hxx
AbstractFrontEnd::referredInterfaceName
std::string referredInterfaceName
the user specified frontend name
Definition
AbstractFrontEnd.hxx:185
AbstractFrontEnd::rxServiceStarted
bool rxServiceStarted
indicate whether Rx service loop is running
Definition
AbstractFrontEnd.hxx:199
AbstractFrontEnd::getReferredInterfaceName
const std::string & getReferredInterfaceName() const
Get the user-specified frontend name.
MAC80211CSIExtractableFrontEnd
Base class for MAC80211-based NICs that support CSI extraction.
Definition
MAC80211CSIExtractableFrontEnd.hxx:20
MAC80211CSIExtractableFrontEnd::MAC80211CSIExtractableFrontEnd
MAC80211CSIExtractableFrontEnd(const std::string &referredInterfaceName)
Constructor for CSI-capable front-end.
Definition
MAC80211CSIExtractableFrontEnd.hxx:28
MAC80211CSIExtractableFrontEnd::csiPathPointer
int csiPathPointer
< File descriptor for CSI data port
Definition
MAC80211CSIExtractableFrontEnd.hxx:64
MAC80211CSIExtractableFrontEnd::setFrameTypeFilter
virtual void setFrameTypeFilter(const std::vector< uint8_t > &frameTypes)
Set frame type filter for CSI collection.
Definition
MAC80211CSIExtractableFrontEnd.hxx:58
MAC80211CSIExtractableFrontEnd::startRx
int startRx() override
Start the CSI reception service.
Definition
MAC80211CSIExtractableFrontEnd.hxx:42
MAC80211CSIExtractableFrontEnd::startCSIExtractionAndParsingLoop
virtual void startCSIExtractionAndParsingLoop()=0
Start the CSI extraction and parsing loop.
MAC80211InjectionOnlyFrontEnd
Frontend class for MAC80211-based devices supporting frame injection.
Definition
MAC80211InjectionOnlyFrontEnd.hxx:22
headers
MAC80211CSIExtractableFrontEnd.hxx
Generated by
1.9.8