#define MAX_NB_PRACH_ASSOC_PERIOD_IN_ASSOCIATION_PATTERN_PERIOD (16) // Maximum number of association periods in max association pattern period (160ms)
#define MAX_NB_PRACH_CONF_PERIOD_IN_ASSOCIATION_PERIOD (16) // Maximum association period is 16
#define MAX_NB_PRACH_CONF_PERIOD_IN_ASSOCIATION_PATTERN_PERIOD (16) // Max association pattern period is 160ms and minimum PRACH configuration period is 10ms
#define MAX_NB_FRAMES_IN_PRACH_CONF_PERIOD (16) // Max PRACH configuration period is 160ms and frame is 10ms
#define MAX_NB_SLOTS_IN_FRAME (160) // Max number of slots in a frame (@ SCS 240kHz = 160)
#define MAX_NB_PRACH_OCCASIONS_IN_TIME (7) // Max number of PRACH occasions in time per slot
#define MAX_NB_PRACH_OCCASIONS_IN_FREQ (8) // Max number of PRACH occasions in frequency per slot
#define MAX_NB_FRAMES_IN_ASSOCIATION_PATTERN_PERIOD (16) // Maximum number of frames in the maximum association pattern period
#define MAX_NB_ASSOCIATION_PERIOD_IN_ASSOCIATION_PATTERN_PERIOD (16) // Max nb of association periods in an association pattern period of 160ms
#define MAX_FDM (8) // Maximum nb of PRACH occasions FDMed in a slot
#define MAX_NB_SSBS (64)
#define MAX_RO_PER_SSB_RATIO (8)
#define MAX_SSB_PER_RO_RATIO (16)
// Maximum number of SSBs that can be mapped in an association pattern
// Here we chose an arbitrary maximum number - maximum number of slots in an association pattern * maximum number of ROs in a slot
uint8_tfdm;// 1, 2, 4 or 8 (possible values of msg1-FDM)
uint8_tslot;// 0 - 159 (maximum number of slots in a 10ms frame - @ 240kHz)
uint8_tframe;// 0 - 15 (maximum number of frames in a 160ms association pattern)
uint8_tmapped_ssb_idx[MAX_SSB_PER_RO_RATIO];// List of mapped SSBs
uint8_tmapped_ssb_idx[MAX_SSB_PER_RO];// List of mapped SSBs
uint8_tnb_mapped_ssbs;
uint16_tformat;// RO preamble format
}prach_occasion_info_t;
// PRACH occasions details in a slot
// PRACH occasion slot details
// A PRACH occasion slot is a series of PRACH occasions in time (symbols) and frequency
typedefstructprach_occasion_slot{
prach_occasion_info_tprach_occasion[MAX_NB_PRACH_OCCASIONS_IN_TIME][MAX_FDM];// Starting symbol of each PRACH occasions in a slot - 0Xff when no more valid PRACH occasion in that slot
prach_occasion_info_tprach_occasion[MAX_TDM][MAX_FDM];// Starting symbol of each PRACH occasions in a slot