| 
    Agora
    1.2.0
    
   Agora project 
   | 
 
#include <config.h>

Public Member Functions | |
| Config (std::string jsonfilename) | |
| ~Config () | |
| void | Running (bool value) | 
| bool | Running () const | 
| size_t | BsAntNum () const | 
| void | BsAntNum (size_t n_bs_ant) | 
| size_t | BfAntNum () const | 
| size_t | UeNum () const | 
| size_t | UeAntNum () const | 
| size_t | UeAntOffset () const | 
| size_t | UeAntTotal () const | 
| size_t | OfdmCaNum () const | 
| size_t | CpLen () const | 
| size_t | OfdmDataNum () const | 
| size_t | OfdmDataStart () const | 
| size_t | OfdmDataStop () const | 
| size_t | OfdmPilotSpacing () const | 
| bool | HwFramer () const | 
| bool | UeHwFramer () const | 
| size_t | UeResyncPeriod () const | 
| double | FreqGhz () const | 
| double | Freq () const | 
| double | Rate () const | 
| double | Nco () const | 
| double | RadioRfFreq () const | 
| double | BwFilter () const | 
| bool | SingleGain () const | 
| double | TxGainA () const | 
| double | RxGainA () const | 
| double | TxGainB () const | 
| double | RxGainB () const | 
| double | CalibTxGainA () const | 
| double | CalibTxGainB () const | 
| double | ClientTxGainA (size_t id) const | 
| double | ClientRxGainA (size_t id) const | 
| double | ClientTxGainB (size_t id) const | 
| double | ClientRxGainB (size_t id) const | 
| const std::vector< double > & | ClientTxGainA () const | 
| const std::vector< double > & | ClientRxGainA () const | 
| const std::vector< double > & | ClientTxGainB () const | 
| const std::vector< double > & | ClientRxGainB () const | 
| size_t | NumCells () const | 
| size_t | NumRadios () const | 
| size_t | InitCalibRepeat () const | 
| size_t | NumChannels () const | 
| size_t | NumUeChannels () const | 
| size_t | RefAnt (size_t id) const | 
| size_t | RefRadio (size_t id) const | 
| size_t | BeaconAnt () const | 
| size_t | BeaconLen () const | 
| bool | Beamsweep () const | 
| bool | SampleCalEn () const | 
| bool | ImbalanceCalEn () const | 
| size_t | BeamformingAlgo () const | 
| std::string | Beamforming () const | 
| bool | ExternalRefNode (size_t id) const | 
| std::string | Channel () const | 
| std::string | UeChannel () const | 
| size_t | RecipCalDlAnt (size_t frame_id, size_t dl_cal_symbol) const | 
| size_t | ModifyRecCalIndex (size_t previous_index, int mod_value=0) const | 
| size_t | RecipCalIndex (size_t frame_id) const | 
| size_t | RecipCalUlRxIndex (size_t frame_id, size_t ant) const | 
| size_t | RecipCalFrameCnt () const | 
| size_t | CoreOffset () const | 
| size_t | WorkerThreadNum () const | 
| size_t | SocketThreadNum () const | 
| size_t | UeCoreOffset () const | 
| size_t | UeWorkerThreadNum () const | 
| size_t | UeSocketThreadNum () const | 
| size_t | FftThreadNum () const | 
| size_t | DemulThreadNum () const | 
| size_t | DecodeThreadNum () const | 
| size_t | BeamThreadNum () const | 
| size_t | DemulBlockSize () const | 
| size_t | DemulEventsPerSymbol () const | 
| size_t | BeamBlockSize () const | 
| size_t | BeamBatchSize () const | 
| size_t | BeamEventsPerSymbol () const | 
| size_t | FftBlockSize () const | 
| size_t | EncodeBlockSize () const | 
| bool | FreqOrthogonalPilot () const | 
| size_t | OfdmTxZeroPrefix () const | 
| size_t | OfdmTxZeroPostfix () const | 
| size_t | OfdmRxZeroPrefixBs () const | 
| size_t | OfdmRxZeroPrefixCalUl () const | 
| void | OfdmRxZeroPrefixCalUl (size_t prefix) | 
| size_t | OfdmRxZeroPrefixCalDl () const | 
| void | OfdmRxZeroPrefixCalDl (const size_t prefix) | 
| size_t | OfdmRxZeroPrefixClient () const | 
| size_t | SampsPerSymbol () const | 
| size_t | SampsPerFrame () const | 
| size_t | PacketLength () const | 
| float | Scale () const | 
| bool | BigstationMode () const | 
| size_t | DlPacketLength () const | 
| std::string | Modulation (Direction dir) const | 
| size_t | ModOrderBits (Direction dir) const | 
| size_t | NumBytesPerCb (Direction dir) const | 
| size_t | NumPaddingBytesPerCb (Direction dir) const | 
| size_t | MacDataBytesNumPerframe (Direction dir) const | 
| size_t | MacBytesNumPerframe (Direction dir) const | 
| size_t | MacPacketLength (Direction dir) const | 
| size_t | MacPayloadMaxLength (Direction dir) const | 
| size_t | MacPacketsPerframe (Direction dir) const | 
| const LDPCconfig & | LdpcConfig (Direction dir) const | 
| Table< complex_float > & | ModTable (Direction dir) | 
| const nlohmann::json & | MCSParams (Direction dir) const | 
| size_t | SubcarrierPerCodeBlock (Direction dir) const | 
| bool | ScrambleEnabled () const | 
| std::string | UeServerAddr () const | 
| std::string | BsServerAddr () const | 
| std::string | UeRruAddr () const | 
| std::string | BsRruAddr () const | 
| int | BsServerPort () const | 
| int | BsRruPort () const | 
| int | UeServerPort () const | 
| int | UeRruPort () const | 
| size_t | FramesToTest () const | 
| float | NoiseLevel () const | 
| bool | FftInRru () const | 
| uint16_t | DpdkNumPorts () const | 
| uint16_t | DpdkPortOffset () const | 
| const std::string & | DpdkMacAddrs () const | 
| size_t | BsMacRxPort () const | 
| size_t | BsMacTxPort () const | 
| size_t | UeMacRxPort () const | 
| size_t | UeMacTxPort () const | 
| const std::string & | LogListenerAddr () const | 
| size_t | LogListenerPort () const | 
| const std::vector< int > & | ClTxAdvance () const | 
| const std::vector< float > & | ClCorrScale () const | 
| const FrameStats & | Frame () const | 
| const std::vector< std::complex< float > > & | PilotCf32 () const | 
| const std::vector< std::complex< float > > & | GoldCf32 () const | 
| const std::vector< uint32_t > & | Coeffs () const | 
| const std::vector< uint32_t > & | Pilot () const | 
| const std::vector< uint32_t > & | Beacon () const | 
| const complex_float * | PilotsSgn () const | 
| const std::vector< std::complex< float > > & | CommonPilot () const | 
| const std::vector< std::string > & | RadioId () const | 
| const std::vector< std::string > & | HubId () const | 
| const std::vector< std::string > & | UeRadioId () const | 
| const std::vector< std::string > & | UeRadioName () const | 
| const std::vector< size_t > & | CellId () const | 
| Table< complex_float > & | UeSpecificPilot () | 
| Table< std::complex< int16_t > > & | UeSpecificPilotT () | 
| std::vector< std::complex< int16_t > > & | PilotCi16 () | 
| std::vector< std::complex< int16_t > > & | BeaconCi16 () | 
| Table< int8_t > & | DlBits () | 
| Table< int8_t > & | UlBits () | 
| Table< int8_t > & | DlModBits () | 
| Table< int8_t > & | UlModBits () | 
| Table< complex_float > & | UlIqF () | 
| Table< complex_float > & | DlIqF () | 
| Table< std::complex< int16_t > > & | UlIqT () | 
| Table< std::complex< int16_t > > & | DlIqT () | 
| void | GenData () | 
| void | UpdateUlMCS (const nlohmann::json &mcs) | 
| void | UpdateDlMCS (const nlohmann::json &mcs) | 
| size_t | GetSymbolId (size_t input_id) const | 
| TODO document and review.  More... | |
| bool | IsBeacon (size_t, size_t) const | 
| bool | IsPilot (size_t, size_t) const | 
| bool | IsDlPilot (size_t, size_t) const | 
| bool | IsCalDlPilot (size_t, size_t) const | 
| bool | IsCalUlPilot (size_t, size_t) const | 
| bool | IsDownlink (size_t, size_t) const | 
| bool | IsUplink (size_t, size_t) const | 
| SymbolType | GetSymbolType (size_t symbol_id) const | 
| Return the symbol type of this symbol in this frame.  More... | |
| size_t | GetTotalDataSymbolIdx (size_t frame_id, size_t symbol_id) const | 
| size_t | GetTotalDataSymbolIdxUl (size_t frame_id, size_t symbol_idx_ul) const | 
| size_t | GetTotalDataSymbolIdxDl (size_t frame_id, size_t symbol_idx_dl) const | 
| size_t | GetBeaconDlIdx (size_t symbol_id) const | 
| size_t | GetPilotUlIdx (size_t symbol_id) const | 
| double | GetFrameDurationSec () const | 
| Return the frame duration in seconds.  More... | |
| complex_float * | GetDataBuf (Table< complex_float > &data_buffers, size_t frame_id, size_t symbol_id) const | 
| size_t | GetBeamScId (size_t sc_id) const | 
| complex_float * | GetCalibBuffer (Table< complex_float > &calib_buffer, size_t frame_id, size_t sc_id) const | 
| Get the calibration buffer for this frame and subcarrier ID.  More... | |
| int8_t * | GetMacBits (Table< int8_t > &info_bits, Direction dir, size_t frame_id, size_t symbol_id, size_t ue_id, size_t cb_id) const | 
| Get mac bits for this frame, symbol, user and code block ID.  More... | |
| int8_t * | GetInfoBits (Table< int8_t > &info_bits, Direction dir, size_t symbol_id, size_t ue_id, size_t cb_id) const | 
| Get info bits for this symbol, user and code block ID.  More... | |
| int8_t * | GetModBitsBuf (Table< int8_t > &mod_bits_buffer, Direction dir, size_t frame_id, size_t symbol_id, size_t ue_id, size_t sc_id) const | 
| Get encoded_buffer for this frame, symbol, user and code block ID.  More... | |
| size_t | GetOFDMPilotNum () const | 
| size_t | GetOFDMDataNum () const | 
| size_t | GetOFDMDataIndex (size_t sc_id) const | 
| bool | IsDataSubcarrier (size_t sc_id) const | 
| const std::string & | ConfigFilename () const | 
| const std::string & | TraceFilename () const | 
| const std::string & | Timestamp () const | 
| const std::vector< std::string > & | UlTxFreqDataFiles (void) const | 
Static Public Attributes | |
| static constexpr bool | kDebugRecipCal = false | 
Private Member Functions | |
| void | Print () const | 
| nlohmann::json | Parse (const nlohmann::json &in_json, const std::string &json_handle) | 
| void | DumpMcsInfo () | 
Static Private Attributes | |
| static const size_t | kDefaultSymbolNumPerFrame = 70 | 
| static const size_t | kDefaultPilotSymPerFrame = 8 | 
| static const size_t | kDefaultULSymPerFrame = 30 | 
| static const size_t | kDefaultULSymStart = 9 | 
| static const size_t | kDefaultDLSymPerFrame = 30 | 
| static const size_t | kDefaultDLSymStart = 40 | 
| static constexpr size_t | kCbPerSymbol = 1 | 
      
  | 
  explicit | 

