Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
c8ffafd
DOCS: updated TestSignal enum divide and scale enum member definitions.
Arnius Nov 17, 2025
f648da8
DOCS: updated divide and scale enumeration options description.
Arnius Nov 18, 2025
304d598
DOCS: added doxygen tags to include missing files to documentation fi…
Arnius Nov 18, 2025
b9fd121
DOCS: Added and updated description for TRXDir and eGainTypes enumera…
Arnius Nov 18, 2025
e807c5b
DOCS: Added description for memory device option.
Arnius Nov 18, 2025
04d6584
DOCS: sorted public API enumeration list by categories.
Arnius Nov 18, 2025
f460730
DOCS: Added doxygen comments for Tx/Rx stream meta data storage classes.
Arnius Nov 18, 2025
794fffb
DOCS: Added complex header file to doxygen file tree view.
Arnius Nov 18, 2025
85ecd7b
DOCS: Updated descriptions for string manipulation functions.
Arnius Nov 18, 2025
193cb5f
DOCS: included ToString.h header into doxygen documentation file tree…
Arnius Nov 18, 2025
2e9f815
DOCS: Updated logger function descriptions.
Arnius Nov 18, 2025
7f89a5c
DOCS: Updated public API ducomentation Function, class and struct lis…
Arnius Nov 18, 2025
90f7620
DOCS: Updated logger function doxygen comments.
Arnius Nov 19, 2025
a9f818e
DOCS: Added doxygen documentation comments for Timespec class and its…
Arnius Nov 19, 2025
4d7e63d
DOCS: Added initial Timespec.h file description to doxygen documentat…
Arnius Nov 19, 2025
715e533
DOCS: Updated public API members list with timestamp management funct…
Arnius Nov 19, 2025
cba5b26
DOCS: Simplified timespec class members documentation comments.
Arnius Nov 20, 2025
b67ddf9
DOCS: fixed doxygen documentation copydoc tag warnings for low speed …
Arnius Nov 20, 2025
bee569a
DOCS: Typo fix.
Arnius Nov 20, 2025
ac4335c
DOCS: Provided extended descriptons for init and reset functions of S…
Arnius Nov 20, 2025
2c2d337
Fixed a bug that caused to read the wrong mimo channel status registe…
Arnius Nov 21, 2025
b7a3af1
DOCS: added a page that provides information about common parameters …
Arnius Nov 21, 2025
42e6c17
Replaced html h3 tags with doxygen subsection commands in API page.
Arnius Dec 17, 2025
ac09183
Updated sphinx conf.py file to ignore LIME_API macro to overcome sphi…
Arnius Dec 17, 2025
dfe88b8
DOCS: Updated doxygen documentation top level page.
Arnius Dec 17, 2025
f7e311a
DOCS: Added related subpages for doxygen documentation section in sph…
Arnius Dec 17, 2025
54c9aec
DOCS: Initial documentation update of SDRDevice and RFStream interfac…
Arnius Dec 18, 2025
b6bb446
DOCS: Added temporary doxygen config file.
Arnius Dec 18, 2025
702620a
DOCS: Temporary addition of breathe module generated rst files from d…
Arnius Dec 18, 2025
f602c35
Updated doxygen and sphinx config files to support build from docs di…
Arnius Dec 22, 2025
342c2b7
DOCS: More documentation updates to SDRDevice interface class members.
Arnius Jan 2, 2026
d9c9f8a
DOCS: Updated SDRDevice configure and init function description.
Arnius Jan 5, 2026
0b37853
DOCS: updated links to moduleIndex parameter description.
Arnius Jan 5, 2026
ebb6813
DOCS: Updated common public api parameter page.
Arnius Jan 5, 2026
ca5029c
DOCS: clarified sentence.
Arnius Jan 5, 2026
cd4cb30
DOCS: updated link to clock id enumeration.
Arnius Jan 5, 2026
b70b10d
DOCS: Updated link to channel parameter in SDRDevice file.
Arnius Jan 5, 2026
2070cd8
DOCS: Added SDRDevice GPIO control documentation.
Arnius Jan 5, 2026
7f3efde
DOCS: Removed API member namespaces in API member list for improved l…
Arnius Jan 6, 2026
029a403
DOCS: Re-categorized some API members.
Arnius Jan 6, 2026
ab70081
DOCS: linked to operation status enum in member documentation.
Arnius Jan 6, 2026
5f6eb18
DOCS: Added device GPIO control members to public API list.
Arnius Jan 6, 2026
efa136e
DOCS; Removed SDRDevice deprecated stream control functions from doxy…
Arnius Jan 6, 2026
08ebc35
DOCS: Updated brief descriptions of API header files.
Arnius Jan 6, 2026
65cf3ee
DOCS: Updated brief description of interface class files .
Arnius Jan 7, 2026
b33b2de
DOCS: Added doxygen links to stream configuration settings.
Arnius Jan 7, 2026
23a7945
DOCS: Added initial library usage example pages.
Arnius Jan 7, 2026
4366e67
DOCS: Updated doxygen mainpage.
Arnius Jan 7, 2026
395ef8e
DOCS: Updated CMake project set up and device discovery example topic…
Arnius Jan 8, 2026
9e87da5
DOCS: Finished device discovery and registration example topic page.
Arnius Jan 9, 2026
72509cf
DOCS: added references for easier navigation between example topics.
Arnius Jan 9, 2026
540bc62
DOCS: Initial update of SDR device configuration example topic.
Arnius Jan 9, 2026
715d2dc
DOCS: Updated final example in the discovery example topic page.
Arnius Jan 12, 2026
28ce228
DOCS: Added notes, corrections for the last discovery and registratio…
Arnius Jan 12, 2026
bc13216
typo fix
Arnius Jan 12, 2026
c64e051
DOCS: Reordered SDR configuration section in API function list.
Arnius Jan 12, 2026
3661ce8
DOCS: Updated generic config function section in doxygen API function…
Arnius Jan 12, 2026
acec0b9
DOCS: Moved LPF functions to generic config section in doxygen API list.
Arnius Jan 12, 2026
45d6a29
DOCS: Added initial example code for common device param config secti…
Arnius Jan 12, 2026
6a0eba1
DOCS: Updated doxygen description of EnableChannel() function for SDR…
Arnius Jan 13, 2026
5b5cab0
DOCS: Update to common configuration options section documentation.
Arnius Jan 13, 2026
e463ec4
DOCS: updated example documentation for EnableChannel() function .
Arnius Jan 14, 2026
a1d4cc6
DOCS: Added section about LO generator frequency configuration.
Arnius Jan 14, 2026
21548e2
DOCS: Added documentation section for low pass filter configuration.
Arnius Jan 14, 2026
b0fcc58
DOCS: updated sample rate set and get function descriptions.
Arnius Jan 15, 2026
c9b51f9
DOCS: Added example section for device sample rate set up.
Arnius Jan 15, 2026
f54ad9e
DOCS: Added section for antenna configuration.
Arnius Jan 15, 2026
6e34886
DOCS: Added amplifier gain configuration description.
Arnius Jan 16, 2026
e87322f
DOCS: Updated device gain modification example section.
Arnius Jan 19, 2026
9a4a290
DOCS: updated list of sections in common config sub-topic.
Arnius Jan 19, 2026
ccf13a9
DOCS: Added initial structure of quick config section sub-topic.
Arnius Jan 19, 2026
f71e10e
DOCS: Added SDR device quick config section.
Arnius Jan 20, 2026
cd525b5
DOCS: Updated SDRDevice config topic main page description.
Arnius Jan 20, 2026
d2e995a
DOCS: Removed redundand information and example code from common conf…
Arnius Jan 20, 2026
9ee4414
DOCS: Updated doxygen mainpage
Arnius Jan 20, 2026
d5aa781
DOCS: Renamed library example page to guide book page since it provid…
Arnius Jan 20, 2026
22e7ba8
DOCS: Added section about SDR device quick config from file.
Arnius Jan 20, 2026
09d7c83
DOCS: Updated warning about API namespace access.
Arnius Jan 20, 2026
b4cf9c4
DOCS: quick minor fixes
Arnius Jan 21, 2026
356cd58
DOCS: Added section about SDR device direct access to registers.
Arnius Jan 21, 2026
2f562a8
DOCS: Minor quick fixes.
Arnius Jan 22, 2026
7394578
DOCS: Added section about GFIR filter set up for SDR devices.
Arnius Jan 22, 2026
90a1d71
DOCS: Added missing page links.
Arnius Jan 22, 2026
ad69417
DOCS: Added simple gfir config example to quick config section.
Arnius Jan 22, 2026
3cc431d
DOCS: Added a local copy of doxygen config file for manual doxygen bu…
Arnius Jan 23, 2026
1d85689
DOCS: Updated device handel constructor description.
Arnius Jan 23, 2026
718a790
DOCS: fix.
Arnius Jan 23, 2026
53b1a0c
DOCS: changed doxygen addtogroup tags to page and subpage tags.
Arnius Jan 23, 2026
dd9e8f3
DOCS: removed links from with doxygen documentation pages.
Arnius Jan 23, 2026
2989a4f
DOCS: updated html header tags with doxygen section and subsection tags.
Arnius Jan 23, 2026
89847c8
DOCS: Removed doxygen tags for xml output
Arnius Jan 23, 2026
35f00b6
DOCS: Added doxygen config file with support for rst markup style ele…
Arnius Jan 23, 2026
a76e939
DOCS: Updated sphinx docs page structure for the doxygen code documen…
Arnius Jan 23, 2026
2c0494d
DOCS: Added conditional if statement to swithc between rst and doxyge…
Arnius Jan 23, 2026
80d9f74
DOCS: Removed redundand doxygen config file.
Arnius Jan 26, 2026
22980bf
DOCS: Added list of flags for doxygen config file.
Arnius Jan 26, 2026
cbfd150
DOCS: Fixes for main page.
Arnius Jan 26, 2026
018fd86
DOCS: Fixed important warning display in sphinx docs.
Arnius Jan 26, 2026
d151c5c
DOCS: dox format fixes for sphix docs output.
Arnius Jan 26, 2026
2b22fc0
DOCS: cmake setup page update.
Arnius Jan 26, 2026
d673c77
DOCS: Added alias for quick rst embeding.
Arnius Jan 26, 2026
c09920a
DOCS: Added extra alias for quick rst embeding.
Arnius Jan 26, 2026
f568de8
DOCS: Added RST support for important sections such as warnings and n…
Arnius Jan 26, 2026
744d368
DOCS: Added doxygen flag.
Arnius Jan 26, 2026
a7cbb52
DOCS: Added conditional statments to control the final doxygen output.
Arnius Jan 26, 2026
1b1c886
DOCS: doxygen format fix for wider line spacing in the final rst output.
Arnius Jan 27, 2026
922830a
DOCS: documentation fixes, clarifications.
Arnius Jan 27, 2026
919c3e3
DOCS: fix.
Arnius Jan 27, 2026
b281173
DOCS: added conditional statements to conceal incomplete documentatio…
Arnius Jan 27, 2026
0e2eb36
DOCS: updated section about module index parameter.
Arnius Jan 27, 2026
3397105
DOCS: doxygen config file update.
Arnius Jan 28, 2026
ab8acb0
DOCS: Removed redundand namespace and file pages from doxygen documen…
Arnius Jan 28, 2026
64666d8
DOCS: Separated documentation sections into files.
Arnius Jan 28, 2026
99d75bc
DOCS: minor fixes.
Arnius Jan 29, 2026
f827902
DOCS: Replaced cmake set up page with project set up page and updated…
Arnius Jan 29, 2026
940ee1c
DOCS: Updated example code snippets with header files includes and co…
Arnius Jan 29, 2026
184c99a
DOCS: fixes.
Arnius Feb 2, 2026
b59c7b4
DOCS: More fixes.
Arnius Feb 2, 2026
8f995f5
DOCS: Fixes
Arnius Feb 3, 2026
d1a2736
DOCS: doxygen conf file fixes.
Arnius Feb 3, 2026
b56836b
Merge branch 'develop' into api-docs
Arnius Feb 6, 2026
1cfeb55
Sphinx conf fix and clang formating fix
Arnius Feb 6, 2026
3b4de2f
Formating fix
Arnius Feb 6, 2026
abd5a91
Sphinx conf fix to support breathe plugin.
Arnius Feb 6, 2026
684da5c
DOCS: Added initial stream config and streaming pages for doxygen.
Arnius Feb 9, 2026
5ec6c21
DOCS: Added initial description of stream configuration set up.
Arnius Feb 9, 2026
20b7b05
DOCS: added a table with common stream parameters and initial paramet…
Arnius Feb 10, 2026
f642148
DOCS: Provided description for packet size parameter in stream config…
Arnius Feb 10, 2026
2602851
DOCS: Updated stream parameter table with the actual names of stream …
Arnius Feb 11, 2026
6ceeb35
DOCS: Refined the packet size paragraph for doxygen streaming paramet…
Arnius Feb 11, 2026
604b448
DOCS: Added section about stream batch size parameter.
Arnius Feb 11, 2026
b5c8910
DOCS: formating fixes.
Arnius Feb 12, 2026
de11d2c
DOCS: Provided short description for hintSampelRate parameter.
Arnius Feb 12, 2026
a473791
DOCS: Simplified packet size parameter description.
Arnius Feb 12, 2026
326c715
DOCS: Added a section for stream parameter channels.
Arnius Feb 12, 2026
0f33505
DOCS: Added description for stream status callback parameter.
Arnius Feb 12, 2026
e3f7c48
Minor fixes.
Arnius Feb 12, 2026
feef38a
Fix
Arnius Feb 12, 2026
9c9e166
DOCS: Added sections for stream sample size and quick toggle paramet…
Arnius Feb 12, 2026
4ca8510
DOCS: Updated stream config channels parameter description.
Arnius Feb 13, 2026
9e6115a
DOCS: Added short description for buffer size stream parameter.
Arnius Feb 13, 2026
1fc7e1c
DOCS: Fixes
Arnius Feb 13, 2026
aff45c0
DOCS: Added info about stream parameter reconfiguration.
Arnius Feb 13, 2026
37bbfa1
DOCS: Added brief timestamp type parameter description.
Arnius Feb 13, 2026
eb7b542
DOCS: Added section for retrieving sream configuration.
Arnius Feb 13, 2026
1e15c1a
DOCS: Fix
Arnius Feb 13, 2026
f148abe
DOCS: Fixes.
Arnius Feb 17, 2026
880cc8a
DOCS: Added doxygen navigation for guide book pages.
Arnius Feb 17, 2026
26e250a
DOCS: Sample size stream parameter description update.
Arnius Feb 17, 2026
47e2a84
DOCS: Updated stream creation section with important insights.
Arnius Feb 18, 2026
8901d19
DOCS: Fixes.
Arnius Feb 18, 2026
ffbf71d
DOCS: Added initial section for data streaming.
Arnius Feb 18, 2026
d174078
DOCS: added a generic streaming example and initial description of st…
Arnius Feb 19, 2026
9557f02
DOCS: added description for samples reception and transmission.
Arnius Feb 19, 2026
396b1bf
DOCS: Updated section about sample retrieval.
Arnius Feb 20, 2026
43fc33a
DOCS: Added paragraph about sample transmission.
Arnius Feb 20, 2026
73bc62b
DOCS: Heading update for streaming topic.
Arnius Feb 23, 2026
f2e0882
DCOS: works buffer section fixes.
Arnius Feb 23, 2026
be9339c
DOCS: Updated reading samples subseciotn in streaming topic.
Arnius Feb 23, 2026
18aeb04
DOCS: Updated writing data to stream section in streaming topic.
Arnius Feb 23, 2026
891bec1
DOCS: Stream callback parameter section update.
Arnius Feb 23, 2026
f31c1b2
DOCS: Updated section about stream stats.
Arnius Feb 23, 2026
f98db7e
DOCS: Added section with important notes about streaming.
Arnius Feb 23, 2026
513fbb6
DOCS: Added notes and fixes.
Arnius Feb 23, 2026
2360555
DOCS: Formatting fixes for streaming topic page.
Arnius Feb 24, 2026
353af29
DOCS: Added note for stream config topic.
Arnius Feb 24, 2026
ba55b79
DOCS: Added initial topic page about SDR device descriptor.
Arnius Feb 24, 2026
596270d
DOCS: Fixes for SDR descriptor topic.
Arnius Feb 25, 2026
099861b
DOCS: removed redundant subsections.
Arnius Feb 25, 2026
e773998
DOCS: Updated section about clock stability status retrieval.
Arnius Feb 25, 2026
265a2a8
DOCS: Updated status checks section.
Arnius Feb 25, 2026
8961b22
DOCS: Updated the example code in additional device info topic.
Arnius Feb 25, 2026
0542686
DOCS: Added notes for CGEN and SX clock lock status checks.
Arnius Feb 25, 2026
1cc852d
Fix
Arnius Feb 25, 2026
9942203
DOCS: Mentioned example code snippets in subsections of device info t…
Arnius Feb 25, 2026
7d63191
DOCS: added missing doxygen navigation.
Arnius Feb 25, 2026
bbbefb3
DOCS: Added initial page about additional frequency configuration opt…
Arnius Feb 25, 2026
06ee63f
Fix.
Arnius Feb 26, 2026
876c1a1
DOCS: Added description about channel indexes into common parameter p…
Arnius Feb 26, 2026
2f39e27
Fix
Arnius Feb 26, 2026
40c92be
DOCS: Added example code for NCO section.
Arnius Feb 26, 2026
92dbb7f
DOCS: Updated NCO set up description section.
Arnius Feb 26, 2026
51d556f
DOCS: Fixes.
Arnius Feb 26, 2026
2de3eab
DOCS: Reorganized API list sections.
Arnius Feb 27, 2026
fde2cb3
DOCS: Renamed page to NCO control and restructured page paragraphs.
Arnius Feb 27, 2026
6ac98d7
DOCS: renamed NCO page files.
Arnius Feb 27, 2026
a2fefea
DCOS: Added initial pages for test signal set up and control topic.
Arnius Feb 27, 2026
e1751ad
DOCS: Added initial description for test signal configuration topic.
Arnius Feb 27, 2026
e48c833
DOCS: fix.
Arnius Mar 2, 2026
6e31c51
DOCS: Added doxygen navigation.
Arnius Mar 2, 2026
6b20fde
DOCS: Reordered topics by relevance.
Arnius Mar 2, 2026
54b9738
DOCS: Added initial pages for device frequency configuration.
Arnius Mar 2, 2026
9475756
DOCS: Updated device clock configuration topic.
Arnius Mar 2, 2026
91ff6fc
DOCS: renamed sub-topic.
Arnius Mar 2, 2026
7ddaaa7
DOCS: renamed a sub-section of SDR device configuration function list.
Arnius Mar 2, 2026
8111afa
DOCS: Added initial pages for GPIO control sub-topic.
Arnius Mar 2, 2026
b0879ee
DOCS: Updated GPIO sub-topic.
Arnius Mar 2, 2026
f845fa0
DOCS: Updated clock config page structure.
Arnius Mar 2, 2026
b364066
DOCS: Updated description for GPIO control topic.
Arnius Mar 3, 2026
ee8b7a6
DOCS: Added GPIO control example code and description.
Arnius Mar 3, 2026
61e9ef4
DOCS: GPIO control topic fixes.
Arnius Mar 4, 2026
20fc5c7
DOCS: Added initial pages for low speed interfaces.
Arnius Mar 4, 2026
87e2dbb
DOCS: Updated low speed interface sub-topic description.
Arnius Mar 4, 2026
9839b0e
DOCS: Added initial pages for information logging topic.
Arnius Mar 4, 2026
aa6e971
DOCS: Updated information logging topic paragraphs.
Arnius Mar 4, 2026
9610a64
DOCS: Updated custom log handler section.
Arnius Mar 5, 2026
21717ca
DOCS: Added example code for custom logger.
Arnius Mar 5, 2026
eb71043
DOCS: Fixes for logging information topic.
Arnius Mar 5, 2026
8a6a17e
DOCS: Added a section about timestamp use in streams.
Arnius Mar 6, 2026
a4f0ed5
DOCS: removed LMS64C protocol reference in SPI interface section.
Arnius Mar 6, 2026
5d983b4
DOCS: Added a note for test signa;l DC I and Q components.
Arnius Mar 6, 2026
eccf8e5
DOCS: Removed SDR device clock configuratoin topic.
Arnius Mar 6, 2026
d07c2d6
DOCS: Removed redundant functions from API list.
Arnius Mar 6, 2026
24b48dc
DOCS: Updated a note in low speed interface section.
Arnius Mar 9, 2026
bc87032
Added lms channel selection for dc offset mode and test signal functi…
Arnius Mar 9, 2026
7850aa4
DOCS: Added a working test signal generator example code.
Arnius Mar 9, 2026
eafc246
DOCS: Updated test signal generator config sub-topic.
Arnius Mar 9, 2026
4af243e
DOCS: Moved timestamps from a subsection to a section.
Arnius Mar 9, 2026
4ecde98
DOCS: Added reference to timestamp sections in receive and transmit s…
Arnius Mar 9, 2026
b1e30e3
DOCS: Modified timestamp topic.
Arnius Mar 12, 2026
e5deaef
DOCS: Reciever timestamps.
Arnius Mar 13, 2026
6c97ab6
DOCS: Fixed receiver timestamp description.
Arnius Mar 14, 2026
cfd5c28
DOCS: Updated transmit timestamp section.
Arnius Mar 14, 2026
adb8245
DOCS: Updated mainpage
Arnius Mar 15, 2026
1c3ae92
DOCS: overall documentation fixes.
Arnius Mar 15, 2026
6b8611c
DOCS: Added notice for correct timestamp setting.
Arnius Mar 15, 2026
217b645
DOCS: Added an example for periodic data transfers with timestamp.
Arnius Mar 15, 2026
4cb5374
DOCS: Updated Rx timestmap exaple.
Arnius Mar 16, 2026
636d106
DOCS: Updated continuous Tx timestmap example.
Arnius Mar 16, 2026
83918f6
DOCS: Updated Tx burst with timestamps example.
Arnius Mar 16, 2026
46d6376
DOCS: Removed EndOfBurst flag description for Receiver side.
Arnius Mar 16, 2026
6ba285c
DOCS: Streaming topic section fixes.
Arnius Mar 16, 2026
a5adc76
DOCS: Updated doxygen doc pages formating to fix sphinx formating iss…
Arnius Mar 17, 2026
10fd4f6
api-stream-docs and develop branch conflict fix.
Arnius Mar 17, 2026
323d4e6
Fix
Arnius Mar 17, 2026
2df1970
DOCS: clang-format formatting fixes.
Arnius Mar 18, 2026
54228c2
DOCS: Restructured and improved streaming topic sections and paragraphs.
Arnius Mar 18, 2026
6ca76e6
DOCS: Minor fixes.
Arnius Mar 19, 2026
c391523
Squashed commit of the following:
Arnius Mar 23, 2026
6fb827d
Fixed docs generation script.
Arnius Mar 23, 2026
d97928b
DOCS: Updated doxygen build configuration for windows.
Arnius Mar 30, 2026
1266bb8
DOCS: Added docs build steps for windows platform and revised build s…
Arnius Mar 31, 2026
f0a165a
Added delete mode for doxygen converter script.
Arnius Mar 31, 2026
3950ea2
DOCS: Updated script use info for docs build
Arnius Mar 31, 2026
e540976
Updated docs generation script for windows platform.
Arnius Mar 31, 2026
9cc418d
Added comments to docs generation script.
Arnius Apr 1, 2026
a87fd31
Updated docs generation script for Linux platform.
Arnius Apr 1, 2026
dc6cb05
Updated github documentation build workflow
Arnius Apr 1, 2026
d5d108d
Removed redundant doxygen config file.
Arnius Apr 1, 2026
01c4528
Docs generation workflow fix.
Arnius Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -qq doxygen graphviz

