Agora  1.2.0
Agora project
csv_logger.h
Go to the documentation of this file.
1 
7 #ifndef CSV_LOGGER_H_
8 #define CSV_LOGGER_H_
9 
10 #include <array>
11 #include <string>
12 
13 #include "config.h"
14 #include "symbols.h"
15 
16 #if defined(ENABLE_CSV_LOG)
17 #include "spdlog/spdlog.h"
18 #endif
19 
20 namespace CsvLog {
21 
22 enum CsvLogId {
34 };
35 
37 
38 static constexpr size_t kAllLogs = kCsvLogs + kMatLogs;
39 
40 #if defined(ENABLE_CSV_LOG)
41 static const std::array<std::string, kAllLogs> kCsvName = {
42  "snr", "rssi", "noise", "evm", "evmsc", "evmsnr", "ber",
43  "ser", "csi", "calib", "ulcsi", "dlcsi", "dlbeam"};
44 #endif
45 
46 class CsvLogger {
47  public:
48  CsvLogger([[maybe_unused]] size_t log_id, [[maybe_unused]] Config* const cfg,
49  [[maybe_unused]] Direction dir,
50  [[maybe_unused]] bool bs_only = false);
51 
52 #if defined(ENABLE_CSV_LOG)
53  inline void Write(const std::string& str) {
54  if (logger_) {
55  logger_->info(str);
56  }
57  }
58 
59  protected:
60  std::shared_ptr<spdlog::logger> logger_;
61 #else
62  inline void Write(const std::string& /*unused*/) {}
63 #endif
64 }; // CsvLogger
65 
66 } //namespace CsvLog
67 #endif //CSV_LOGGER_H_
CsvLog::kEVM
@ kEVM
Definition: csv_logger.h:26
udp_sink.h
spdlog::sinks::udp_sink_config
Definition: udp_sink.h:26
Direction
Direction
Definition: symbols.h:39
CsvLog::kSER
@ kSER
Definition: csv_logger.h:30
async.h
CsvLog::kCalib
@ kCalib
Definition: csv_logger.h:32
csv_logger.h
Declaration file for the CsvLogger class which records runtime physical-layer performance into csv fi...
logger.h
Logging macros that can be optimized out by the compiler.
CsvLog::kDLCSI
@ kDLCSI
Definition: csv_logger.h:36
spdlog::sinks_init_list
std::initializer_list< sink_ptr > sinks_init_list
Definition: common.h:128
spdlog::level::info
@ info
Definition: common.h:215
AGORA_LOG_ERROR
#define AGORA_LOG_ERROR(...)
Definition: logger.h:39
CsvLog::CsvLogger
Definition: csv_logger.h:46
CsvLog::kEVMSC
@ kEVMSC
Definition: csv_logger.h:27
Direction::kUplink
@ kUplink
filename
filename
Definition: parse_all_dl.m:14
CsvLog::CsvLogger::Write
void Write(const std::string &)
Definition: csv_logger.h:62
CsvLog
Definition: csv_logger.cc:19
CsvLog::kDlBeam
@ kDlBeam
Definition: csv_logger.h:36
CsvLog::kULCSI
@ kULCSI
Definition: csv_logger.h:36
spdlog::async_overflow_policy::overrun_oldest
@ overrun_oldest
CsvLog::kAllLogs
static constexpr size_t kAllLogs
Definition: csv_logger.h:38
spdlog.h
basic_file_sink.h
CsvLog::MatLogId
MatLogId
Definition: csv_logger.h:36
CsvLog::kBER
@ kBER
Definition: csv_logger.h:29
CsvLog::kEVMSNR
@ kEVMSNR
Definition: csv_logger.h:28
symbols.h
CsvLog::kSNR
@ kSNR
Definition: csv_logger.h:23
CsvLog::kRSSI
@ kRSSI
Definition: csv_logger.h:24
CsvLog::kCsvLogs
@ kCsvLogs
Definition: csv_logger.h:33
CsvLog::kMatLogs
@ kMatLogs
Definition: csv_logger.h:36
Config
Definition: config.h:26
CsvLog::CsvLogId
CsvLogId
Definition: csv_logger.h:22
pattern_formatter.h
CsvLog::kNOISE
@ kNOISE
Definition: csv_logger.h:25
spdlog::thread_pool
std::shared_ptr< spdlog::details::thread_pool > thread_pool()
Definition: async.h:95
config.h
Declaration file for the configuration class which importants json configuration values into class va...
CsvLog::CsvLogger::CsvLogger
CsvLogger([[maybe_unused]] size_t log_id, [[maybe_unused]] Config *const cfg, [[maybe_unused]] Direction dir, [[maybe_unused]] bool bs_only=false)
Definition: csv_logger.cc:21
CsvLog::kCSI
@ kCSI
Definition: csv_logger.h:31