beam switching logic for sivers
This commit is contained in:
@@ -748,6 +748,7 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
|
|||||||
// bit 11 enables the gpio programming
|
// bit 11 enables the gpio programming
|
||||||
// currently we switch beams every 10 slots (should = 1 TDD period in FR2) and we take the beam index of the first symbol of the first slot of this period
|
// currently we switch beams every 10 slots (should = 1 TDD period in FR2) and we take the beam index of the first symbol of the first slot of this period
|
||||||
int beam=0;
|
int beam=0;
|
||||||
|
int BF_RST, BF_INC=-1, BF_RTN=0;
|
||||||
|
|
||||||
if (slot%10==0) {
|
if (slot%10==0) {
|
||||||
if ( ru->common.beam_id && (ru->common.beam_id[0][slot*fp->symbols_per_slot] < 8)) {
|
if ( ru->common.beam_id && (ru->common.beam_id[0][slot*fp->symbols_per_slot] < 8)) {
|
||||||
@@ -755,6 +756,21 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reset condition
|
||||||
|
if(slot==0){
|
||||||
|
BF_RST = 1;
|
||||||
|
} else{
|
||||||
|
BF_RST = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// beam increment condition. Here we are incrementing for every 10 slots
|
||||||
|
if(slot!=0 && slot%10==0){
|
||||||
|
BF_INC = 1;
|
||||||
|
} else if(slot==0 || slot%10==1) {
|
||||||
|
BF_INC = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(BF_INC!=-1) beam = BF_RST | BF_INC << 1 | BF_RTN << 2 | 8;
|
||||||
/*
|
/*
|
||||||
if (slot==0 || slot==40) beam=0|8;
|
if (slot==0 || slot==40) beam=0|8;
|
||||||
if (slot==10 || slot==50) beam=1|8;
|
if (slot==10 || slot==50) beam=1|8;
|
||||||
|
|||||||
Reference in New Issue
Block a user