- name: Build doxygen
run: |
cd ${{github.workspace}}/docs/doxygen
doxygen DoxygenConfigLocal.in
cd ${{github.workspace}}
sudo ./install_dependencies.sh

- name: Set up Python venv
run: |
Expand All @@ -44,7 +41,7 @@ jobs:
run: |
cd ${{github.workspace}}/docs
source venv/bin/activate
./generate_docs.sh
./generate_docs.sh rebuild

# - name: Test hyperlinks
# run: |
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ def _read_local(path: Path) -> str:
## Extensions updated also

breathe_projects = {
"Lime Suite NG" : ( "../docs/doxygen/output/xml" )
"Lime Suite NG" : ( "../build/docs/doxygen/xml" )
}

breathe_default_project = "Lime Suite NG"
Expand Down
70 changes: 58 additions & 12 deletions docs/development/documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,43 @@ Documentation generation guide
==============================

This page describes how to generate the LimeSuiteNG documentation
(the very thing you're reading right now) on Linux.
(the very thing you're reading right now) on Linux or Windows platforms.

Prerequisites
-------------

Components needed to generate the LimeSuiteNG documentation:

- `GCC`_
- `Ninja`_ (For Windows)
- `CMake`_
- `Python 3.8`_
- `Python (>=3.8)`_
- `Doxygen`_
- `Graphviz`_

Setup
-----

To set up the environment for the documentation generation, you will need to set up a `Python virtual environment (venv)`_.

To set up the environment, run these commands:
To set up the environment on Linux, run these commands:

.. code-block:: bash

python3.8 -m venv venv # Create the virtual environment directory
python -m venv venv # Create the virtual environment directory
source venv/bin/activate # Activate the virtual environment
pip install -r requirements.txt # Install all the required dependencies for the generation

To set up the environment on Windows, run these commands:

.. code-block:: doscon

python -m venv venv # Create the virtual environment directory
venv\Scripts\activate # Activate the virtual environment
pip install -r requirements.txt # Install all the required dependencies for the generation

.. note::
One should run these commands in the ``docs`` directory.
One should run these commands in the ``docs`` directory of cloned repository.

Generation
----------
Expand All @@ -37,23 +47,53 @@ In the ``docs`` directory, located in the root directory of the repository, whil

.. code-block:: bash

cmake -S .. -B ../build # Generate the make file for the suite.
make --no-print-directory -C ../build doc # Build Doxygen documentation
breathe-apidoc --generate class --members --force --output-dir apidoc ../build/xml/ # Generate the class API pages
python add_undoc_members.py # Add a flag to add all undocumented members into the page
make html # Generate the documentation itself
cmake -S .. -B ../build # 1. Generate the configuration files for the suite. For Windows include: -G Ninja
cmake --build ../build -- doxygen # 2. Run only the Doxygen target to build doxygen

# 3. Generate reference pages for API
breathe-apidoc --generate class --members --force --output-dir doxygen/api_member_list ../build/docs/doxygen/xml/
breathe-apidoc --generate file --force --output-dir doxygen/api_member_list ../build/docs/doxygen/xml/
breathe-apidoc --generate struct --members --force --output-dir doxygen/api_member_list ../build/docs/doxygen/xml/

# 4. Remove redundant copies of the actual manual pages
rm doxygen/api_member_list/file/*dox.rst # use `del` instead of `rm` on Windows

# 5. Regenerate .rst manual pages from .dox manual pages
python dox_converter.py

# 6. Generate the final documentation
make html

.. tip::

When running documentation build commands on Windows, do not forget to swap all instances of forward slash ``/`` with backslash ``\``.

.. important::
These commands or the script must be run in the venv, otherwise it will fail.

For ease of convenience, there is also a ``generate_docs.sh`` script located in the ``docs`` directory.
For ease of convenience, ``docs`` directory contains scripts that automate the documentation build process for each platform.
On Linux, run ``generate_docs.sh`` script. On Windows, run ``generate_docs.bat`` script. Scripts support additional command line arguments:

- ``clean`` - Deletes all documentation build artifacts.
- ``rebuild`` - Runs the documentation build steps.

To simultaneously clean and rebuild the documentation, pass the arguments in the following order - ``generate_docs.sh clean rebuild``.
Running script without any command line arguments, will trigger only the sphinx documentation build tool.

.. note::

Scripts ``generate_docs.sh`` and ``generate_docs.bat`` must be run from ``docs`` directory.

After a successful generation the resulting documentation pages will be located in
``docs/_build/html`` directory.

Link checking
-------------

.. note::

For Linux only.

To check whether all URLs in the documentation are valid, there exists a ``make`` target to automatically check the links:

.. code-block:: bash
Expand All @@ -69,6 +109,10 @@ Any broken links will be shown in red and also listed in the ``_build/linkcheck/
Docker
------

.. note::

For Linux only.

There also exists a Docker file to generate the documentation.
To generate this documentation using Docker, in the root directory of the repository run:

Expand All @@ -85,8 +129,10 @@ For more information about how to set up and write the documentation,
check out the `MyriadRF Handbook`_.

.. _`GCC`: https://gcc.gnu.org/
.. _`Ninja`: https://ninja-build.org/
.. _`CMake`: https://cmake.org/
.. _`Python 3.8`: https://www.python.org/downloads/release/python-3818/
.. _`Python (>=3.8)`: https://www.python.org/downloads/release/python-3818/
.. _`Doxygen`: https://www.doxygen.nl/
.. _`Graphviz`: https://graphviz.org/
.. _`Python virtual environment (venv)`: https://docs.python.org/3.8/library/venv.html
.. _`MyriadRF Handbook`: https://handbook.myriadrf.org/
137 changes: 137 additions & 0 deletions docs/dox_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
"""
Doxygen to Sphinx page converter
================================

Python module performs quick auto parsing of the regular doxygen pages (with @page tag) and generates
the equivalent sphinx page files (.rst files) with the required Sphinx Breathe plugin directives. This
module can be run in reverse mode to delete all the generated manual pages (.rst files). See supported
flags for more info.

Usage:
``python dox_converter.py [override-root-path] [optional-flags]``

This module will auto scan each subdirectory starting from the root directory (by default that is ``./doxygen``) and will
generate .rst files equivalent to all the .dox files. To override the root directory, pass the root directory as a command
line argument when calling the module.

Supported flags:

* `--del` - Runs dox_converter in reverse. Deletes all the .rst manual pages that were converted from doxygen manual pages.

This module does not support the auto generation of index files used to organize navigation between pages.
Users are responsible for setting up the correct index tree. Module will ignore files that have the following
names: ``mainpage.dox, index.dox``. Therefore, it is recommended to use these file names for doxygen index pages.
If index page naming is ignored, the module can produce undesired results.

"""

from pathlib import Path
import sys

reverse = False # Dox converter in reverse mode: deletes all of the generated manual pages in .rst format.
root_path = Path("./doxygen/") # Default root path
dox_suffix = ".dox" # Doxygen suffix indentifier
rst_suffix = ".rst" # Sphinx file suffix indentifier
dir_tree = [] # The directory tree view from the root path

index_indicators = ["mainpage", "index"] # File names that indicate index file with toc tree
ignore_dirs = ["output", "api_member_list", "images"] # Directories to ignore


def update_dir_tree(start_dir, ignore_list = ignore_dirs):
"""
Creates a directory tree starting from the root directory.

Starting from the start_dir, recursively scans through the directories and adds
them to the tree view, which is stored in dir_tree list.

"""
dir_tree.append(start_dir)
for dir_item in start_dir.iterdir():
if dir_item.is_dir():

# skip subdir if it is in ignore list
if dir_item.name in ignore_list:
continue
update_dir_tree(dir_item)
else:
continue

def get_files(start_dir, suffix):
"""Gets the list of all files in specified diretory."""

files = []
for dir_item in start_dir.iterdir():
if dir_item.is_file() and dir_item.suffix == suffix:
files.append(dir_item)
else:
continue

return files

def convert_page(file):
"""Parses doxygen page title line elements and applies rst page template with breathe directives."""

rst_path = file.with_suffix(".rst")
rst = rst_path.open("w")
with file.open("r") as dox:
dox.readline()
header = dox.readline()
header = header.strip()
header_elements = header.split(maxsplit=3)
rst.write(f"{header_elements[3]}\n{"=" * len(header_elements[3])}\n\n")
rst.write(f".. doxygenpage:: {header_elements[2]}\n\t:content-only:")
rst.close()

def convert_pages(files):
"""Generates sphinx compatible rst manual pages with breathe directives from doxygen pages."""

for file in files:
if file.stem not in index_indicators:
convert_page(file)

def remove_pages(files):
"""Removes sphinx compatible rst manual pages."""

for file in files:
if file.stem not in index_indicators:
file.unlink()

def print_tree():
"""Prints directory tree with contents of each directory."""

for dir in dir_tree:
print(f"{dir} contents:")
for item in dir.iterdir():
print(f"\t{item.name}")
print("\n")


########################################
# Script start
########################################

if len(sys.argv) > 1:
for arg in sys.argv[1:]:
if arg == "--del":
reverse = True
else:
root_path = Path(f"{arg}")
print(f"Doxygen page converter: Switching to new root path - {arg}")

update_dir_tree(root_path)
# print_tree()

# Delete generated rst manual pages
if reverse:
for dir in dir_tree:
files = get_files(dir, rst_suffix)
remove_pages(files)

# Generate regular rst pages from regular doxygen pages
else:
for dir in dir_tree:
files = get_files(dir, dox_suffix)
convert_pages(files)

# print_tree()
22 changes: 17 additions & 5 deletions docs/doxygen/DoxygenConfig.in
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
# Project related configuration options
#---------------------------------------------------------------------------

# For project flags, go to ENABALED_SECTIONS tag.

# This tag specifies the encoding used for all characters in the configuration
# file that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
Expand Down Expand Up @@ -269,7 +271,8 @@ TAB_SIZE = 4
# commands \{ and \} for these it is advised to use the version @{ and @} or use
# a double escape (\\{ and \\})

ALIASES =
ALIASES = "rstVerbatim=@verbatim embed:rst:leading-asterisk"
ALIASES += "embedRstVerbatim{1}=@verbatim embed:rst:leading-asterisk \1 ^^ @endverbatim"

# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
Expand Down Expand Up @@ -717,8 +720,16 @@ GENERATE_DEPRECATEDLIST= YES
# The ENABLED_SECTIONS tag can be used to enable conditional documentation
# sections, marked by \if <section_label> ... \endif and \cond <section_label>
# ... \endcond blocks.
# List of custom Doxygen configuration flags:
# RST_SUPPORT - enable swaping of doxygen sections and special commands with RST markup style elements. This flag is used for compatibility with breathe plugin, which translates doxygen output
# to RST markup style when runing Sphinx documentation build. Use this only when the final doxygen output is included in sphinx documentation build.
# DEVELOP - enables the output of incomplete doxygen sections and other development marks in the final doxygen output. Remove this flag to hide incomplete doxygen sections or other
# development marks in the final doxygen output.
# DOX_NAV - enable page references for navigation purposes in the final doxygen output.

ENABLED_SECTIONS =
ENABLED_SECTIONS = RST_SUPPORT
#ENABLED_SECTIONS += DEVELOP
#ENABLED_SECTIONS += DOX_NAV

# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
# initial value of a variable or macro / define can have for it to appear in the
Expand Down Expand Up @@ -868,6 +879,7 @@ WARN_LOGFILE =
# Specified INPUT path are relative to docs/doxygen directory.

INPUT = @PROJECT_SOURCE_DIR@/src/include @PROJECT_SOURCE_DIR@/src/comms/SPI/ISPI.h @PROJECT_SOURCE_DIR@/src/comms/II2C.h
INPUT += @PROJECT_SOURCE_DIR@/docs/doxygen

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -907,11 +919,11 @@ FILE_PATTERNS = *.c \
*.hpp \
*.h++ \
*.inc \
*.dox
#*.m \
#*.markdown \
# *.md \
#*.mm \
#*.dox

# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
Expand Down Expand Up @@ -1191,7 +1203,7 @@ IGNORE_PREFIX =
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.

GENERATE_HTML = YES
GENERATE_HTML = NO

# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
Expand Down Expand Up @@ -2072,7 +2084,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.

GENERATE_XML = NO
GENERATE_XML = YES

# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
Expand Down
Loading
Loading