diff --git a/.github/workflows/build_documentation.yaml b/.github/workflows/build_documentation.yaml index c834db0..9e5dbe6 100644 --- a/.github/workflows/build_documentation.yaml +++ b/.github/workflows/build_documentation.yaml @@ -33,7 +33,9 @@ jobs: name: Build documentation uses: EnviroDIY/workflows/.github/workflows/build_documentation.yaml@main with: + use_latex: false use_graphviz: false publish: ${{ (github.event_name == 'release' && github.event.action == 'published') || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish == 'true')}} rebuild_cache_number: 1 + doxygen_version: 1.14.0 secrets: inherit diff --git a/.github/workflows/changelog_reminder.yaml b/.github/workflows/changelog_reminder.yaml index cf35380..12eb731 100644 --- a/.github/workflows/changelog_reminder.yaml +++ b/.github/workflows/changelog_reminder.yaml @@ -5,7 +5,7 @@ jobs: name: Changelog Reminder runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token diff --git a/.github/workflows/prepare_release.yaml b/.github/workflows/prepare_release.yaml index 6bcf69a..05f682a 100644 --- a/.github/workflows/prepare_release.yaml +++ b/.github/workflows/prepare_release.yaml @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Wait on Workflow - uses: ArcticLampyrid/action-wait-for-workflow@v1.2.0 + uses: ArcticLampyrid/action-wait-for-workflow@v1.3.0 with: workflow: ${{ matrix.req_workflow }} sha: ${{ github.sha || github.event.pull_request.head.sha || github.event.pull_request.head.ref }} # optional diff --git a/.gitignore b/.gitignore index 07b26de..af269a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Windows image file caches Thumbs.db ehthumbs.db +~* # Folder config file Desktop.ini @@ -17,9 +18,6 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -# Microsoft Office temp files -~$* - # ========================= # Operating System Files # ========================= @@ -49,117 +47,76 @@ Network Trash Folder Temporary Items .apdisk +# Python +__pycache__/ + # PyCharm .idea/ -# Python -__pycache__/ +# Atom +.atomrc.cson -# Atom / PlatformIO -.pio -.pioenvs -.piolibdeps +# PlatformIO +.pio/* .clang_complete .gcc-flags.json -lib/readme.txt +lib/* +include/* +boards/* /platformio.ini -tests/* - -# Prerequisites -*.d - -# Compiled Object files -*.slo -*.lo -*.o -*.obj - -# Precompiled Headers -*.gch -*.pch - -# Compiled Dynamic libraries -*.so -*.dylib -*.dll - -# Fortran module files -*.mod -*.smod - -# Compiled Static libraries -*.lai -*.la -*.a -*.lib - -# Executables -*.exe -*.out -*.app +.sconsign.dblite # VSCode +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json .vscode - - -# Ignore list for Eagle, a PCB layout tool - -# Backup files -*.s#? -*.b#? -*.l#? -*.b$? -*.s$? -*.l$? - -# Eagle project file -# It contains a serial number and references to the file structure -# on your computer. -# comment the following line if you want to have your project file included. -eagle.epf - -# Autorouter files -*.pro -*.job - -# CAM files -*.$$$ -*.cmp -*.ly2 -*.l15 -*.sol -*.plc -*.stc -*.sts -*.crc -*.crs - -*.dri -*.drl -*.gpi -*.pls -*.ger -*.xln - -*.drd -*.drd.* - -*.s#* -*.b#* - -*.info - -*.eps - -# file locks introduced since 7.x -*.lck .history -compile_commands.json -# Other Stuff -pioScripts +# Certificates +*.pem +*.pem.crt +*.pem.cert +*.pem.key +*.crt +*.cert +*.key + +# Other +archive/ +compile_tests/ +logger_test*/ +ex_one_offs/* runDoxygen.bat -generateKeywords.bat +docs/examples/* +docs/examples.dox_x +platformio_extra_envs.ini +src/sensors/table.md +cache output_*.log -sync.ffs_db +clang_format_all.bat +arduino_lint.md +arduino_lint.json +**/home/arduino/* +compile_results.md +arduino_cli_log.log +continuous_integration/arduino_cli_local.yaml +continuous_integration/platformio_ci_local.ini +continuous_integration/arduino_cli_cmd.bat +continuous_integration_artifacts/* +arduino_cli.log +**/sensor_tests/* docs/Doxyfile.bak +generateKeywords.bat +pio_common_libdeps.ini +compile_commands.json +sync.ffs_db +.github/workflows/compile_arduino_cli.yaml +.github/workflows/compile_platformio.yaml +.github/workflows/determine_library_source.yaml +run_mcss.bat +docs/customdoxygen.css +docs/footer.html +docs/header.html +installWorkingDependencies.bat +clang-format-all.py diff --git a/ChangeLog.md b/ChangeLog.md index 18b878a..c48639c 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -20,6 +20,23 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm *** +## [0.1.2] + +### Changed + +- Updated doxygen formatting +- Bumped SensorModbusMaster dependency + +### Added + +- Added code spell configurations + +### Fixed + +- Fixed spelling errors + +*** + ## [0.1.1] ### Changed @@ -34,6 +51,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Added keywords.txt for Arduino IDE *** + ### Fixed *** @@ -44,5 +62,7 @@ Initial release *** -[Unreleased]: https://github.com/EnviroDIY/GroPointModbus/compare/v0.1.1...HEAD +[Unreleased]: https://github.com/EnviroDIY/GroPointModbus/compare/v0.1.2...HEAD +[0.1.2]: https://github.com/EnviroDIY/GroPointModbus/releases/tag/v0.1.2 +[0.1.1]: https://github.com/EnviroDIY/GroPointModbus/releases/tag/v0.1.1 [0.1.0]: https://github.com/EnviroDIY/GroPointModbus/releases/tag/v0.1.0 diff --git a/README.md b/README.md index 335575c..d651c8b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ -# GroPointModbus +# GroPointModbus A library to use an Arduino as a master to control and communicate via modbus with GroPoint soil moisture sensors. Depends on the EnviroDIY/SensorModbusMaster library. + + + + + + + +- [GroPointModbus](#gropointmodbus) + - [Library installation](#library-installation) + + + +## Library installation + +This library is available through both the Arduino and PlatformIO library registries. +[Here is the PlatformIO registry page.](https://registry.platformio.org/libraries/envirodiy/GroPointModbus) +Use the Arduino IDE to find the library in that registry. +The build and ingest logs for this library into the Arduino library registry are available [here](https://downloads.arduino.cc/libraries/logs/github.com/EnviroDIY/GroPointModbus/). diff --git a/VERSION b/VERSION index 17e51c3..d917d3e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.1 +0.1.2 diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..82b58fb --- /dev/null +++ b/cspell.json @@ -0,0 +1,80 @@ +{ + "language": "en-US", + "ignoreRegExpList": [ + "header-defines", + "doxygen-commands", + "doxygen-commands-custom", + "example_tags" + ], + "patterns": [ + { + "name": "header-defines", + "pattern": "/SRC_[A-Z0-9_]+_H_/g" + }, + { + "name": "latex-command", + "pattern": "/\\\\\\\\[a-z]+/g" + }, + { + "name": "javadoc-command", + "pattern": "/@[a-z_]+/g" + }, + { + "name": "doxygen-commands", + "pattern": ["latex-command", "javadoc-command"] + }, + { + "name": "hash-reference", + "pattern": "/#[a-z0-9_]+/g" + }, + { + "name": "ref-command", + "pattern": "/@ref\\s[a-z0-9_]+/g" + }, + { + "name": "anchor-command", + "pattern": "/@anchor\\s[a-z0-9_]+/g" + }, + { + "name": "group-command", + "pattern": "/@(?:def|in)group\\s[a-z0-9_]+/g" + }, + { + "name": "section-command", + "pattern": "/@(?:sub)*section\\s[a-z0-9_]+/g" + }, + { + "name": "doxygen-commands-custom", + "pattern": [ + "hash-reference", + "ref-command", + "anchor-command", + "group-command", + "section-command" + ] + } + ], + "words": [ + "Aufdenkampe", + "Damiano", + "datasheet", + "DERE", + "doxyfile", + "enviro_diy", + "EnviroDIY", + "Geleskie", + "GPLP", + "GPLPX", + "Gropoint", + "microsiemens", + "millisiemens", + "Modbus", + "SRGD", + "SRGDamia1", + "SWSERIAL", + "USBVIRTUAL", + "YosemiTech" + ], + "ignoreWords": [], + "ignorePaths": ["platformio.ini", "*doxyfile*", ".vscode"] +} diff --git a/docs/Doxyfile b/docs/Doxyfile index a62ec56..b10fdf4 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -1,7 +1,7 @@ -# Doxyfile 1.11.0 +# Doxyfile 1.14.0 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. @@ -15,10 +15,10 @@ # # Note: # -# Use doxygen to compare the used configuration file with the template +# Use Doxygen to compare the used configuration file with the template # configuration file: # doxygen -x [configFile] -# Use doxygen to compare the used configuration file with the template +# Use Doxygen to compare the used configuration file with the template # configuration file without replacing the environment variables or CMake type # replacement variables: # doxygen -x_noenv [configFile] @@ -48,10 +48,10 @@ PROJECT_NAME = GroPointModbus # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.1.1 +PROJECT_NUMBER = 0.1.2 # Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a +# for a project that appears at the top of each page and should give viewers a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "An Arduino library for communication with GroPoint soil moisture sensors via Modbus." @@ -71,16 +71,16 @@ PROJECT_ICON = enviroDIY_Favicon.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If +# entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = ../../GroPointModbus_Doxygen -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 # sub-directories (in 2 levels) under the output directory of each output format # and will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes +# option can be useful when feeding Doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise cause # performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to # control the number of sub-directories. # The default value is: NO. @@ -98,7 +98,7 @@ CREATE_SUBDIRS = NO CREATE_SUBDIRS_LEVEL = 8 -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. @@ -107,7 +107,7 @@ CREATE_SUBDIRS_LEVEL = 8 ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this +# documentation generated by Doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, # Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English @@ -121,14 +121,14 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES, Doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -159,13 +159,13 @@ ABBREVIATE_BRIEF = "The $name class" \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief +# Doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. @@ -173,7 +173,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -183,11 +183,11 @@ FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to +# If left blank the directory from which Doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. +# will be relative from the directory where Doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = .. @@ -201,41 +201,42 @@ STRIP_FROM_PATH = .. STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't +# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but +# less readable) file names. This can be useful if your file system doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the +# first line (until the first dot, question mark or exclamation mark) of a +# Javadoc-style comment as the brief description. If set to NO, the Javadoc- +# style will behave just like regular Qt-style comments (thus requiring an +# explicit @brief command for a brief description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# If the JAVADOC_BANNER tag is set to YES then Doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. +# interpreted by Doxygen. # The default value is: NO. JAVADOC_BANNER = NO -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will interpret the first +# line (until the first dot, question mark or exclamation mark) of a Qt-style +# comment as the brief description. If set to NO, the Qt-style will behave just +# like regular Qt-style comments (thus requiring an explicit \brief command for +# a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this @@ -247,10 +248,10 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = YES -# By default Python docstrings are displayed as preformatted text and doxygen's +# By default Python docstrings are displayed as preformatted text and Doxygen's # special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. +# Doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as Doxygen documentation. # The default value is: YES. PYTHON_DOCSTRING = YES @@ -261,7 +262,7 @@ PYTHON_DOCSTRING = YES INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. @@ -305,7 +306,6 @@ ALIASES = "license=@par License^^" \ "m_since{2}=@since @m_class{m-label m-success m-flat} @ref changelog-\1-\2 \"since v\1.\2\"" \ "m_deprecated_since{3}=@since deprecated in v\1.\2.\3 @deprecated" \ "menulink{1}=[menu a la carte](@ref menu_walk_\1)" \ - "menusnip{1}=@snippet{lineno} menu_a_la_carte.ino \1 ^^ ^^" \ "m_innerpage{1}=@xmlonly @endxmlonly" # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources @@ -348,30 +348,30 @@ OPTIMIZE_OUTPUT_SLICE = NO # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, # VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files +# default for Fortran type files). For instance to make Doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. When specifying no_extension you should add +# the files are not read by Doxygen. When specifying no_extension you should add # * to the FILE_PATTERNS. # # Note see also the list of default file extension mappings. EXTENSION_MAPPING = ino=C++ -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# The output of markdown processing is further processed by Doxygen, so you can +# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. @@ -397,17 +397,26 @@ TOC_INCLUDE_HEADINGS = 10 MARKDOWN_ID_STYLE = GITHUB -# When enabled doxygen tries to link words that correspond to documented +# When enabled Doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. +# globally by setting AUTOLINK_SUPPORT to NO. Words listed in the +# AUTOLINK_IGNORE_WORDS tag are excluded from automatic linking. # The default value is: YES. AUTOLINK_SUPPORT = YES +# This tag specifies a list of words that, when matching the start of a word in +# the documentation, will suppress auto links generation, if it is enabled via +# AUTOLINK_SUPPORT. This list does not affect links explicitly created using \# +# or the \link or commands. +# This tag requires that the tag AUTOLINK_SUPPORT is set to YES. + +AUTOLINK_IGNORE_WORDS = + # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and +# tag to YES in order to let Doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also makes the inheritance and # collaboration diagrams that involve STL classes more complete and accurate. @@ -431,7 +440,7 @@ SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. +# Doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. @@ -440,7 +449,7 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES then Doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. @@ -498,18 +507,18 @@ TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest +# symbols. At the end of a run Doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of +# The NUM_PROC_THREADS specifies the number of threads Doxygen is allowed to use +# during processing. When set to 0 Doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple @@ -533,7 +542,7 @@ TIMESTAMP = YES # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -599,7 +608,7 @@ EXTRACT_ANON_NSPACES = NO RESOLVE_UNNAMED_PARAMS = YES -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. @@ -607,7 +616,7 @@ RESOLVE_UNNAMED_PARAMS = YES HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # will also hide undocumented C++ concepts if enabled. This option has no effect @@ -616,14 +625,22 @@ HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# If the HIDE_UNDOC_NAMESPACES tag is set to YES, Doxygen will hide all +# undocumented namespaces that are normally visible in the namespace hierarchy. +# If set to NO, these namespaces will be included in the various overviews. This +# option has no effect if EXTRACT_ALL is enabled. +# The default value is: YES. + +HIDE_UNDOC_NAMESPACES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -637,7 +654,7 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be # able to match the capabilities of the underlying filesystem. In case the # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly @@ -646,7 +663,7 @@ INTERNAL_DOCS = NO # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On -# Windows (including Cygwin) and MacOS, users should typically set this option +# Windows (including Cygwin) and macOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. # Possible values are: SYSTEM, NO and YES. @@ -654,14 +671,14 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = NO -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. @@ -674,7 +691,7 @@ HIDE_COMPOUND_REFERENCE= NO SHOW_HEADERFILE = YES -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -687,7 +704,7 @@ SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = YES -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -699,14 +716,14 @@ FORCE_LOCAL_INCLUDES = NO INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = NO -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. @@ -714,7 +731,7 @@ SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. @@ -726,7 +743,7 @@ SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. @@ -743,11 +760,11 @@ SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = YES -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. @@ -817,25 +834,25 @@ SHOW_FILES = YES SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from +# Doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file +# by Doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated +# by Doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can +# that represents Doxygen's defaults, run Doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. See also section "Changing the # layout of pages" for information. # -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = DoxygenLayout.xml @@ -850,19 +867,35 @@ LAYOUT_FILE = DoxygenLayout.xml CITE_BIB_FILES = +# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH +# environment variable) so that external tools such as latex and gs can be +# found. +# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the +# path already specified by the PATH variable, and are added in the order +# specified. +# Note: This option is particularly useful for macOS version 14 (Sonoma) and +# higher, when running Doxygen from Doxywizard, because in this case any user- +# defined changes to the PATH are ignored. A typical example on macOS is to set +# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin +# together with the standard path, the full search path used by doxygen when +# launching external tools will then become +# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +EXTERNAL_TOOL_PATH = + #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the +# standard output by Doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -870,14 +903,14 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for # potential errors in the documentation, such as documenting some parameters in # a documented function twice, or documenting parameters that don't exist or # using markup commands wrongly. @@ -885,8 +918,8 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES -# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete -# function parameter documentation. If set to NO, doxygen will accept that some +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some # parameters have no documentation without warning. # The default value is: YES. @@ -894,7 +927,7 @@ WARN_IF_INCOMPLETE_DOC = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong parameter +# value. If set to NO, Doxygen will only warn about wrong parameter # documentation, but not about the absence of documentation. If EXTRACT_ALL is # set to YES then this flag will automatically be disabled. See also # WARN_IF_INCOMPLETE_DOC @@ -902,20 +935,28 @@ WARN_IF_INCOMPLETE_DOC = YES WARN_NO_PARAMDOC = YES -# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about -# undocumented enumeration values. If set to NO, doxygen will accept +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept # undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: NO. WARN_IF_UNDOC_ENUM_VAL = YES -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# If WARN_LAYOUT_FILE option is set to YES, Doxygen will warn about issues found +# while parsing the user defined layout file, such as missing or wrong elements. +# See also LAYOUT_FILE for details. If set to NO, problems with the layout file +# will be suppressed. +# The default value is: YES. + +WARN_LAYOUT_FILE = YES + +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves -# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not # write the warning messages in between other messages but write them at the end # of a run, in case a WARN_LOGFILE is defined the warning messages will be # besides being in the defined file also be shown at the end of a run, unless @@ -926,7 +967,7 @@ WARN_IF_UNDOC_ENUM_VAL = YES WARN_AS_ERROR = FAIL_ON_WARNINGS_PRINT -# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will @@ -939,7 +980,7 @@ WARN_FORMAT = "$file:$line: $text" # In the $text part of the WARN_FORMAT command it is possible that a reference # to a more specific place is given. To make it easier to jump to this place -# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# (outside of Doxygen) the user can define a custom "cut" / "paste" string. # Example: # WARN_LINE_FORMAT = "'vi $file +$line'" # See also: WARN_FORMAT @@ -969,7 +1010,7 @@ WARN_LOGFILE = output_doxygen.log INPUT = .. # 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 +# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. @@ -979,10 +1020,10 @@ INPUT = .. INPUT_ENCODING = UTF-8 # This tag can be used to specify the character encoding of the source files -# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# that Doxygen parses. The INPUT_FILE_ENCODING tag can be used to specify # character encoding on a per file pattern basis. Doxygen will compare the file # name with each pattern and apply the encoding instead of the default -# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# INPUT_ENCODING if there is a match. The character encodings are a list of the # form: pattern=encoding (like *.php=ISO-8859-1). # See also: INPUT_ENCODING for further information on supported encodings. @@ -994,16 +1035,16 @@ INPUT_FILE_ENCODING = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. +# read by Doxygen. # # Note the list of default checked file patterns might differ from the list of # default file extension mappings. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, # *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, -# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, -# *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to -# be provided as doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, +# *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be +# provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ @@ -1017,14 +1058,14 @@ FILE_PATTERNS = *.c \ *.hpp \ *.h++ \ *.tpp \ - *.ino \ *.inc \ *.m \ *.markdown \ *.md \ *.mm \ *.dox \ - *.doc + *.doc \ + *.txt # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -1036,10 +1077,15 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # -# Note that relative paths are relative to the directory from which doxygen is +# Note that relative paths are relative to the directory from which Doxygen is # run. -EXCLUDE = +EXCLUDE = ../src/ReadMe.md \ + ../tests \ + ../lib \ + ../boards \ + ../variants \ + ../continuous_integration_artifacts # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -1098,7 +1144,7 @@ EXAMPLE_RECURSIVE = YES IMAGE_PATH = -# The INPUT_FILTER tag can be used to specify a program that doxygen should +# The INPUT_FILTER tag can be used to specify a program that Doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # @@ -1113,14 +1159,14 @@ IMAGE_PATH = # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # -# Note that doxygen will use the data processed and written to standard output +# Note that Doxygen will use the data processed and written to standard output # for further processing, therefore nothing else, like debug statements or used # commands (so in case of a Windows batch file always use @echo OFF), should be # written to standard output. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. INPUT_FILTER = @@ -1133,9 +1179,9 @@ INPUT_FILTER = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. -FILTER_PATTERNS = "*.md=python markdown_prefilter.py" +FILTER_PATTERNS = "*.md=python markdown_prefilter.py --repo GroPointModbus --input_file " # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for @@ -1155,10 +1201,19 @@ FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. +# and want to reuse the introduction page also for the Doxygen output. USE_MDFILE_AS_MAINPAGE = +# If the IMPLICIT_DIR_DOCS tag is set to YES, any README.md file found in sub- +# directories of the project's root, is used as the documentation for that sub- +# directory, except when the README.md starts with a \dir, \page or \mainpage +# command. If set to NO, the README.md file needs to start with an explicit \dir +# command in order to be used as directory documentation. +# The default value is: YES. + +IMPLICIT_DIR_DOCS = NO + # The Fortran standard specifies that for fixed formatted Fortran code all # characters from position 72 are to be considered as comment. A common # extension is to allow longer lines before the automatic comment starts. The @@ -1188,7 +1243,7 @@ SOURCE_BROWSER = YES INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. @@ -1226,7 +1281,7 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# point to the HTML generated by the htags(1) tool instead of Doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. @@ -1240,14 +1295,14 @@ SOURCE_TOOLTIPS = YES # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # -# The result: instead of the source browser generated by doxygen, the links to +# The result: instead of the source browser generated by Doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. @@ -1255,19 +1310,19 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# If the CLANG_ASSISTED_PARSING tag is set to YES then Doxygen will use the # clang parser (see: # http://clang.llvm.org/) for more accurate parsing at the cost of reduced # performance. This can be particularly helpful with template rich C++ code for -# which doxygen's built-in parser lacks the necessary type information. -# Note: The availability of this option depends on whether or not doxygen was +# which Doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS -# tag is set to YES then doxygen will add the directory of each input to the +# tag is set to YES then Doxygen will add the directory of each input to the # include path. # The default value is: YES. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. @@ -1276,7 +1331,7 @@ CLANG_ADD_INC_PATHS = YES # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories +# the include paths will already be set by Doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. @@ -1290,7 +1345,7 @@ CLANG_OPTIONS = # specifying the -p option to a clang tool, such as clang-check. These options # will then be passed to the parser. Any options specified with CLANG_OPTIONS # will be added as well. -# Note: The availability of this option depends on whether or not doxygen was +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. CLANG_DATABASE_PATH = @@ -1319,7 +1374,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1340,40 +1395,40 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a +# each generated HTML page. If the tag is left blank Doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. +# that Doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally +# for information on how to generate the default header that Doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description +# default header when upgrading to a newer version of Doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard +# generated HTML page. If the tag is left blank Doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. +# that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. +# the HTML output. If left blank Doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. +# sheet that Doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. @@ -1383,7 +1438,7 @@ HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. +# created by Doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. @@ -1478,7 +1533,7 @@ HTML_DYNAMIC_SECTIONS = YES HTML_CODE_FOLDING = YES -# If the HTML_COPY_CLIPBOARD tag is set to YES then doxygen will show an icon in +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in # the top right corner of code and text fragments that allows the user to copy # its content to the clipboard. Note this only works if supported by the browser # and the web page is served via a secure context (see: @@ -1491,7 +1546,7 @@ HTML_COPY_CLIPBOARD = YES # Doxygen stores a couple of settings persistently in the browser (via e.g. # cookies). By default these settings apply to all HTML pages generated by -# doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store # the settings under a project specific key, such that the user preferences will # be stored separately. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1515,7 +1570,7 @@ HTML_INDEX_NUM_ENTRIES = 500 # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To -# create a documentation set, doxygen will generate a Makefile in the HTML +# create a documentation set, Doxygen will generate a Makefile in the HTML # output directory. Running make will produce the docset in that directory and # running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at @@ -1563,18 +1618,18 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # on Windows. In the beginning of 2021 Microsoft took the original page, with -# a.o. the download links, offline the HTML help workshop was already many years -# in maintenance mode). You can download the HTML help workshop from the web -# archives at Installation executable (see: +# a.o. the download links, offline (the HTML help workshop was already many +# years in maintenance mode). You can download the HTML help workshop from the +# web archives at Installation executable (see: # http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo # ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for @@ -1594,7 +1649,7 @@ CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. +# Doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1696,7 +1751,7 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location (absolute path -# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to # run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1741,29 +1796,38 @@ DISABLE_INDEX = NO # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine tune the look of the index (see "Fine-tuning the output"). As an -# example, the default style sheet generated by doxygen has an example that +# example, the default style sheet generated by Doxygen has an example that # shows how to put an image at the root of the tree instead of the PROJECT_NAME. -# Since the tree basically has the same information as the tab index, you could -# consider setting DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. +# Since the tree basically has more details information than the tab index, you +# could consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = YES +GENERATE_TREEVIEW = NO -# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the -# FULL_SIDEBAR option determines if the side bar is limited to only the treeview -# area (value NO) or if it should extend to the full height of the window (value -# YES). Setting this to YES gives a layout similar to -# https://docs.readthedocs.io with more room for contents, but less room for the -# project logo, title, and description. If either GENERATE_TREEVIEW or -# DISABLE_INDEX is set to NO, this option has no effect. +# When GENERATE_TREEVIEW is set to YES, the PAGE_OUTLINE_PANEL option determines +# if an additional navigation panel is shown at the right hand side of the +# screen, displaying an outline of the contents of the main page, similar to +# e.g. https://developer.android.com/reference If GENERATE_TREEVIEW is set to +# NO, this option has no effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +PAGE_OUTLINE_PANEL = YES + +# When GENERATE_TREEVIEW is set to YES, the FULL_SIDEBAR option determines if +# the side bar is limited to only the treeview area (value NO) or if it should +# extend to the full height of the window (value YES). Setting this to YES gives +# a layout similar to e.g. https://docs.readthedocs.io with more room for +# contents, but less room for the project logo, title, and description. If +# GENERATE_TREEVIEW is set to NO, this option has no effect. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. FULL_SIDEBAR = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. +# Doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. @@ -1772,6 +1836,12 @@ FULL_SIDEBAR = NO ENUM_VALUES_PER_LINE = 4 +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = YES + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. @@ -1779,21 +1849,21 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 200 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email # addresses. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. OBFUSCATE_EMAILS = YES -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. @@ -1806,12 +1876,12 @@ HTML_FORMULA_FORMAT = png # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML +# Doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. -FORMULA_FONTSIZE = 10 +FORMULA_FONTSIZE = 14 # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See @@ -1828,7 +1898,7 @@ FORMULA_MACROFILE = # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -USE_MATHJAX = NO +USE_MATHJAX = YES # With MATHJAX_VERSION it is possible to specify the MathJax version to be used. # Note that the different versions of MathJax have different requirements with @@ -1839,7 +1909,7 @@ USE_MATHJAX = NO # The default value is: MathJax_2. # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_VERSION = MathJax_2 +MATHJAX_VERSION = MathJax_3 # When MathJax is enabled you can set the default output format to be used for # the MathJax output. For more details about the output format see MathJax @@ -1856,7 +1926,7 @@ MATHJAX_VERSION = MathJax_2 # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_FORMAT = HTML-CSS +MATHJAX_FORMAT = SVG # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory @@ -1870,7 +1940,7 @@ MATHJAX_FORMAT = HTML-CSS # - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 +MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@3 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example @@ -1882,9 +1952,9 @@ MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 # MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_EXTENSIONS = +MATHJAX_EXTENSIONS = ams -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an @@ -1893,12 +1963,12 @@ MATHJAX_EXTENSIONS = MATHJAX_CODEFILE = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then +# For large projects the JavaScript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically @@ -1917,7 +1987,7 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and +# setting. When disabled, Doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. @@ -1926,7 +1996,7 @@ SEARCHENGINE = YES SERVER_BASED_SEARCH = NO -# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# When EXTERNAL_SEARCH tag is enabled Doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the @@ -1971,7 +2041,7 @@ SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = -# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through Doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of @@ -1985,7 +2055,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, Doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -2030,7 +2100,7 @@ MAKEINDEX_CMD_NAME = makeindex LATEX_MAKEINDEX_CMD = makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES, Doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -2061,15 +2131,15 @@ EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for # the generated LaTeX document. The header should contain everything until the -# first chapter. If it is left blank doxygen will generate a standard header. It +# first chapter. If it is left blank Doxygen will generate a standard header. It # is highly recommended to start with a default header using # doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty # and then modify the file new_header.tex. See also section "Doxygen usage" for -# information on how to generate the default header that doxygen normally uses. +# information on how to generate the default header that Doxygen normally uses. # # Note: Only use a user-defined header if you know what you are doing! # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. The following +# default header when upgrading to a newer version of Doxygen. The following # commands have a special meaning inside the header (and footer): For a # description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2078,10 +2148,10 @@ LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for # the generated LaTeX document. The footer should contain everything after the -# last chapter. If it is left blank doxygen will generate a standard footer. See +# last chapter. If it is left blank Doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what # special commands can be used inside the footer. See also section "Doxygen -# usage" for information on how to generate the default footer that doxygen +# usage" for information on how to generate the default footer that Doxygen # normally uses. Note: Only use a user-defined footer if you know what you are # doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2090,7 +2160,7 @@ LATEX_FOOTER = # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined # LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# by Doxygen. Using this option one can overrule certain style aspects. Doxygen # will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the @@ -2116,7 +2186,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# If the USE_PDFLATEX tag is set to YES, Doxygen will use the engine as # specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX # files. Set this option to YES, to get a higher quality PDF documentation. # @@ -2141,7 +2211,7 @@ USE_PDFLATEX = YES LATEX_BATCHMODE = NO -# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# If the LATEX_HIDE_INDICES tag is set to YES then Doxygen will not include the # index chapters (such as File Index, Compound Index, etc.) in the output. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2151,7 +2221,7 @@ LATEX_HIDE_INDICES = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. -# The default value is: plain. +# The default value is: plainnat. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain @@ -2168,7 +2238,7 @@ LATEX_EMOJI_DIRECTORY = # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, Doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -2183,7 +2253,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, Doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -2203,18 +2273,18 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's +# Load stylesheet definitions from file. Syntax is similar to Doxygen's # configuration file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the -# default style sheet that doxygen normally uses. +# default style sheet that Doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's configuration file. A template extensions file can be +# similar to Doxygen's configuration file. A template extensions file can be # generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. @@ -2232,7 +2302,7 @@ RTF_EXTRA_FILES = # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, Doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -2263,7 +2333,7 @@ MAN_EXTENSION = .3 MAN_SUBDIR = -# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without # them the man command would be unable to find the correct page. @@ -2276,7 +2346,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, Doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -2290,7 +2360,7 @@ GENERATE_XML = YES XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, Doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -2299,7 +2369,7 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = NO -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, Doxygen will include # namespace members in file scope as well, matching the HTML output. # The default value is: NO. # This tag requires that the tag GENERATE_XML is set to YES. @@ -2310,7 +2380,7 @@ XML_NS_MEMB_FILE_SCOPE = YES # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, Doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -2328,7 +2398,7 @@ DOCBOOK_OUTPUT = docbook # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# If the GENERATE_AUTOGEN_DEF tag is set to YES, Doxygen will generate an # AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures # the structure of the code including all documentation. Note that this feature # is still experimental and incomplete at the moment. @@ -2340,11 +2410,11 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to Sqlite3 output #--------------------------------------------------------------------------- -# If the GENERATE_SQLITE3 tag is set to YES doxygen will generate a Sqlite3 -# database with symbols found by doxygen stored in tables. +# If the GENERATE_SQLITE3 tag is set to YES Doxygen will generate a Sqlite3 +# database with symbols found by Doxygen stored in tables. # The default value is: NO. -GENERATE_SQLITE3 = YES +GENERATE_SQLITE3 = NO # The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be # put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put @@ -2355,7 +2425,7 @@ GENERATE_SQLITE3 = YES SQLITE3_OUTPUT = sqlite3 # The SQLITE3_RECREATE_DB tag is set to YES, the existing doxygen_sqlite3.db -# database file will be recreated with each doxygen run. If set to NO, doxygen +# database file will be recreated with each Doxygen run. If set to NO, Doxygen # will warn if a database file is already found and not modify it. # The default value is: YES. # This tag requires that the tag GENERATE_SQLITE3 is set to YES. @@ -2366,7 +2436,7 @@ SQLITE3_RECREATE_DB = YES # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, Doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -2374,7 +2444,7 @@ SQLITE3_RECREATE_DB = YES GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, Doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -2404,13 +2474,13 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, Doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# If the MACRO_EXPANSION tag is set to YES, Doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. @@ -2472,12 +2542,13 @@ INCLUDE_FILE_PATTERNS = *.c \ PREDEFINED = DOXYGEN=1 \ __attribute__((__progmem__))= \ - PLATFORMIO=40304 \ + PLATFORMIO=60116 \ ARDUINO_AVR_ENVIRODIY_MAYFLY \ F_CPU=8000000L \ ARDUINO_ARCH_AVR \ ARDUINO=10808 \ __AVR_ATmega1284P__ \ + NEOSWSERIAL_EXTERNAL_PCINT \ SERIAL_PORT_USBVIRTUAL=0 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this @@ -2489,7 +2560,7 @@ PREDEFINED = DOXYGEN=1 \ EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# If the SKIP_FUNCTION_MACROS tag is set to YES then Doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not @@ -2513,12 +2584,12 @@ SKIP_FUNCTION_MACROS = YES # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include -# the path). If a tag file is not located in the directory in which doxygen is +# the path). If a tag file is not located in the directory in which Doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# When a file name is specified after GENERATE_TAGFILE, Doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. @@ -2555,7 +2626,7 @@ EXTERNAL_PAGES = YES HIDE_UNDOC_RELATIONS = NO -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# If you set the HAVE_DOT tag to YES then Doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is @@ -2564,8 +2635,8 @@ HIDE_UNDOC_RELATIONS = NO HAVE_DOT = NO -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed -# to run in parallel. When set to 0 doxygen will base this on the number of +# The DOT_NUM_THREADS specifies the number of dot invocations Doxygen is allowed +# to run in parallel. When set to 0 Doxygen will base this on the number of # processors available in the system. You can set it explicitly to a value # larger than 0 to get control over the balance between CPU load and processing # speed. @@ -2576,7 +2647,7 @@ DOT_NUM_THREADS = 0 # DOT_COMMON_ATTR is common attributes for nodes, edges and labels of # subgraphs. When you want a differently looking font in the dot files that -# doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# Doxygen generates you can specify fontname, fontcolor and fontsize attributes. # For details please see Node, # Edge and Graph Attributes specification You need to make sure dot is able # to find the font, which can be done by putting it in a standard location or by @@ -2610,7 +2681,7 @@ DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then doxygen will +# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then Doxygen will # generate a graph for each documented class showing the direct and indirect # inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and # HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case @@ -2627,7 +2698,7 @@ DOT_FONTPATH = CLASS_GRAPH = NO -# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# If the COLLABORATION_GRAPH tag is set to YES then Doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the # class with other documented classes. Explicit enabling a collaboration graph, @@ -2639,7 +2710,7 @@ CLASS_GRAPH = NO COLLABORATION_GRAPH = NO -# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# If the GROUP_GRAPHS tag is set to YES then Doxygen will generate a graph for # groups, showing the direct groups dependencies. Explicit enabling a group # dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means # of the command \groupgraph. Disabling a directory graph can be accomplished by @@ -2650,7 +2721,7 @@ COLLABORATION_GRAPH = NO GROUP_GRAPHS = NO -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, Doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2671,10 +2742,19 @@ UML_LOOK = NO UML_LIMIT_NUM_FIELDS = 10 -# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# If the UML_LOOK tag is enabled, field labels are shown along the edge between +# two class nodes. If there are many fields and many nodes the graph may become +# too cluttered. The UML_MAX_EDGE_LABELS threshold limits the number of items to +# make the size more manageable. Set this to 0 for no limit. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag UML_LOOK is set to YES. + +UML_MAX_EDGE_LABELS = 10 + +# If the DOT_UML_DETAILS tag is set to NO, Doxygen will show attributes and # methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS -# tag is set to YES, doxygen will add type and arguments for attributes and -# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# tag is set to YES, Doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, Doxygen # will not generate fields with class member information in the UML graphs. The # class diagrams will look similar to the default class diagrams but using UML # notation for the relationships. @@ -2702,7 +2782,7 @@ DOT_WRAP_THRESHOLD = 17 TEMPLATE_RELATIONS = NO # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to -# YES then doxygen will generate a graph for each documented file showing the +# YES then Doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented # files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO, # can be accomplished by means of the command \includegraph. Disabling an @@ -2713,7 +2793,7 @@ TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = NO # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are -# set to YES then doxygen will generate a graph for each documented file showing +# set to YES then Doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented # files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set # to NO, can be accomplished by means of the command \includedbygraph. Disabling @@ -2724,7 +2804,7 @@ INCLUDE_GRAPH = NO INCLUDED_BY_GRAPH = NO -# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# If the CALL_GRAPH tag is set to YES then Doxygen will generate a call # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2736,7 +2816,7 @@ INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO -# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# If the CALLER_GRAPH tag is set to YES then Doxygen will generate a caller # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2748,14 +2828,14 @@ CALL_GRAPH = NO CALLER_GRAPH = NO -# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# If the GRAPHICAL_HIERARCHY tag is set to YES then Doxygen will graphical # hierarchy of all classes instead of a textual one. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = NO -# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# If the DIRECTORY_GRAPH tag is set to YES then Doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the # files in the directories. Explicit enabling a directory graph, when @@ -2778,24 +2858,29 @@ DIR_GRAPH_MAX_DEPTH = 5 # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: # https://www.graphviz.org/)). -# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order -# to make the SVG files visible in IE 9+ (other browsers do not have this -# requirement). +# +# Note the formats svg:cairo and svg:cairo:cairo cannot be used in combination +# with INTERACTIVE_SVG (the INTERACTIVE_SVG will be set to NO). # Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, -# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and -# png:gdiplus:gdiplus. +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus, +# png:gdiplus:gdiplus, svg:cairo, svg:cairo:cairo, svg:svg, svg:svg:core, +# gif:cairo, gif:cairo:gd, gif:cairo:gdiplus, gif:gdiplus, gif:gdiplus:gdiplus, +# gif:gd, gif:gd:gd, jpg:cairo, jpg:cairo:gd, jpg:cairo:gdiplus, jpg:gd, +# jpg:gd:gd, jpg:gdiplus and jpg:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. DOT_IMAGE_FORMAT = svg -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. +# If DOT_IMAGE_FORMAT is set to svg or svg:svg or svg:svg:core, then this option +# can be set to YES to enable generation of interactive SVG images that allow +# zooming and panning. # # Note that this requires a modern browser other than Internet Explorer. Tested # and working are Firefox, Chrome, Safari, and Opera. -# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make -# the SVG files visible. Older versions of IE do not have SVG support. +# +# Note This option will be automatically disabled when DOT_IMAGE_FORMAT is set +# to svg:cairo or svg:cairo:cairo. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2814,7 +2899,7 @@ DOT_PATH = DOTFILE_DIRS = -# You can include diagrams made with dia in doxygen documentation. Doxygen will +# You can include diagrams made with dia in Doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. @@ -2827,7 +2912,7 @@ DIA_PATH = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# When using PlantUML, the PLANTUML_JAR_PATH tag should be used to specify the # path where java can find the plantuml.jar file or to the filename of jar file # to be used. If left blank, it is assumed PlantUML is not used or called during # a preprocessing step. Doxygen will generate a warning when it encounters a @@ -2835,19 +2920,25 @@ DIAFILE_DIRS = PLANTUML_JAR_PATH = -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a -# configuration file for plantuml. +# When using PlantUML, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for PlantUML. PLANTUML_CFG_FILE = -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. +# When using PlantUML, the specified paths are searched for files specified by +# the !include statement in a PlantUML block. PLANTUML_INCLUDE_PATH = +# The PLANTUMLFILE_DIRS tag can be used to specify one or more directories that +# contain PlantUml files that are included in the documentation (see the +# \plantumlfile command). + +PLANTUMLFILE_DIRS = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes -# larger than this value, doxygen will truncate the graph, which is visualized +# larger than this value, Doxygen will truncate the graph, which is visualized # by representing a node as a red box. Note that if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that @@ -2878,17 +2969,17 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_MULTI_TARGETS = NO -# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. -# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal +# Note: This tag requires that UML_LOOK isn't set, i.e. the Doxygen internal # graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate +# If the DOT_CLEANUP tag is set to YES, Doxygen will remove the intermediate # files that are used to generate the various graphs. # # Note: This setting is not only used for dot files but also for msc temporary @@ -2897,11 +2988,11 @@ GENERATE_LEGEND = YES DOT_CLEANUP = YES -# You can define message sequence charts within doxygen comments using the \msc -# command. If the MSCGEN_TOOL tag is left empty (the default), then doxygen will +# You can define message sequence charts within Doxygen comments using the \msc +# command. If the MSCGEN_TOOL tag is left empty (the default), then Doxygen will # use a built-in version of mscgen tool to produce the charts. Alternatively, # the MSCGEN_TOOL tag can also specify the name an external tool. For instance, -# specifying prog as the value, doxygen will call the tool as prog -T +# specifying prog as the value, Doxygen will call the tool as prog -T # -o . The external tool should support # output file formats "png", "eps", "svg", and "ismap". diff --git a/docs/directories.dox b/docs/directories.dox index 8daa8eb..821eb91 100644 --- a/docs/directories.dox +++ b/docs/directories.dox @@ -9,10 +9,6 @@ /** * @dir examples * @brief Contains all of the example sketches - * @dir examples/GetValues - * @copybrief GetValues.ino - * @dir examples/ChangeModbusSettings - * @copybrief ChangeModbusSettings.ino */ /** * @dir extras diff --git a/examples/ChangeModbusSettings/ChangeModbusSettings.ino b/examples/ChangeModbusSettings/ChangeModbusSettings.ino index 7d22ea5..f3b675f 100644 --- a/examples/ChangeModbusSettings/ChangeModbusSettings.ino +++ b/examples/ChangeModbusSettings/ChangeModbusSettings.ino @@ -13,9 +13,12 @@ * @warning Neither SoftwareSerial, AltSoftSerial, nor NeoSoftwareSerial will support * either even or odd parity! * - * This sketch depends on the GropointModbus library and also loosly on the + * This sketch depends on the GropointModbus library and also loosely on the * SensorModbusMaster library via it's example sketch: * SensorModbusMaster/examples/readWriteRegister/readWriteRegister.ino + * + * @m_examplenavigation{example_change_modbus_settings,} + * @m_footernavigation * ======================================================================= */ // --------------------------------------------------------------------------- @@ -24,7 +27,7 @@ #include #include -// Turn on debugging outputs (i.e. raw Modbus requests & responsds) +// Turn on debugging outputs (i.e. raw Modbus requests & responds) // by uncommenting next line (i.e. `#define DEBUG`) // #define DEBUG @@ -78,7 +81,7 @@ String newModbusParity_str = "None"; // The time from application of power to the SDI-12 power bus until the // sensor is ready to receive a command is approximately 350 ms. -#define STABILIZATION_TIME 100 // milliseconds for readings to stablize. +#define STABILIZATION_TIME 100 // milliseconds for readings to stabilize. #define MEASUREMENT_TIME 200 // milliseconds to complete a measurement. // GroPoint Profile User Manual page 39: @@ -94,14 +97,14 @@ const int32_t serialBaud = 115200; // Baud rate for serial monitor // Define pin number variables const int sensorPwrPin = 10; // The pin sending power to the sensor const int adapterPwrPin = 22; // The pin sending power to the RS485 adapter -const int DEREPin = -1; // The pin controlling Recieve Enable and Driver Enable +const int DEREPin = -1; // The pin controlling Receive Enable and Driver Enable // on the RS485 adapter, if applicable (else, -1) // Setting HIGH enables the driver (arduino) to send text // Setting LOW enables the receiver (sensor) to send text // Construct a Serial object for Modbus #if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_FEATHER328P) -// The Uno only has 1 hardware serial port, which is dedicated to comunication with the +// The Uno only has 1 hardware serial port, which is dedicated to communication with the // computer. If using an Uno, you will be restricted to using AltSofSerial or // SoftwareSerial #include @@ -118,14 +121,14 @@ SoftwareSerial modbusSerial; #include HardwareSerial& modbusSerial = Serial1; #elif !defined(NO_GLOBAL_SERIAL1) && !defined(STM32_CORE_VERSION) -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial1") +#pragma message("Using HardwareSerial / Serial1") HardwareSerial& modbusSerial = Serial1; #else -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial") +#pragma message("Using HardwareSerial / Serial") HardwareSerial& modbusSerial = Serial; #endif diff --git a/examples/ChangeModbusSettings/ReadMe.md b/examples/ChangeModbusSettings/ReadMe.md index 7d73907..5b9aef3 100644 --- a/examples/ChangeModbusSettings/ReadMe.md +++ b/examples/ChangeModbusSettings/ReadMe.md @@ -1,4 +1,4 @@ -# Changing Modbus Settings +# Changing Modbus Settings This sketch uses hardware serial to connect with GroPoint Profile and change the default modbus settings from 19200 8E1 to 9600 8N1. @@ -9,14 +9,14 @@ Neither SoftwareSerial, AltSoftSerial, nor NeoSoftwareSerial will support either 8-N-1 (no parity) is the most common configuration for serial communications. -This sketch depends on the GropointModbus library and also loosly on the SensorModbusMaster library via it's example sketch: SensorModbusMaster/examples/readWriteRegister/readWriteRegister.ino +This sketch depends on the GropointModbus library and also loosely on the SensorModbusMaster library via it's example sketch: SensorModbusMaster/examples/readWriteRegister/readWriteRegister.ino _______ -[//]: # ( @section example_change_modbus_settings_pio_config PlatformIO Configuration ) + -[//]: # ( @include{lineno} ChangeModbusSettings/platformio.ini ) + -[//]: # ( @section example_change_modbus_settings_code The Complete Code ) + -[//]: # ( @include{lineno} ChangeModbusSettings/ChangeModbusSettings.ino ) + diff --git a/examples/GetValues/GetValues.ino b/examples/GetValues/GetValues.ino index 18da354..44b9ffc 100644 --- a/examples/GetValues/GetValues.ino +++ b/examples/GetValues/GetValues.ino @@ -19,16 +19,12 @@ * @m_footernavigation * ======================================================================= */ -// --------------------------------------------------------------------------- -// Include the base required libraries -// --------------------------------------------------------------------------- +// ========================================================================== +// Include the libraries required for any data logger +// ========================================================================== #include #include -// Turn on debugging outputs (i.e. raw Modbus requests & responses) -// by uncommenting next line (i.e. `#define DEBUG`) -#define DEBUG - // ========================================================================== // Sensor Settings @@ -73,10 +69,10 @@ uint8_t modbusParity = SERIAL_8N1; #define WARM_UP_TIME \ 350 // milliseconds for sensor to respond to commands. // GroPoint Profile User Manual page 7: - // The time from application of power to the SDI-12 power bus until the - // sensor is ready to receive a command is approximately 350 ms. +// The time from application of power to the SDI-12 power bus until the +// sensor is ready to receive a command is approximately 350 ms. -#define STABILIZATION_TIME 100 // milliseconds for readings to stablize. +#define STABILIZATION_TIME 100 // milliseconds for readings to stabilize. #define MEASUREMENT_TIME 200 // milliseconds to complete a measurement. // GroPoint Profile User Manual page 39: @@ -85,52 +81,68 @@ uint8_t modbusParity = SERIAL_8N1; // ========================================================================== -// Data Logging Options +// Data Logger Options // ========================================================================== const int32_t serialBaud = 115200; // Baud rate for serial monitor // Define pin number variables const int sensorPwrPin = 10; // The pin sending power to the sensor const int adapterPwrPin = 22; // The pin sending power to the RS485 adapter -const int DEREPin = -1; // The pin controlling Recieve Enable and Driver Enable +const int DEREPin = -1; // The pin controlling Receive Enable and Driver Enable // on the RS485 adapter, if applicable (else, -1) // Setting HIGH enables the driver (arduino) to send text // Setting LOW enables the receiver (sensor) to send text -// Construct a Serial object for Modbus -#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_FEATHER328P) -// The Uno only has 1 hardware serial port, which is dedicated to comunication with the +// Turn on debugging outputs (i.e. raw Modbus requests & responses) +// by uncommenting next line (i.e. `#define DEBUG`) +// #define DEBUG + + +// ========================================================================== +// Create and Assign a Serial Port for Modbus +// ========================================================================== +// Hardware serial ports are preferred when available. +// AltSoftSerial is the most stable alternative for modbus. +// Select over alternatives with the define below. +// #define BUILD_ALTSOFTSERIAL // Comment-out if you prefer alternatives + +#if defined(BUILD_ALTSOFTSERIAL) +#include +AltSoftSerial modbusSerial; + +#elif defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_FEATHER328P) +// The Uno only has 1 hardware serial port, which is dedicated to communication with the // computer. If using an Uno, you will be restricted to using AltSofSerial or // SoftwareSerial #include -const int SSRxPin = 10; // Receive pin for software serial (Rx on RS485 adapter) -const int SSTxPin = 11; // Send pin for software serial (Tx on RS485 adapter) +const int SSRxPin = 10; // Receive pin for software serial (Rx on RS485 adapter) +const int SSTxPin = 11; // Send pin for software serial (Tx on RS485 adapter) #pragma message("Using Software Serial for the Uno on pins 10 and 11") SoftwareSerial modbusSerial(SSRxPin, SSTxPin); -// AltSoftSerial modbusSerial; + #elif defined(ESP8266) +#include #pragma message("Using Software Serial for the ESP8266") SoftwareSerial modbusSerial; + #elif defined(NRF52832_FEATHER) || defined(ARDUINO_NRF52840_FEATHER) #pragma message("Using TinyUSB for the NRF52") #include HardwareSerial& modbusSerial = Serial1; + #elif !defined(NO_GLOBAL_SERIAL1) && !defined(STM32_CORE_VERSION) -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial1") +#pragma message("Using HardwareSerial / Serial1") HardwareSerial& modbusSerial = Serial1; + #else -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial") +#pragma message("Using HardwareSerial / Serial") HardwareSerial& modbusSerial = Serial; #endif -// Construct a SensorModbusMaster class instance, from -// https://github.com/EnviroDIY/SensorModbusMaster -modbusMaster modbus; - // Construct the gropoint sensor instance gropoint sensor; bool success; @@ -143,7 +155,7 @@ bool success; // from ModularSensors `sensorLocation()` String prettyprintAddressHex(byte _modbusAddress) { String addressHex = F("0x"); - if (_modbusAddress < 0x10) addressHex += "0"; + if (_modbusAddress < 0x10) { addressHex += "0"; } addressHex += String(_modbusAddress, HEX); return addressHex; } @@ -154,15 +166,16 @@ String prettyprintAddressHex(byte _modbusAddress) { // ========================================================================== void setup() { // Setup power pins - if (sensorPwrPin >= 0) { + if (sensorPwrPin > 0) { pinMode(sensorPwrPin, OUTPUT); digitalWrite(sensorPwrPin, HIGH); } - if (adapterPwrPin >= 0) { + if (adapterPwrPin > 0) { pinMode(adapterPwrPin, OUTPUT); digitalWrite(adapterPwrPin, HIGH); } - if (DEREPin >= 0) { pinMode(DEREPin, OUTPUT); } + + if (DEREPin > 0) { pinMode(DEREPin, OUTPUT); } // Turn on the "main" serial port for debugging via USB Serial Monitor Serial.begin(serialBaud); @@ -177,7 +190,9 @@ void setup() { const int SSRxPin = 13; // Receive pin for software serial (Rx on RS485 adapter) const int SSTxPin = 14; // Send pin for software serial (Tx on RS485 adapter) modbusSerial.begin(modbusBaud, modbusParity, SSRxPin, SSTxPin, false); -#else +#elif defined(BUILD_ALTSOFTSERIAL) + modbusSerial.begin(modbusBaud); +#else // For Hardware Serial modbusSerial.begin(modbusBaud, modbusParity); #endif diff --git a/examples/GetValues/ReadMe.md b/examples/GetValues/ReadMe.md index 0cfcef0..1ad6247 100644 --- a/examples/GetValues/ReadMe.md +++ b/examples/GetValues/ReadMe.md @@ -1,4 +1,4 @@ -# Getting Values +# Getting Values This prints basic meta-data about a sensor to the first serial port and then begins taking measurements from the sensor. @@ -10,10 +10,10 @@ Neither SoftwareSerial, AltSoftSerial, nor NeoSoftwareSerial will support either _______ -[//]: # ( @section example_get_values_pio_config PlatformIO Configuration ) + -[//]: # ( @include{lineno} GetValues/platformio.ini ) + -[//]: # ( @section example_get_values_code The Complete Code ) + -[//]: # ( @include{lineno} GetValues/GetValues.ino ) + diff --git a/examples/ReadMe.md b/examples/ReadMe.md index 5d1b262..994a996 100644 --- a/examples/ReadMe.md +++ b/examples/ReadMe.md @@ -1,29 +1,29 @@ -# Examples using the GroPoint Modbus Library +# Examples using the GroPoint Modbus Library These example programs demonstrate how to use the GroPoint Modbus library. ___ -[//]: # ( Start GitHub Only ) + - [Examples using the GroPoint Modbus Library](#examples-using-the-gropoint-modbus-library) - [Getting Sensor Values](#getting-sensor-values) - [Changing Modbus Serial Settings](#changing-modbus-serial-settings) -[//]: # ( End GitHub Only ) + -[//]: # ( @tableofcontents ) + -[//]: # ( @m_footernavigation ) + -## Getting Sensor Values +## Getting Sensor Values This prints basic meta-data about a sensor to the first serial port and then begins taking measurements from the sensor. - [Instructions for the get values example](https://envirodiy.github.io/GroPointModbus/example_get_values.html) - [The get values example on GitHub](https://github.com/EnviroDIY/GroPointModbus/tree/master/examples/GetValues) -## Changing Modbus Serial Settings +## Changing Modbus Serial Settings This sketch uses hardware serial to connect with GroPoint Profile and change default modbus settings from 19200 8E1 to 9600 8N1. @@ -32,5 +32,5 @@ You will probably need to use this example to prepare a new sensor to communicat - [Instructions for the changing settings example](https://envirodiy.github.io/GroPointModbus/example_change_modbus_settings.html) - [The display values example on GitHub](https://github.com/EnviroDIY/GroPointModbus/tree/master/examples/ChangeModbusSettings) -[//]: # ( @m_innerpage{example_get_values} ) -[//]: # ( @m_innerpage{example_change_modbus_settings} ) + + diff --git a/examples/example_dependencies.json b/examples/example_dependencies.json new file mode 100644 index 0000000..ebcd881 --- /dev/null +++ b/examples/example_dependencies.json @@ -0,0 +1,13 @@ +{ + "action_cache_version": 1, + "dependencies": [ + { + "name": "NeoSWSerial", + "version": "https://github.com/SRGDamia1/NeoSWSerial.git" + }, + { + "name": "AltSoftSerial", + "version": "https://github.com/PaulStoffregen/AltSoftSerial.git" + } + ] +} diff --git a/extras/ChangeParity/ChangeParity.ino b/extras/ChangeParity/ChangeParity.ino index 733b5f7..b18eb34 100644 --- a/extras/ChangeParity/ChangeParity.ino +++ b/extras/ChangeParity/ChangeParity.ino @@ -17,7 +17,7 @@ * SensorModbusMaster library and is based on it's example sketch: * SensorModbusMaster/examples/readWriteRegister/readWriteRegister.ino * - * @m_examplenavigation{example_get_values,} + * @m_examplenavigation{extras_change_parity,} * @m_footernavigation * ======================================================================= */ @@ -27,7 +27,7 @@ #include #include -// Turn on debugging outputs (i.e. raw Modbus requests & responsds) +// Turn on debugging outputs (i.e. raw Modbus requests & responds) // by uncommenting next line (i.e. `#define DEBUG`) #define DEBUG // ========================================================================== @@ -78,7 +78,7 @@ uint8_t newModbusParity = SERIAL_8N1; // The time from application of power to the SDI-12 power bus until the // sensor is ready to receive a command is approximately 350 ms. -#define STABILIZATION_TIME 100 // milliseconds for readings to stablize. +#define STABILIZATION_TIME 100 // milliseconds for readings to stabilize. #define MEASUREMENT_TIME 200 // milliseconds to complete a measurement. // GroPoint Profile User Manual page 39: @@ -94,14 +94,14 @@ const int32_t serialBaud = 115200; // Baud rate for serial monitor // Define pin number variables const int sensorPwrPin = 10; // The pin sending power to the sensor const int adapterPwrPin = 22; // The pin sending power to the RS485 adapter -const int DEREPin = -1; // The pin controlling Recieve Enable and Driver Enable +const int DEREPin = -1; // The pin controlling Receive Enable and Driver Enable // on the RS485 adapter, if applicable (else, -1) // Setting HIGH enables the driver (arduino) to send text // Setting LOW enables the receiver (sensor) to send text // Construct a Serial object for Modbus #if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_FEATHER328P) -// The Uno only has 1 hardware serial port, which is dedicated to comunication with the +// The Uno only has 1 hardware serial port, which is dedicated to communication with the // computer. If using an Uno, you will be restricted to using AltSofSerial or // SoftwareSerial #include @@ -118,14 +118,14 @@ SoftwareSerial modbusSerial; #include HardwareSerial& modbusSerial = Serial1; #elif !defined(NO_GLOBAL_SERIAL1) && !defined(STM32_CORE_VERSION) -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial1") +#pragma message("Using HardwareSerial / Serial1") HardwareSerial& modbusSerial = Serial1; #else -// This is just a assigning another name to the same port, for convienence +// This is just a assigning another name to the same port, for convience // Unless it is unavailable, always prefer hardware serial. -#pragma message("Using HarwareSerial / Serial") +#pragma message("Using HardwareSerial / Serial") HardwareSerial& modbusSerial = Serial; #endif diff --git a/extras/ChangeParity/ReadMe.md b/extras/ChangeParity/ReadMe.md new file mode 100644 index 0000000..4b405c6 --- /dev/null +++ b/extras/ChangeParity/ReadMe.md @@ -0,0 +1,10 @@ +# Changing the parity + +This sketch uses hardware serial to connect with GroPoint Profile and change default modbus settings from 19200 8E1 to 9600 8N1. + +> [!note] +> GroPoint Profile sensor default Modbus communication settings are 19200 Baud, 8 Bits, Even Parity, one Stop Bit (8-E-1). +> See p35 of manual. 8-N-1 (no parity) is the most common configuration for serial communications. + +> [!warning] +> Neither SoftwareSerial, AltSoftSerial, nor NeoSoftwareSerial will support either even or odd parity! diff --git a/extras/ReadMe.md b/extras/ReadMe.md new file mode 100644 index 0000000..540f8df --- /dev/null +++ b/extras/ReadMe.md @@ -0,0 +1,3 @@ +# Extra Helpers for GroPoint Modbus Library + +Some extra helpful tools for the GroPoint sensors. diff --git a/library.json b/library.json index 441fc80..4884e91 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "GroPointModbus", - "version": "0.1.1", + "version": "0.1.2", "keywords": "GroPoint, Modbus, communication, bus, sensor", "description": "Arduino library for communication with GroPoint soil moisture sensors via Modbus.", "repository": { @@ -19,10 +19,11 @@ "platforms": ["atmelavr", "atmelsam"], "dependencies": [ { + "owner": "envirodiy", "name": "SensorModbusMaster", "library id": "1824", "url": "https://github.com/EnviroDIY/SensorModbusMaster.git", - "version": ">=0.7.1", + "version": "~1.6.0", "note": "EnviroDIY SensorModbusMaster - Arduino library for communicating via modbus with the Arduino acting as the modbus master.", "authors": ["Sara Damiano"], "frameworks": "arduino", diff --git a/library.properties b/library.properties index f3e57ef..e6f414f 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=GroPointModbus -version=0.1.1 +version=0.1.2 author=Anthony Aufdenkampe maintainer=Anthony Aufdenkampe sentence=Arduino library for communication with GroPoint soil moisture sensors via Modbus. diff --git a/src/GroPointModbus.cpp b/src/GroPointModbus.cpp index 0403a46..5938f5b 100644 --- a/src/GroPointModbus.cpp +++ b/src/GroPointModbus.cpp @@ -338,7 +338,7 @@ bool gropoint::getInputRegisters(int16_t startRegister, int16_t numRegisters) { // Put in the starting register leFrame fram = {{ - 0, + 0, }}; fram.Int16[0] = startRegister; command[2] = fram.Byte[1]; @@ -397,7 +397,7 @@ bool gropoint::getValues(float& valueM1, float& valueM2, float& valueM3, float& case GPLP8: { int16_t numRegisters = 8; if (getInputRegisters(startRegister, numRegisters)) { - // Muliply by 0.1 to convert from int to float as per manual + // Multiply by 0.1 to convert from int to float as per manual valueM1 = 0.1 * modbus.int16FromFrame(bigEndian, 3); valueM2 = 0.1 * modbus.int16FromFrame(bigEndian, 5); valueM3 = 0.1 * modbus.int16FromFrame(bigEndian, 7); @@ -444,7 +444,7 @@ bool gropoint::getTemperatureValues(float& valueT1, float& valueT2, float& value case GPLP8: { int16_t numRegisters = 13; if (getInputRegisters(startRegister, numRegisters)) { - // Muliply by 0.1 to convert from int to float as per manual + // Multiply by 0.1 to convert from int to float as per manual valueT1 = 0.1 * modbus.int16FromFrame(bigEndian, 3); valueT2 = 0.1 * modbus.int16FromFrame(bigEndian, 5); valueT3 = 0.1 * modbus.int16FromFrame(bigEndian, 7); @@ -470,3 +470,5 @@ bool gropoint::getTemperatureValues(float& valueT1, float& valueT2, float& value // If something fails, we'll get here return false; } + +// cspell: ignore fram RIOTTECHGPLPTC diff --git a/src/GroPointModbus.h b/src/GroPointModbus.h index 24c0911..c756efa 100644 --- a/src/GroPointModbus.h +++ b/src/GroPointModbus.h @@ -270,7 +270,7 @@ class gropoint { * Log to be cleared also. Contents of 00 00 leave the log as it was prior to the * restart. * - * @return *bool* True if the commuication was restarted, false if not. + * @return *bool* True if the communication was restarted, false if not. */ bool restartCommunications(void); /**@}*/ @@ -392,7 +392,7 @@ class gropoint { * @param valueT9 The ninth value from parameter group 1 (temperature) * @param valueT10 The tenth value from parameter group 1 (temperature) * @param valueT11 The eleventh value from parameter group 1 (temperature) - * @param valueT12 The twelvth value from parameter group 1 (temperature) + * @param valueT12 The twelfth value from parameter group 1 (temperature) * @param valueT13 The thirteenth value from parameter group 1 (temperature) * @return *bool* True if the measurements were successfully obtained, false if not. */ @@ -442,3 +442,5 @@ class gropoint { }; #endif + +// cspell: ignore RIOTTECHGPLPTC