| Config::~Config | ( | ) | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  private | 


      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

| void Config::GenData | ( | ) | 

      
  | 
  inline | 


      
  | 
  inline | 
Return the subcarrier ID to which we should refer to for the zeroforcing matrices of subcarrier [sc_id].

      
  | 
  inline | 
Get the calibration buffer for this frame and subcarrier ID.
      
  | 
  inline | 
Fetch the data buffer for this frame and symbol ID. The symbol must be an uplink symbol.


      
  | 
  inline | 
Return the frame duration in seconds.


      
  | 
  inline | 
Get info bits for this symbol, user and code block ID.


      
  | 
  inline | 
Get mac bits for this frame, symbol, user and code block ID.

      
  | 
  inline | 
Get encoded_buffer for this frame, symbol, user and code block ID.


      
  | 
  inline | 

      
  | 
  inline | 


      
  | 
  inline | 

      
  | 
  inline | 


| size_t Config::GetSymbolId | ( | size_t | input_id | ) | const | 
TODO document and review.

| SymbolType Config::GetSymbolType | ( | size_t | symbol_id | ) | const | 
Return the symbol type of this symbol in this frame.


      
  | 
  inline | 
Return total number of data symbols of all frames in a buffer that holds data of kFrameWnd frames


      
  | 
  inline | 
