Vector BLF
WlanFrame.h
1 // SPDX-FileCopyrightText: 2013-2021 Tobias Lorenz <tobias.lorenz@gmx.net>
2 //
3 // SPDX-License-Identifier: GPL-3.0-or-later
4 
5 #pragma once
6 
7 #include <Vector/BLF/platform.h>
8 
9 #include <vector>
10 
11 #include <Vector/BLF/AbstractFile.h>
12 #include <Vector/BLF/ObjectHeader.h>
13 
14 #include <Vector/BLF/vector_blf_export.h>
15 
16 namespace Vector {
17 namespace BLF {
18 
24 struct VECTOR_BLF_EXPORT WlanFrame final : ObjectHeader {
25  WlanFrame();
26 
27  void read(AbstractFile & is) override;
28  void write(AbstractFile & os) override;
29  uint32_t calculateObjectSize() const override;
30 
36  uint16_t channel {};
37 
39  enum Flags : uint16_t {
41  GenuineMacHeader = 0x0001,
42 
44  CorrectFrameControlFormat = 0x0002,
45  };
46 
48  uint16_t flags {};
49 
51  enum Dir : uint8_t {
53  Rx = 0,
54 
56  Tx = 1,
57 
59  TxRq = 2
60  };
61 
67  uint8_t dir {};
68 
75  uint8_t radioChannel {};
76 
82  int16_t signalStrength {};
83 
89  uint16_t signalQuality {};
90 
97  uint16_t frameLength {};
98 
100  uint32_t reservedWlanFrame {};
101 
109  std::vector<uint8_t> frameData {};
110 };
111 
112 }
113 }
Definition: AbstractFile.h:19
Object header.
Definition: ObjectHeader.h:22
WLAN_FRAME.
Definition: WlanFrame.h:24
Dir
Definition: WlanFrame.h:51
Flags
Definition: WlanFrame.h:39