RENEWLab  1.1.0
RENEW project
macros.h
Go to the documentation of this file.
1 #ifndef MACROS_H
2 #define MACROS_H
3 
4 #include <atomic>
5 #include <vector>
6 
7 #ifdef USE_UHD
8 static constexpr bool kUseUHD = true;
9 #else
10 static constexpr bool kUseUHD = false;
11 #endif
12 
13 static constexpr size_t kStreamContinuous = 1;
14 static constexpr size_t kStreamEndBurst = 2;
15 static constexpr size_t kDsDimsNum = 5;
16 static constexpr size_t kDsDimSymbol = 2;
17 
18 // buffer length of each rx thread
19 static constexpr size_t kSampleBufferFrameNum = 80;
20 static constexpr size_t kQueueSize = 36;
21 
22 #define DEBUG_PRINT (0)
23 #define DEBUG_RADIO (0)
24 #define DEBUG_PLOT (0)
25 
26 // TASK & SOCKET thread number
27 #define RECORDER_THREAD_NUM (1)
28 #define RX_THREAD_NUM (4)
29 
30 #define MAX_FRAME_INC (2000)
31 #define TIME_DELTA (40) //ms
32 #define SETTLE_TIME_MS (1)
33 #define UHD_INIT_TIME_SEC (3) // radio init time for UHD devices
34 #define BEACON_INTERVAL (20) // frames
35 
40  kTaskRead = 3,
42 };
43 
44 enum NodeType { kBS = 0, kClient = 1 };
45 
46 // each thread has a SampleBuffer
47 struct SampleBuffer {
48  std::vector<char> buffer;
49  std::atomic_int* pkt_buf_inuse;
50 };
51 
52 struct Packet {
53  uint32_t frame_id;
54  uint32_t slot_id;
55  uint32_t cell_id;
56  uint32_t ant_id;
57  short data[];
58  Packet(int f, int s, int c, int a)
59  : frame_id(f), slot_id(s), cell_id(c), ant_id(a) {}
60 };
61 
62 struct Event_data {
65  int frame_id;
66  int slot_id;
67  int ant_id;
68  size_t buff_size;
69  int offset;
71 };
72 
73 #endif
kDsDimsNum
static constexpr size_t kDsDimsNum
Definition: macros.h:15
kQueueSize
static constexpr size_t kQueueSize
Definition: macros.h:20
Packet::Packet
Packet(int f, int s, int c, int a)
Definition: macros.h:58
Event_data::buff_size
size_t buff_size
Definition: macros.h:68
kEventTxSymbol
@ kEventTxSymbol
Definition: macros.h:38
Packet::frame_id
uint32_t frame_id
Definition: macros.h:53
Event_data
Definition: macros.h:62
a
a
Definition: iris_py.m:254
SampleBuffer::pkt_buf_inuse
std::atomic_int * pkt_buf_inuse
Definition: macros.h:49
Event_data::ant_id
int ant_id
Definition: macros.h:67
Packet::cell_id
uint32_t cell_id
Definition: macros.h:55
kThreadTermination
@ kThreadTermination
Definition: macros.h:41
kStreamEndBurst
static constexpr size_t kStreamEndBurst
Definition: macros.h:14
SchedulerEventType
SchedulerEventType
Definition: macros.h:36
SampleBuffer::buffer
std::vector< char > buffer
Definition: macros.h:48
kEventRxSymbol
@ kEventRxSymbol
Definition: macros.h:37
Event_data::node_type
NodeType node_type
Definition: macros.h:64
kSampleBufferFrameNum
static constexpr size_t kSampleBufferFrameNum
Definition: macros.h:19
Packet::slot_id
uint32_t slot_id
Definition: macros.h:54
Packet
Definition: macros.h:52
NodeType
NodeType
Definition: macros.h:44
kDsDimSymbol
static constexpr size_t kDsDimSymbol
Definition: macros.h:16
Event_data::slot_id
int slot_id
Definition: macros.h:66
Event_data::buffer
SampleBuffer * buffer
Definition: macros.h:70
Event_data::event_type
SchedulerEventType event_type
Definition: macros.h:63
kUseUHD
static constexpr bool kUseUHD
Definition: macros.h:10
Packet::ant_id
uint32_t ant_id
Definition: macros.h:56
kClient
@ kClient
Definition: macros.h:44
Packet::data
short data[]
Definition: macros.h:57
kBS
@ kBS
Definition: macros.h:44
Event_data::frame_id
int frame_id
Definition: macros.h:65
kStreamContinuous
static constexpr size_t kStreamContinuous
Definition: macros.h:13
SampleBuffer
Definition: macros.h:47
kTaskRead
@ kTaskRead
Definition: macros.h:40
Event_data::offset
int offset
Definition: macros.h:69
kTaskRecord
@ kTaskRecord
Definition: macros.h:39