Return total number of downlink data symbols of all frames in a buffer that holds data of kFrameWnd frames


      
  | 
  inline | 
Return total number of uplink data symbols of all frames in a buffer that holds data of kFrameWnd frames


      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

| bool Config::IsBeacon | ( | size_t | , | 
| size_t | |||
| ) | const | 
| bool Config::IsCalDlPilot | ( | size_t | , | 
| size_t | symbol_id | ||
| ) | const | 


| bool Config::IsCalUlPilot | ( | size_t | , | 
| size_t | symbol_id | ||
| ) | const | 


      
  | 
  inline | 

| bool Config::IsDlPilot | ( | size_t | , | 
| size_t | symbol_id | ||
| ) | const | 


| bool Config::IsDownlink | ( | size_t | frame_id, | 
| size_t | symbol_id | ||
| ) | const | 

| bool Config::IsPilot | ( | size_t | , | 
| size_t | symbol_id | ||
| ) | const | 


| bool Config::IsUplink | ( | size_t | , | 
| size_t | symbol_id | ||
| ) | const | 


      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  private | 


      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  private | 


      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 


      
  | 
  inline | 


      
  | 
  inline | 


      
  | 
  inline | 


      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 


      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

      
  | 
  inline | 

| void Config::UpdateDlMCS | ( | const nlohmann::json & | mcs | ) | 


| void Config::UpdateUlMCS | ( | const nlohmann::json & | mcs | ) | 


      
  | 
  inline | 

      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  staticconstexprprivate | 
      
  | 
  staticconstexpr | 
      
  | 
  inlinestaticprivate | 
      
  | 
  inlinestaticprivate | 
      
  | 
  inlinestaticprivate | 
      
  | 
  inlinestaticprivate | 
      
  | 
  inlinestaticprivate | 
      
  | 
  inlinestaticprivate | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private |