Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
e38b2433
Commit
e38b2433
authored
Jan 13, 2023
by
Florian Kaltenberger
Committed by
Robert Schmidt
Jan 20, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Trigger GPIO beam control only when beam changes
parent
3d03e522
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
16 deletions
+11
-16
executables/nr-ru.c
executables/nr-ru.c
+11
-16
No files found.
executables/nr-ru.c
View file @
e38b2433
...
...
@@ -779,24 +779,19 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
}
if
(
fp
->
freq_range
==
nr_FR2
)
{
// 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
;
if
(
slot
%
10
==
0
)
{
if
(
ru
->
common
.
beam_id
&&
(
ru
->
common
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
]
<
8
))
{
beam
=
ru
->
common
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
];
// currently we switch beams at the beginning of a slot and we take the beam index of the first symbol of this slot
// we only send the beam to the gpio if the beam is different from the previous slot
if
(
ru
->
common
.
beam_id
)
{
int
prev_slot
=
(
slot
-
1
+
fp
->
slots_per_frame
)
%
fp
->
slots_per_frame
;
const
uint8_t
*
beam_ids
=
ru
->
common
.
beam_id
[
0
];
int
prev_beam
=
beam_ids
[
prev_slot
*
fp
->
symbols_per_slot
];
int
beam
=
beam_ids
[
slot
*
fp
->
symbols_per_slot
];
if
(
prev_beam
!=
beam
)
{
flags_gpio
=
beam
|
TX_GPIO_CHANGE
;
// enable change of gpio
LOG_D
(
HW
,
"slot %d, beam %d
\n
"
,
slot
,
ru
->
common
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
]);
}
}
LOG_D
(
HW
,
"slot %d, beam %d
\n
"
,
slot
,
ru
->
common
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
]);
/*
if (slot==0 || slot==40) beam=0|8;
if (slot==10 || slot==50) beam=1|8;
if (slot==20 || slot==60) beam=2|8;
if (slot==30 || slot==70) beam=3|8;
*/
flags_gpio
=
beam
|
TX_GPIO_CHANGE
;
//enable change of gpio
}
const
int
flags
=
flags_burst
|
flags_gpio
<<
4
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment