├── .github └── workflows │ └── action.yml ├── .gitignore ├── ChangeLog.md ├── LICENSE ├── README.md ├── SConscript ├── doc └── doxygen │ ├── Agile_Led.chm │ ├── Doxyfile │ └── output │ └── index.html ├── examples ├── README.md ├── SConscript └── example_agile_led.c ├── inc └── agile_led.h └── src ├── SConscript └── agile_led.c /.github/workflows/action.yml: -------------------------------------------------------------------------------- 1 | name: RT-Thread_Packages_Test 2 | 3 | on: 4 | [push, pull_request] 5 | 6 | jobs: 7 | pkgs-test: 8 | uses: RT-Thread/pkgs-test/.github/workflows/pkgs-action.yml@main 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | .vscode 45 | 46 | # Kernel Module Compile Results 47 | *.mod* 48 | *.cmd 49 | .tmp_versions/ 50 | modules.order 51 | Module.symvers 52 | Mkfile.old 53 | dkms.conf 54 | 55 | # Documentation 56 | doc/doxygen/output/* 57 | !doc/doxygen/output/index.html 58 | -------------------------------------------------------------------------------- /ChangeLog.md: -------------------------------------------------------------------------------- 1 | # 更新记录 2 | 3 | ## Agile Led 1.1.0 发布 4 | 5 | ### 新功能 6 | 7 | 2021-11-24:马龙伟 8 | 9 | * 增加 Doxygen 注释,生成文档 10 | * 增加静态初始化,不使用动态内存分配也可使用该软件包 11 | 12 | ### 修改 13 | 14 | 2021-11-25:马龙伟 15 | 16 | * 修改变量定义为标准数据类型 17 | * 修改 `example` 代码, 引脚号从命令行输入 18 | * 修改静态变量命名 19 | * 增加 `PKG_AGILE_LED_USING_THREAD_AUTO_INIT` 配置,可自由决定是否自动创建线程 20 | 21 | ## Agile Led 1.1.1 发布 22 | 23 | ### 修改 24 | 25 | 2021-12-28:马龙伟 26 | 27 | * 修改 API 注释 28 | * 完善文档 29 | * 修改 example 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 2.1, February 1999 3 | 4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | (This is the first released version of the Lesser GPL. It also counts 10 | as the successor of the GNU Library Public License, version 2, hence 11 | the version number 2.1.) 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your 16 | freedom to share and change it. By contrast, the GNU General Public 17 | Licenses are intended to guarantee your freedom to share and change 18 | free software--to make sure the software is free for all its users. 19 | 20 | This license, the Lesser General Public License, applies to some 21 | specially designated software packages--typically libraries--of the 22 | Free Software Foundation and other authors who decide to use it. You 23 | can use it too, but we suggest you first think carefully about whether 24 | this license or the ordinary General Public License is the better 25 | strategy to use in any particular case, based on the explanations below. 26 | 27 | When we speak of free software, we are referring to freedom of use, 28 | not price. Our General Public Licenses are designed to make sure that 29 | you have the freedom to distribute copies of free software (and charge 30 | for this service if you wish); that you receive source code or can get 31 | it if you want it; that you can change the software and use pieces of 32 | it in new free programs; and that you are informed that you can do 33 | these things. 34 | 35 | To protect your rights, we need to make restrictions that forbid 36 | distributors to deny you these rights or to ask you to surrender these 37 | rights. These restrictions translate to certain responsibilities for 38 | you if you distribute copies of the library or if you modify it. 39 | 40 | For example, if you distribute copies of the library, whether gratis 41 | or for a fee, you must give the recipients all the rights that we gave 42 | you. You must make sure that they, too, receive or can get the source 43 | code. If you link other code with the library, you must provide 44 | complete object files to the recipients, so that they can relink them 45 | with the library after making changes to the library and recompiling 46 | it. And you must show them these terms so they know their rights. 47 | 48 | We protect your rights with a two-step method: (1) we copyright the 49 | library, and (2) we offer you this license, which gives you legal 50 | permission to copy, distribute and/or modify the library. 51 | 52 | To protect each distributor, we want to make it very clear that 53 | there is no warranty for the free library. Also, if the library is 54 | modified by someone else and passed on, the recipients should know 55 | that what they have is not the original version, so that the original 56 | author's reputation will not be affected by problems that might be 57 | introduced by others. 58 | 59 | Finally, software patents pose a constant threat to the existence of 60 | any free program. We wish to make sure that a company cannot 61 | effectively restrict the users of a free program by obtaining a 62 | restrictive license from a patent holder. Therefore, we insist that 63 | any patent license obtained for a version of the library must be 64 | consistent with the full freedom of use specified in this license. 65 | 66 | Most GNU software, including some libraries, is covered by the 67 | ordinary GNU General Public License. This license, the GNU Lesser 68 | General Public License, applies to certain designated libraries, and 69 | is quite different from the ordinary General Public License. We use 70 | this license for certain libraries in order to permit linking those 71 | libraries into non-free programs. 72 | 73 | When a program is linked with a library, whether statically or using 74 | a shared library, the combination of the two is legally speaking a 75 | combined work, a derivative of the original library. The ordinary 76 | General Public License therefore permits such linking only if the 77 | entire combination fits its criteria of freedom. The Lesser General 78 | Public License permits more lax criteria for linking other code with 79 | the library. 80 | 81 | We call this license the "Lesser" General Public License because it 82 | does Less to protect the user's freedom than the ordinary General 83 | Public License. It also provides other free software developers Less 84 | of an advantage over competing non-free programs. These disadvantages 85 | are the reason we use the ordinary General Public License for many 86 | libraries. However, the Lesser license provides advantages in certain 87 | special circumstances. 88 | 89 | For example, on rare occasions, there may be a special need to 90 | encourage the widest possible use of a certain library, so that it becomes 91 | a de-facto standard. To achieve this, non-free programs must be 92 | allowed to use the library. A more frequent case is that a free 93 | library does the same job as widely used non-free libraries. In this 94 | case, there is little to gain by limiting the free library to free 95 | software only, so we use the Lesser General Public License. 96 | 97 | In other cases, permission to use a particular library in non-free 98 | programs enables a greater number of people to use a large body of 99 | free software. For example, permission to use the GNU C Library in 100 | non-free programs enables many more people to use the whole GNU 101 | operating system, as well as its variant, the GNU/Linux operating 102 | system. 103 | 104 | Although the Lesser General Public License is Less protective of the 105 | users' freedom, it does ensure that the user of a program that is 106 | linked with the Library has the freedom and the wherewithal to run 107 | that program using a modified version of the Library. 108 | 109 | The precise terms and conditions for copying, distribution and 110 | modification follow. Pay close attention to the difference between a 111 | "work based on the library" and a "work that uses the library". The 112 | former contains code derived from the library, whereas the latter must 113 | be combined with the library in order to run. 114 | 115 | GNU LESSER GENERAL PUBLIC LICENSE 116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 117 | 118 | 0. This License Agreement applies to any software library or other 119 | program which contains a notice placed by the copyright holder or 120 | other authorized party saying it may be distributed under the terms of 121 | this Lesser General Public License (also called "this License"). 122 | Each licensee is addressed as "you". 123 | 124 | A "library" means a collection of software functions and/or data 125 | prepared so as to be conveniently linked with application programs 126 | (which use some of those functions and data) to form executables. 127 | 128 | The "Library", below, refers to any such software library or work 129 | which has been distributed under these terms. A "work based on the 130 | Library" means either the Library or any derivative work under 131 | copyright law: that is to say, a work containing the Library or a 132 | portion of it, either verbatim or with modifications and/or translated 133 | straightforwardly into another language. (Hereinafter, translation is 134 | included without limitation in the term "modification".) 135 | 136 | "Source code" for a work means the preferred form of the work for 137 | making modifications to it. For a library, complete source code means 138 | all the source code for all modules it contains, plus any associated 139 | interface definition files, plus the scripts used to control compilation 140 | and installation of the library. 141 | 142 | Activities other than copying, distribution and modification are not 143 | covered by this License; they are outside its scope. The act of 144 | running a program using the Library is not restricted, and output from 145 | such a program is covered only if its contents constitute a work based 146 | on the Library (independent of the use of the Library in a tool for 147 | writing it). Whether that is true depends on what the Library does 148 | and what the program that uses the Library does. 149 | 150 | 1. You may copy and distribute verbatim copies of the Library's 151 | complete source code as you receive it, in any medium, provided that 152 | you conspicuously and appropriately publish on each copy an 153 | appropriate copyright notice and disclaimer of warranty; keep intact 154 | all the notices that refer to this License and to the absence of any 155 | warranty; and distribute a copy of this License along with the 156 | Library. 157 | 158 | You may charge a fee for the physical act of transferring a copy, 159 | and you may at your option offer warranty protection in exchange for a 160 | fee. 161 | 162 | 2. You may modify your copy or copies of the Library or any portion 163 | of it, thus forming a work based on the Library, and copy and 164 | distribute such modifications or work under the terms of Section 1 165 | above, provided that you also meet all of these conditions: 166 | 167 | a) The modified work must itself be a software library. 168 | 169 | b) You must cause the files modified to carry prominent notices 170 | stating that you changed the files and the date of any change. 171 | 172 | c) You must cause the whole of the work to be licensed at no 173 | charge to all third parties under the terms of this License. 174 | 175 | d) If a facility in the modified Library refers to a function or a 176 | table of data to be supplied by an application program that uses 177 | the facility, other than as an argument passed when the facility 178 | is invoked, then you must make a good faith effort to ensure that, 179 | in the event an application does not supply such function or 180 | table, the facility still operates, and performs whatever part of 181 | its purpose remains meaningful. 182 | 183 | (For example, a function in a library to compute square roots has 184 | a purpose that is entirely well-defined independent of the 185 | application. Therefore, Subsection 2d requires that any 186 | application-supplied function or table used by this function must 187 | be optional: if the application does not supply it, the square 188 | root function must still compute square roots.) 189 | 190 | These requirements apply to the modified work as a whole. If 191 | identifiable sections of that work are not derived from the Library, 192 | and can be reasonably considered independent and separate works in 193 | themselves, then this License, and its terms, do not apply to those 194 | sections when you distribute them as separate works. But when you 195 | distribute the same sections as part of a whole which is a work based 196 | on the Library, the distribution of the whole must be on the terms of 197 | this License, whose permissions for other licensees extend to the 198 | entire whole, and thus to each and every part regardless of who wrote 199 | it. 200 | 201 | Thus, it is not the intent of this section to claim rights or contest 202 | your rights to work written entirely by you; rather, the intent is to 203 | exercise the right to control the distribution of derivative or 204 | collective works based on the Library. 205 | 206 | In addition, mere aggregation of another work not based on the Library 207 | with the Library (or with a work based on the Library) on a volume of 208 | a storage or distribution medium does not bring the other work under 209 | the scope of this License. 210 | 211 | 3. You may opt to apply the terms of the ordinary GNU General Public 212 | License instead of this License to a given copy of the Library. To do 213 | this, you must alter all the notices that refer to this License, so 214 | that they refer to the ordinary GNU General Public License, version 2, 215 | instead of to this License. (If a newer version than version 2 of the 216 | ordinary GNU General Public License has appeared, then you can specify 217 | that version instead if you wish.) Do not make any other change in 218 | these notices. 219 | 220 | Once this change is made in a given copy, it is irreversible for 221 | that copy, so the ordinary GNU General Public License applies to all 222 | subsequent copies and derivative works made from that copy. 223 | 224 | This option is useful when you wish to copy part of the code of 225 | the Library into a program that is not a library. 226 | 227 | 4. You may copy and distribute the Library (or a portion or 228 | derivative of it, under Section 2) in object code or executable form 229 | under the terms of Sections 1 and 2 above provided that you accompany 230 | it with the complete corresponding machine-readable source code, which 231 | must be distributed under the terms of Sections 1 and 2 above on a 232 | medium customarily used for software interchange. 233 | 234 | If distribution of object code is made by offering access to copy 235 | from a designated place, then offering equivalent access to copy the 236 | source code from the same place satisfies the requirement to 237 | distribute the source code, even though third parties are not 238 | compelled to copy the source along with the object code. 239 | 240 | 5. A program that contains no derivative of any portion of the 241 | Library, but is designed to work with the Library by being compiled or 242 | linked with it, is called a "work that uses the Library". Such a 243 | work, in isolation, is not a derivative work of the Library, and 244 | therefore falls outside the scope of this License. 245 | 246 | However, linking a "work that uses the Library" with the Library 247 | creates an executable that is a derivative of the Library (because it 248 | contains portions of the Library), rather than a "work that uses the 249 | library". The executable is therefore covered by this License. 250 | Section 6 states terms for distribution of such executables. 251 | 252 | When a "work that uses the Library" uses material from a header file 253 | that is part of the Library, the object code for the work may be a 254 | derivative work of the Library even though the source code is not. 255 | Whether this is true is especially significant if the work can be 256 | linked without the Library, or if the work is itself a library. The 257 | threshold for this to be true is not precisely defined by law. 258 | 259 | If such an object file uses only numerical parameters, data 260 | structure layouts and accessors, and small macros and small inline 261 | functions (ten lines or less in length), then the use of the object 262 | file is unrestricted, regardless of whether it is legally a derivative 263 | work. (Executables containing this object code plus portions of the 264 | Library will still fall under Section 6.) 265 | 266 | Otherwise, if the work is a derivative of the Library, you may 267 | distribute the object code for the work under the terms of Section 6. 268 | Any executables containing that work also fall under Section 6, 269 | whether or not they are linked directly with the Library itself. 270 | 271 | 6. As an exception to the Sections above, you may also combine or 272 | link a "work that uses the Library" with the Library to produce a 273 | work containing portions of the Library, and distribute that work 274 | under terms of your choice, provided that the terms permit 275 | modification of the work for the customer's own use and reverse 276 | engineering for debugging such modifications. 277 | 278 | You must give prominent notice with each copy of the work that the 279 | Library is used in it and that the Library and its use are covered by 280 | this License. You must supply a copy of this License. If the work 281 | during execution displays copyright notices, you must include the 282 | copyright notice for the Library among them, as well as a reference 283 | directing the user to the copy of this License. Also, you must do one 284 | of these things: 285 | 286 | a) Accompany the work with the complete corresponding 287 | machine-readable source code for the Library including whatever 288 | changes were used in the work (which must be distributed under 289 | Sections 1 and 2 above); and, if the work is an executable linked 290 | with the Library, with the complete machine-readable "work that 291 | uses the Library", as object code and/or source code, so that the 292 | user can modify the Library and then relink to produce a modified 293 | executable containing the modified Library. (It is understood 294 | that the user who changes the contents of definitions files in the 295 | Library will not necessarily be able to recompile the application 296 | to use the modified definitions.) 297 | 298 | b) Use a suitable shared library mechanism for linking with the 299 | Library. A suitable mechanism is one that (1) uses at run time a 300 | copy of the library already present on the user's computer system, 301 | rather than copying library functions into the executable, and (2) 302 | will operate properly with a modified version of the library, if 303 | the user installs one, as long as the modified version is 304 | interface-compatible with the version that the work was made with. 305 | 306 | c) Accompany the work with a written offer, valid for at 307 | least three years, to give the same user the materials 308 | specified in Subsection 6a, above, for a charge no more 309 | than the cost of performing this distribution. 310 | 311 | d) If distribution of the work is made by offering access to copy 312 | from a designated place, offer equivalent access to copy the above 313 | specified materials from the same place. 314 | 315 | e) Verify that the user has already received a copy of these 316 | materials or that you have already sent this user a copy. 317 | 318 | For an executable, the required form of the "work that uses the 319 | Library" must include any data and utility programs needed for 320 | reproducing the executable from it. However, as a special exception, 321 | the materials to be distributed need not include anything that is 322 | normally distributed (in either source or binary form) with the major 323 | components (compiler, kernel, and so on) of the operating system on 324 | which the executable runs, unless that component itself accompanies 325 | the executable. 326 | 327 | It may happen that this requirement contradicts the license 328 | restrictions of other proprietary libraries that do not normally 329 | accompany the operating system. Such a contradiction means you cannot 330 | use both them and the Library together in an executable that you 331 | distribute. 332 | 333 | 7. You may place library facilities that are a work based on the 334 | Library side-by-side in a single library together with other library 335 | facilities not covered by this License, and distribute such a combined 336 | library, provided that the separate distribution of the work based on 337 | the Library and of the other library facilities is otherwise 338 | permitted, and provided that you do these two things: 339 | 340 | a) Accompany the combined library with a copy of the same work 341 | based on the Library, uncombined with any other library 342 | facilities. This must be distributed under the terms of the 343 | Sections above. 344 | 345 | b) Give prominent notice with the combined library of the fact 346 | that part of it is a work based on the Library, and explaining 347 | where to find the accompanying uncombined form of the same work. 348 | 349 | 8. You may not copy, modify, sublicense, link with, or distribute 350 | the Library except as expressly provided under this License. Any 351 | attempt otherwise to copy, modify, sublicense, link with, or 352 | distribute the Library is void, and will automatically terminate your 353 | rights under this License. However, parties who have received copies, 354 | or rights, from you under this License will not have their licenses 355 | terminated so long as such parties remain in full compliance. 356 | 357 | 9. You are not required to accept this License, since you have not 358 | signed it. However, nothing else grants you permission to modify or 359 | distribute the Library or its derivative works. These actions are 360 | prohibited by law if you do not accept this License. Therefore, by 361 | modifying or distributing the Library (or any work based on the 362 | Library), you indicate your acceptance of this License to do so, and 363 | all its terms and conditions for copying, distributing or modifying 364 | the Library or works based on it. 365 | 366 | 10. Each time you redistribute the Library (or any work based on the 367 | Library), the recipient automatically receives a license from the 368 | original licensor to copy, distribute, link with or modify the Library 369 | subject to these terms and conditions. You may not impose any further 370 | restrictions on the recipients' exercise of the rights granted herein. 371 | You are not responsible for enforcing compliance by third parties with 372 | this License. 373 | 374 | 11. If, as a consequence of a court judgment or allegation of patent 375 | infringement or for any other reason (not limited to patent issues), 376 | conditions are imposed on you (whether by court order, agreement or 377 | otherwise) that contradict the conditions of this License, they do not 378 | excuse you from the conditions of this License. If you cannot 379 | distribute so as to satisfy simultaneously your obligations under this 380 | License and any other pertinent obligations, then as a consequence you 381 | may not distribute the Library at all. For example, if a patent 382 | license would not permit royalty-free redistribution of the Library by 383 | all those who receive copies directly or indirectly through you, then 384 | the only way you could satisfy both it and this License would be to 385 | refrain entirely from distribution of the Library. 386 | 387 | If any portion of this section is held invalid or unenforceable under any 388 | particular circumstance, the balance of the section is intended to apply, 389 | and the section as a whole is intended to apply in other circumstances. 390 | 391 | It is not the purpose of this section to induce you to infringe any 392 | patents or other property right claims or to contest validity of any 393 | such claims; this section has the sole purpose of protecting the 394 | integrity of the free software distribution system which is 395 | implemented by public license practices. Many people have made 396 | generous contributions to the wide range of software distributed 397 | through that system in reliance on consistent application of that 398 | system; it is up to the author/donor to decide if he or she is willing 399 | to distribute software through any other system and a licensee cannot 400 | impose that choice. 401 | 402 | This section is intended to make thoroughly clear what is believed to 403 | be a consequence of the rest of this License. 404 | 405 | 12. If the distribution and/or use of the Library is restricted in 406 | certain countries either by patents or by copyrighted interfaces, the 407 | original copyright holder who places the Library under this License may add 408 | an explicit geographical distribution limitation excluding those countries, 409 | so that distribution is permitted only in or among countries not thus 410 | excluded. In such case, this License incorporates the limitation as if 411 | written in the body of this License. 412 | 413 | 13. The Free Software Foundation may publish revised and/or new 414 | versions of the Lesser General Public License from time to time. 415 | Such new versions will be similar in spirit to the present version, 416 | but may differ in detail to address new problems or concerns. 417 | 418 | Each version is given a distinguishing version number. If the Library 419 | specifies a version number of this License which applies to it and 420 | "any later version", you have the option of following the terms and 421 | conditions either of that version or of any later version published by 422 | the Free Software Foundation. If the Library does not specify a 423 | license version number, you may choose any version ever published by 424 | the Free Software Foundation. 425 | 426 | 14. If you wish to incorporate parts of the Library into other free 427 | programs whose distribution conditions are incompatible with these, 428 | write to the author to ask for permission. For software which is 429 | copyrighted by the Free Software Foundation, write to the Free 430 | Software Foundation; we sometimes make exceptions for this. Our 431 | decision will be guided by the two goals of preserving the free status 432 | of all derivatives of our free software and of promoting the sharing 433 | and reuse of software generally. 434 | 435 | NO WARRANTY 436 | 437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 446 | 447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 456 | DAMAGES. 457 | 458 | END OF TERMS AND CONDITIONS 459 | 460 | How to Apply These Terms to Your New Libraries 461 | 462 | If you develop a new library, and you want it to be of the greatest 463 | possible use to the public, we recommend making it free software that 464 | everyone can redistribute and change. You can do so by permitting 465 | redistribution under these terms (or, alternatively, under the terms of the 466 | ordinary General Public License). 467 | 468 | To apply these terms, attach the following notices to the library. It is 469 | safest to attach them to the start of each source file to most effectively 470 | convey the exclusion of warranty; and each file should have at least the 471 | "copyright" line and a pointer to where the full notice is found. 472 | 473 | {description} 474 | Copyright (C) {year} {fullname} 475 | 476 | This library is free software; you can redistribute it and/or 477 | modify it under the terms of the GNU Lesser General Public 478 | License as published by the Free Software Foundation; either 479 | version 2.1 of the License, or (at your option) any later version. 480 | 481 | This library is distributed in the hope that it will be useful, 482 | but WITHOUT ANY WARRANTY; without even the implied warranty of 483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 484 | Lesser General Public License for more details. 485 | 486 | You should have received a copy of the GNU Lesser General Public 487 | License along with this library; if not, write to the Free Software 488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 489 | USA 490 | 491 | Also add information on how to contact you by electronic and paper mail. 492 | 493 | You should also get your employer (if you work as a programmer) or your 494 | school, if any, to sign a "copyright disclaimer" for the library, if 495 | necessary. Here is a sample; alter the names: 496 | 497 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 498 | library `Frob' (a library for tweaking knobs) written by James Random 499 | Hacker. 500 | 501 | {signature of Ty Coon}, 1 April 1990 502 | Ty Coon, President of Vice 503 | 504 | That's all there is to it! 505 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Agile Led 2 | 3 | ## 1、介绍 4 | 5 | Agile Led 是基于 RT-Thread 实现的 led 软件包,提供 led 操作的 API。 6 | 7 | ### 1.1、特性 8 | 9 | 1. 代码简洁易懂,充分使用 RT-Thread 提供的 API 10 | 2. 详细注释 11 | 3. 线程安全 12 | 4. 断言保护 13 | 5. API 操作简单 14 | 15 | ### 1.2、目录结构 16 | 17 | | 名称 | 说明 | 18 | | ---- | ---- | 19 | | doc | 文档目录 | 20 | | examples | 例子目录 | 21 | | inc | 头文件目录 | 22 | | src | 源代码目录 | 23 | 24 | ### 1.3、许可证 25 | 26 | Agile Led package 遵循 LGPLv2.1 许可,详见 `LICENSE` 文件。 27 | 28 | ### 1.4、依赖 29 | 30 | - RT-Thread 3.0+ 31 | - RT-Thread 4.0+ 32 | 33 | ## 2、如何打开 Agile Led 34 | 35 | 使用 Agile Led package 需要在 RT-Thread 的包管理器中选择它,具体路径如下: 36 | 37 | ``` 38 | RT-Thread online packages 39 | peripheral libraries and drivers ---> 40 | [*] agile_led: A agile led package 41 | ``` 42 | 43 | 然后让 RT-Thread 的包管理器自动更新,或者使用 `pkgs --update` 命令更新包到 BSP 中。 44 | 45 | ## 3、使用 Agile Led 46 | 47 | - 帮助文档请查看 [doc/doxygen/Agile_Led.chm](./doc/doxygen/Agile_Led.chm) 48 | 49 | 如果未使能 PKG_AGILE_LED_USING_THREAD_AUTO_INIT: 50 | 51 | 1. agile_led_env_init 初始化环境 52 | 53 | 2. 创建一个线程,周期调用 agile_led_process,建议周期时间不要太长 54 | 55 | - agile_led_create / agile_led_init 创建 / 初始化对象 56 | - agile_led_start 启动运行 57 | - agile_led_dynamic_change_light_mode / agile_led_static_change_light_mode 更改模式 58 | 59 | 该操作也可在启动运行前执行 60 | 61 | - 如果需要感知对象执行结束,agile_led_set_compelete_callback 设置回调函数 62 | - 过程中需要强制停止,使用 agile_led_stop 63 | - agile_led_on / agile_led_off / agile_led_toggle 单独操作对象 64 | 65 | ### 3.1、示例 66 | 67 | 使用示例在 [examples](./examples) 下。 68 | 69 | ### 3.2、Doxygen 文档生成 70 | 71 | - 使用 `Doxywizard` 打开 [Doxyfile](./doc/doxygen/Doxyfile) 运行,生成的文件在 [doxygen/output](./doc/doxygen/output) 下。 72 | - 需要更改 `Graphviz` 路径。 73 | - `HTML` 生成未使用 `chm` 格式的,如果使能需要更改 `hhc.exe` 路径。 74 | 75 | ## 4、联系方式 & 感谢 76 | 77 | - 维护:马龙伟 78 | - 主页: 79 | - 邮箱:<2544047213@qq.com> 80 | -------------------------------------------------------------------------------- /SConscript: -------------------------------------------------------------------------------- 1 | # RT-Thread building script for bridge 2 | 3 | import os 4 | from building import * 5 | 6 | cwd = GetCurrentDir() 7 | objs = [] 8 | list = os.listdir(cwd) 9 | 10 | if GetDepend('PKG_USING_AGILE_LED'): 11 | for d in list: 12 | path = os.path.join(cwd, d) 13 | if os.path.isfile(os.path.join(path, 'SConscript')): 14 | objs = objs + SConscript(os.path.join(d, 'SConscript')) 15 | 16 | Return('objs') 17 | -------------------------------------------------------------------------------- /doc/doxygen/Agile_Led.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loogg/agile_led/21b464dbdb588226155e1d6781f99ed2c0b0fbb7/doc/doxygen/Agile_Led.chm -------------------------------------------------------------------------------- /doc/doxygen/Doxyfile: -------------------------------------------------------------------------------- 1 | # Doxyfile 1.9.2 2 | 3 | # This file describes the settings to be used by the documentation system 4 | # doxygen (www.doxygen.org) for a project. 5 | # 6 | # All text after a double hash (##) is considered a comment and is placed in 7 | # front of the TAG it is preceding. 8 | # 9 | # All text after a single hash (#) is considered a comment and will be ignored. 10 | # The format is: 11 | # TAG = value [value, ...] 12 | # For lists, items can also be appended using: 13 | # TAG += value [value, ...] 14 | # Values that contain spaces should be placed between quotes (\" \"). 15 | 16 | #--------------------------------------------------------------------------- 17 | # Project related configuration options 18 | #--------------------------------------------------------------------------- 19 | 20 | # This tag specifies the encoding used for all characters in the configuration 21 | # file that follow. The default is UTF-8 which is also the encoding used for all 22 | # text before the first occurrence of this tag. Doxygen uses libiconv (or the 23 | # iconv built into libc) for the transcoding. See 24 | # https://www.gnu.org/software/libiconv/ for the list of possible encodings. 25 | # The default value is: UTF-8. 26 | 27 | DOXYFILE_ENCODING = UTF-8 28 | 29 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by 30 | # double-quotes, unless you are using Doxywizard) that should identify the 31 | # project for which the documentation is generated. This name is used in the 32 | # title of most generated pages and in a few other places. 33 | # The default value is: My Project. 34 | 35 | PROJECT_NAME = "Agile Led" 36 | 37 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. This 38 | # could be handy for archiving the generated documentation or if some version 39 | # control system is used. 40 | 41 | PROJECT_NUMBER = 1.1.1 42 | 43 | # Using the PROJECT_BRIEF tag one can provide an optional one line description 44 | # for a project that appears at the top of each page and should give viewer a 45 | # quick idea about the purpose of the project. Keep the description short. 46 | 47 | PROJECT_BRIEF = "A agile led package." 48 | 49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included 50 | # in the documentation. The maximum height of the logo should not exceed 55 51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy 52 | # the logo to the output directory. 53 | 54 | PROJECT_LOGO = 55 | 56 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path 57 | # into which the generated documentation will be written. If a relative path is 58 | # entered, it will be relative to the location where doxygen was started. If 59 | # left blank the current directory will be used. 60 | 61 | OUTPUT_DIRECTORY = . 62 | 63 | # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- 64 | # directories (in 2 levels) under the output directory of each output format and 65 | # will distribute the generated files over these directories. Enabling this 66 | # option can be useful when feeding doxygen a huge amount of source files, where 67 | # putting all generated files in the same directory would otherwise causes 68 | # performance problems for the file system. 69 | # The default value is: NO. 70 | 71 | CREATE_SUBDIRS = NO 72 | 73 | # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII 74 | # characters to appear in the names of generated files. If set to NO, non-ASCII 75 | # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode 76 | # U+3044. 77 | # The default value is: NO. 78 | 79 | ALLOW_UNICODE_NAMES = NO 80 | 81 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all 82 | # documentation generated by doxygen is written. Doxygen will use this 83 | # information to generate all constant output in the proper language. 84 | # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, 85 | # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), 86 | # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, 87 | # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), 88 | # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, 89 | # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, 90 | # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, 91 | # Ukrainian and Vietnamese. 92 | # The default value is: English. 93 | 94 | OUTPUT_LANGUAGE = Chinese 95 | 96 | # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member 97 | # descriptions after the members that are listed in the file and class 98 | # documentation (similar to Javadoc). Set to NO to disable this. 99 | # The default value is: YES. 100 | 101 | BRIEF_MEMBER_DESC = YES 102 | 103 | # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief 104 | # description of a member or function before the detailed description 105 | # 106 | # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 107 | # brief descriptions will be completely suppressed. 108 | # The default value is: YES. 109 | 110 | REPEAT_BRIEF = YES 111 | 112 | # This tag implements a quasi-intelligent brief description abbreviator that is 113 | # used to form the text in various listings. Each string in this list, if found 114 | # as the leading text of the brief description, will be stripped from the text 115 | # and the result, after processing the whole list, is used as the annotated 116 | # text. Otherwise, the brief description is used as-is. If left blank, the 117 | # following values are used ($name is automatically replaced with the name of 118 | # the entity):The $name class, The $name widget, The $name file, is, provides, 119 | # specifies, contains, represents, a, an and the. 120 | 121 | ABBREVIATE_BRIEF = "The $name class" \ 122 | "The $name widget" \ 123 | "The $name file" \ 124 | is \ 125 | provides \ 126 | specifies \ 127 | contains \ 128 | represents \ 129 | a \ 130 | an \ 131 | the 132 | 133 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 134 | # doxygen will generate a detailed section even if there is only a brief 135 | # description. 136 | # The default value is: NO. 137 | 138 | ALWAYS_DETAILED_SEC = NO 139 | 140 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 141 | # inherited members of a class in the documentation of that class as if those 142 | # members were ordinary class members. Constructors, destructors and assignment 143 | # operators of the base classes will not be shown. 144 | # The default value is: NO. 145 | 146 | INLINE_INHERITED_MEMB = NO 147 | 148 | # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path 149 | # before files name in the file list and in the header files. If set to NO the 150 | # shortest path that makes the file name unique will be used 151 | # The default value is: YES. 152 | 153 | FULL_PATH_NAMES = YES 154 | 155 | # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. 156 | # Stripping is only done if one of the specified strings matches the left-hand 157 | # part of the path. The tag can be used to show relative paths in the file list. 158 | # If left blank the directory from which doxygen is run is used as the path to 159 | # strip. 160 | # 161 | # Note that you can specify absolute paths here, but also relative paths, which 162 | # will be relative from the directory where doxygen is started. 163 | # This tag requires that the tag FULL_PATH_NAMES is set to YES. 164 | 165 | STRIP_FROM_PATH = 166 | 167 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 168 | # path mentioned in the documentation of a class, which tells the reader which 169 | # header file to include in order to use a class. If left blank only the name of 170 | # the header file containing the class definition is used. Otherwise one should 171 | # specify the list of include paths that are normally passed to the compiler 172 | # using the -I flag. 173 | 174 | STRIP_FROM_INC_PATH = 175 | 176 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but 177 | # less readable) file names. This can be useful is your file systems doesn't 178 | # support long names like on DOS, Mac, or CD-ROM. 179 | # The default value is: NO. 180 | 181 | SHORT_NAMES = NO 182 | 183 | # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the 184 | # first line (until the first dot) of a Javadoc-style comment as the brief 185 | # description. If set to NO, the Javadoc-style will behave just like regular Qt- 186 | # style comments (thus requiring an explicit @brief command for a brief 187 | # description.) 188 | # The default value is: NO. 189 | 190 | JAVADOC_AUTOBRIEF = YES 191 | 192 | # If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line 193 | # such as 194 | # /*************** 195 | # as being the beginning of a Javadoc-style comment "banner". If set to NO, the 196 | # Javadoc-style will behave just like regular comments and it will not be 197 | # interpreted by doxygen. 198 | # The default value is: NO. 199 | 200 | JAVADOC_BANNER = NO 201 | 202 | # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first 203 | # line (until the first dot) of a Qt-style comment as the brief description. If 204 | # set to NO, the Qt-style will behave just like regular Qt-style comments (thus 205 | # requiring an explicit \brief command for a brief description.) 206 | # The default value is: NO. 207 | 208 | QT_AUTOBRIEF = NO 209 | 210 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a 211 | # multi-line C++ special comment block (i.e. a block of //! or /// comments) as 212 | # a brief description. This used to be the default behavior. The new default is 213 | # to treat a multi-line C++ comment block as a detailed description. Set this 214 | # tag to YES if you prefer the old behavior instead. 215 | # 216 | # Note that setting this tag to YES also means that rational rose comments are 217 | # not recognized any more. 218 | # The default value is: NO. 219 | 220 | MULTILINE_CPP_IS_BRIEF = NO 221 | 222 | # By default Python docstrings are displayed as preformatted text and doxygen's 223 | # special commands cannot be used. By setting PYTHON_DOCSTRING to NO the 224 | # doxygen's special commands can be used and the contents of the docstring 225 | # documentation blocks is shown as doxygen documentation. 226 | # The default value is: YES. 227 | 228 | PYTHON_DOCSTRING = YES 229 | 230 | # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the 231 | # documentation from any documented member that it re-implements. 232 | # The default value is: YES. 233 | 234 | INHERIT_DOCS = YES 235 | 236 | # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new 237 | # page for each member. If set to NO, the documentation of a member will be part 238 | # of the file/class/namespace that contains it. 239 | # The default value is: NO. 240 | 241 | SEPARATE_MEMBER_PAGES = NO 242 | 243 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen 244 | # uses this value to replace tabs by spaces in code fragments. 245 | # Minimum value: 1, maximum value: 16, default value: 4. 246 | 247 | TAB_SIZE = 4 248 | 249 | # This tag can be used to specify a number of aliases that act as commands in 250 | # the documentation. An alias has the form: 251 | # name=value 252 | # For example adding 253 | # "sideeffect=@par Side Effects:^^" 254 | # will allow you to put the command \sideeffect (or @sideeffect) in the 255 | # documentation, which will result in a user-defined paragraph with heading 256 | # "Side Effects:". Note that you cannot put \n's in the value part of an alias 257 | # to insert newlines (in the resulting output). You can put ^^ in the value part 258 | # of an alias to insert a newline as if a physical newline was in the original 259 | # file. When you need a literal { or } or , in the value part of an alias you 260 | # have to escape them by means of a backslash (\), this can lead to conflicts 261 | # with the commands \{ and \} for these it is advised to use the version @{ and 262 | # @} or use a double escape (\\{ and \\}) 263 | 264 | ALIASES = 265 | 266 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 267 | # only. Doxygen will then generate output that is more tailored for C. For 268 | # instance, some of the names that are used will be different. The list of all 269 | # members will be omitted, etc. 270 | # The default value is: NO. 271 | 272 | OPTIMIZE_OUTPUT_FOR_C = YES 273 | 274 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or 275 | # Python sources only. Doxygen will then generate output that is more tailored 276 | # for that language. For instance, namespaces will be presented as packages, 277 | # qualified scopes will look different, etc. 278 | # The default value is: NO. 279 | 280 | OPTIMIZE_OUTPUT_JAVA = NO 281 | 282 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 283 | # sources. Doxygen will then generate output that is tailored for Fortran. 284 | # The default value is: NO. 285 | 286 | OPTIMIZE_FOR_FORTRAN = NO 287 | 288 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 289 | # sources. Doxygen will then generate output that is tailored for VHDL. 290 | # The default value is: NO. 291 | 292 | OPTIMIZE_OUTPUT_VHDL = NO 293 | 294 | # Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice 295 | # sources only. Doxygen will then generate output that is more tailored for that 296 | # language. For instance, namespaces will be presented as modules, types will be 297 | # separated into more groups, etc. 298 | # The default value is: NO. 299 | 300 | OPTIMIZE_OUTPUT_SLICE = NO 301 | 302 | # Doxygen selects the parser to use depending on the extension of the files it 303 | # parses. With this tag you can assign which parser to use for a given 304 | # extension. Doxygen has a built-in mapping, but you can override or extend it 305 | # using this tag. The format is ext=language, where ext is a file extension, and 306 | # language is one of the parsers supported by doxygen: IDL, Java, JavaScript, 307 | # Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, 308 | # VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: 309 | # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser 310 | # tries to guess whether the code is fixed or free formatted code, this is the 311 | # default for Fortran type files). For instance to make doxygen treat .inc files 312 | # as Fortran files (default is PHP), and .f files as C (default is Fortran), 313 | # use: inc=Fortran f=C. 314 | # 315 | # Note: For files without extension you can use no_extension as a placeholder. 316 | # 317 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise 318 | # the files are not read by doxygen. When specifying no_extension you should add 319 | # * to the FILE_PATTERNS. 320 | # 321 | # Note see also the list of default file extension mappings. 322 | 323 | EXTENSION_MAPPING = 324 | 325 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments 326 | # according to the Markdown format, which allows for more readable 327 | # documentation. See https://daringfireball.net/projects/markdown/ for details. 328 | # The output of markdown processing is further processed by doxygen, so you can 329 | # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in 330 | # case of backward compatibilities issues. 331 | # The default value is: YES. 332 | 333 | MARKDOWN_SUPPORT = YES 334 | 335 | # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up 336 | # to that level are automatically included in the table of contents, even if 337 | # they do not have an id attribute. 338 | # Note: This feature currently applies only to Markdown headings. 339 | # Minimum value: 0, maximum value: 99, default value: 5. 340 | # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. 341 | 342 | TOC_INCLUDE_HEADINGS = 5 343 | 344 | # When enabled doxygen tries to link words that correspond to documented 345 | # classes, or namespaces to their corresponding documentation. Such a link can 346 | # be prevented in individual cases by putting a % sign in front of the word or 347 | # globally by setting AUTOLINK_SUPPORT to NO. 348 | # The default value is: YES. 349 | 350 | AUTOLINK_SUPPORT = YES 351 | 352 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 353 | # to include (a tag file for) the STL sources as input, then you should set this 354 | # tag to YES in order to let doxygen match functions declarations and 355 | # definitions whose arguments contain STL classes (e.g. func(std::string); 356 | # versus func(std::string) {}). This also make the inheritance and collaboration 357 | # diagrams that involve STL classes more complete and accurate. 358 | # The default value is: NO. 359 | 360 | BUILTIN_STL_SUPPORT = NO 361 | 362 | # If you use Microsoft's C++/CLI language, you should set this option to YES to 363 | # enable parsing support. 364 | # The default value is: NO. 365 | 366 | CPP_CLI_SUPPORT = NO 367 | 368 | # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: 369 | # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen 370 | # will parse them like normal C++ but will assume all classes use public instead 371 | # of private inheritance when no explicit protection keyword is present. 372 | # The default value is: NO. 373 | 374 | SIP_SUPPORT = NO 375 | 376 | # For Microsoft's IDL there are propget and propput attributes to indicate 377 | # getter and setter methods for a property. Setting this option to YES will make 378 | # doxygen to replace the get and set methods by a property in the documentation. 379 | # This will only work if the methods are indeed getting or setting a simple 380 | # type. If this is not the case, or you want to show the methods anyway, you 381 | # should set this option to NO. 382 | # The default value is: YES. 383 | 384 | IDL_PROPERTY_SUPPORT = YES 385 | 386 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 387 | # tag is set to YES then doxygen will reuse the documentation of the first 388 | # member in the group (if any) for the other members of the group. By default 389 | # all members of a group must be documented explicitly. 390 | # The default value is: NO. 391 | 392 | DISTRIBUTE_GROUP_DOC = NO 393 | 394 | # If one adds a struct or class to a group and this option is enabled, then also 395 | # any nested class or struct is added to the same group. By default this option 396 | # is disabled and one has to add nested compounds explicitly via \ingroup. 397 | # The default value is: NO. 398 | 399 | GROUP_NESTED_COMPOUNDS = NO 400 | 401 | # Set the SUBGROUPING tag to YES to allow class member groups of the same type 402 | # (for instance a group of public functions) to be put as a subgroup of that 403 | # type (e.g. under the Public Functions section). Set it to NO to prevent 404 | # subgrouping. Alternatively, this can be done per class using the 405 | # \nosubgrouping command. 406 | # The default value is: YES. 407 | 408 | SUBGROUPING = YES 409 | 410 | # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions 411 | # are shown inside the group in which they are included (e.g. using \ingroup) 412 | # instead of on a separate page (for HTML and Man pages) or section (for LaTeX 413 | # and RTF). 414 | # 415 | # Note that this feature does not work in combination with 416 | # SEPARATE_MEMBER_PAGES. 417 | # The default value is: NO. 418 | 419 | INLINE_GROUPED_CLASSES = NO 420 | 421 | # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions 422 | # with only public data fields or simple typedef fields will be shown inline in 423 | # the documentation of the scope in which they are defined (i.e. file, 424 | # namespace, or group documentation), provided this scope is documented. If set 425 | # to NO, structs, classes, and unions are shown on a separate page (for HTML and 426 | # Man pages) or section (for LaTeX and RTF). 427 | # The default value is: NO. 428 | 429 | INLINE_SIMPLE_STRUCTS = NO 430 | 431 | # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or 432 | # enum is documented as struct, union, or enum with the name of the typedef. So 433 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct 434 | # with name TypeT. When disabled the typedef will appear as a member of a file, 435 | # namespace, or class. And the struct will be named TypeS. This can typically be 436 | # useful for C code in case the coding convention dictates that all compound 437 | # types are typedef'ed and only the typedef is referenced, never the tag name. 438 | # The default value is: NO. 439 | 440 | TYPEDEF_HIDES_STRUCT = NO 441 | 442 | # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This 443 | # cache is used to resolve symbols given their name and scope. Since this can be 444 | # an expensive process and often the same symbol appears multiple times in the 445 | # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small 446 | # doxygen will become slower. If the cache is too large, memory is wasted. The 447 | # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range 448 | # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 449 | # symbols. At the end of a run doxygen will report the cache usage and suggest 450 | # the optimal cache size from a speed point of view. 451 | # Minimum value: 0, maximum value: 9, default value: 0. 452 | 453 | LOOKUP_CACHE_SIZE = 0 454 | 455 | # The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use 456 | # during processing. When set to 0 doxygen will based this on the number of 457 | # cores available in the system. You can set it explicitly to a value larger 458 | # than 0 to get more control over the balance between CPU load and processing 459 | # speed. At this moment only the input processing can be done using multiple 460 | # threads. Since this is still an experimental feature the default is set to 1, 461 | # which effectively disables parallel processing. Please report any issues you 462 | # encounter. Generating dot graphs in parallel is controlled by the 463 | # DOT_NUM_THREADS setting. 464 | # Minimum value: 0, maximum value: 32, default value: 1. 465 | 466 | NUM_PROC_THREADS = 1 467 | 468 | #--------------------------------------------------------------------------- 469 | # Build related configuration options 470 | #--------------------------------------------------------------------------- 471 | 472 | # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in 473 | # documentation are documented, even if no documentation was available. Private 474 | # class members and static file members will be hidden unless the 475 | # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. 476 | # Note: This will also disable the warnings about undocumented members that are 477 | # normally produced when WARNINGS is set to YES. 478 | # The default value is: NO. 479 | 480 | EXTRACT_ALL = YES 481 | 482 | # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will 483 | # be included in the documentation. 484 | # The default value is: NO. 485 | 486 | EXTRACT_PRIVATE = YES 487 | 488 | # If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual 489 | # methods of a class will be included in the documentation. 490 | # The default value is: NO. 491 | 492 | EXTRACT_PRIV_VIRTUAL = YES 493 | 494 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal 495 | # scope will be included in the documentation. 496 | # The default value is: NO. 497 | 498 | EXTRACT_PACKAGE = YES 499 | 500 | # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be 501 | # included in the documentation. 502 | # The default value is: NO. 503 | 504 | EXTRACT_STATIC = YES 505 | 506 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined 507 | # locally in source files will be included in the documentation. If set to NO, 508 | # only classes defined in header files are included. Does not have any effect 509 | # for Java sources. 510 | # The default value is: YES. 511 | 512 | EXTRACT_LOCAL_CLASSES = YES 513 | 514 | # This flag is only useful for Objective-C code. If set to YES, local methods, 515 | # which are defined in the implementation section but not in the interface are 516 | # included in the documentation. If set to NO, only methods in the interface are 517 | # included. 518 | # The default value is: NO. 519 | 520 | EXTRACT_LOCAL_METHODS = YES 521 | 522 | # If this flag is set to YES, the members of anonymous namespaces will be 523 | # extracted and appear in the documentation as a namespace called 524 | # 'anonymous_namespace{file}', where file will be replaced with the base name of 525 | # the file that contains the anonymous namespace. By default anonymous namespace 526 | # are hidden. 527 | # The default value is: NO. 528 | 529 | EXTRACT_ANON_NSPACES = YES 530 | 531 | # If this flag is set to YES, the name of an unnamed parameter in a declaration 532 | # will be determined by the corresponding definition. By default unnamed 533 | # parameters remain unnamed in the output. 534 | # The default value is: YES. 535 | 536 | RESOLVE_UNNAMED_PARAMS = YES 537 | 538 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all 539 | # undocumented members inside documented classes or files. If set to NO these 540 | # members will be included in the various overviews, but no documentation 541 | # section is generated. This option has no effect if EXTRACT_ALL is enabled. 542 | # The default value is: NO. 543 | 544 | HIDE_UNDOC_MEMBERS = YES 545 | 546 | # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all 547 | # undocumented classes that are normally visible in the class hierarchy. If set 548 | # to NO, these classes will be included in the various overviews. This option 549 | # has no effect if EXTRACT_ALL is enabled. 550 | # The default value is: NO. 551 | 552 | HIDE_UNDOC_CLASSES = NO 553 | 554 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend 555 | # declarations. If set to NO, these declarations will be included in the 556 | # documentation. 557 | # The default value is: NO. 558 | 559 | HIDE_FRIEND_COMPOUNDS = NO 560 | 561 | # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any 562 | # documentation blocks found inside the body of a function. If set to NO, these 563 | # blocks will be appended to the function's detailed documentation block. 564 | # The default value is: NO. 565 | 566 | HIDE_IN_BODY_DOCS = NO 567 | 568 | # The INTERNAL_DOCS tag determines if documentation that is typed after a 569 | # \internal command is included. If the tag is set to NO then the documentation 570 | # will be excluded. Set it to YES to include the internal documentation. 571 | # The default value is: NO. 572 | 573 | INTERNAL_DOCS = NO 574 | 575 | # With the correct setting of option CASE_SENSE_NAMES doxygen will better be 576 | # able to match the capabilities of the underlying filesystem. In case the 577 | # filesystem is case sensitive (i.e. it supports files in the same directory 578 | # whose names only differ in casing), the option must be set to YES to properly 579 | # deal with such files in case they appear in the input. For filesystems that 580 | # are not case sensitive the option should be be set to NO to properly deal with 581 | # output files written for symbols that only differ in casing, such as for two 582 | # classes, one named CLASS and the other named Class, and to also support 583 | # references to files without having to specify the exact matching casing. On 584 | # Windows (including Cygwin) and MacOS, users should typically set this option 585 | # to NO, whereas on Linux or other Unix flavors it should typically be set to 586 | # YES. 587 | # The default value is: system dependent. 588 | 589 | CASE_SENSE_NAMES = NO 590 | 591 | # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with 592 | # their full class and namespace scopes in the documentation. If set to YES, the 593 | # scope will be hidden. 594 | # The default value is: NO. 595 | 596 | HIDE_SCOPE_NAMES = NO 597 | 598 | # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will 599 | # append additional text to a page's title, such as Class Reference. If set to 600 | # YES the compound reference will be hidden. 601 | # The default value is: NO. 602 | 603 | HIDE_COMPOUND_REFERENCE= NO 604 | 605 | # If the SHOW_HEADERFILE tag is set to YES then the documentation for a class 606 | # will show which file needs to be included to use the class. 607 | # The default value is: YES. 608 | 609 | SHOW_HEADERFILE = YES 610 | 611 | # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of 612 | # the files that are included by a file in the documentation of that file. 613 | # The default value is: YES. 614 | 615 | SHOW_INCLUDE_FILES = YES 616 | 617 | # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each 618 | # grouped member an include statement to the documentation, telling the reader 619 | # which file to include in order to use the member. 620 | # The default value is: NO. 621 | 622 | SHOW_GROUPED_MEMB_INC = NO 623 | 624 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include 625 | # files with double quotes in the documentation rather than with sharp brackets. 626 | # The default value is: NO. 627 | 628 | FORCE_LOCAL_INCLUDES = NO 629 | 630 | # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the 631 | # documentation for inline members. 632 | # The default value is: YES. 633 | 634 | INLINE_INFO = YES 635 | 636 | # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the 637 | # (detailed) documentation of file and class members alphabetically by member 638 | # name. If set to NO, the members will appear in declaration order. 639 | # The default value is: YES. 640 | 641 | SORT_MEMBER_DOCS = YES 642 | 643 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief 644 | # descriptions of file, namespace and class members alphabetically by member 645 | # name. If set to NO, the members will appear in declaration order. Note that 646 | # this will also influence the order of the classes in the class list. 647 | # The default value is: NO. 648 | 649 | SORT_BRIEF_DOCS = NO 650 | 651 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the 652 | # (brief and detailed) documentation of class members so that constructors and 653 | # destructors are listed first. If set to NO the constructors will appear in the 654 | # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. 655 | # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief 656 | # member documentation. 657 | # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting 658 | # detailed member documentation. 659 | # The default value is: NO. 660 | 661 | SORT_MEMBERS_CTORS_1ST = NO 662 | 663 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy 664 | # of group names into alphabetical order. If set to NO the group names will 665 | # appear in their defined order. 666 | # The default value is: NO. 667 | 668 | SORT_GROUP_NAMES = NO 669 | 670 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by 671 | # fully-qualified names, including namespaces. If set to NO, the class list will 672 | # be sorted only by class name, not including the namespace part. 673 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 674 | # Note: This option applies only to the class list, not to the alphabetical 675 | # list. 676 | # The default value is: NO. 677 | 678 | SORT_BY_SCOPE_NAME = NO 679 | 680 | # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper 681 | # type resolution of all parameters of a function it will reject a match between 682 | # the prototype and the implementation of a member function even if there is 683 | # only one candidate or it is obvious which candidate to choose by doing a 684 | # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still 685 | # accept a match between prototype and implementation in such cases. 686 | # The default value is: NO. 687 | 688 | STRICT_PROTO_MATCHING = NO 689 | 690 | # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo 691 | # list. This list is created by putting \todo commands in the documentation. 692 | # The default value is: YES. 693 | 694 | GENERATE_TODOLIST = YES 695 | 696 | # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test 697 | # list. This list is created by putting \test commands in the documentation. 698 | # The default value is: YES. 699 | 700 | GENERATE_TESTLIST = YES 701 | 702 | # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug 703 | # list. This list is created by putting \bug commands in the documentation. 704 | # The default value is: YES. 705 | 706 | GENERATE_BUGLIST = YES 707 | 708 | # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) 709 | # the deprecated list. This list is created by putting \deprecated commands in 710 | # the documentation. 711 | # The default value is: YES. 712 | 713 | GENERATE_DEPRECATEDLIST= YES 714 | 715 | # The ENABLED_SECTIONS tag can be used to enable conditional documentation 716 | # sections, marked by \if ... \endif and \cond 717 | # ... \endcond blocks. 718 | 719 | ENABLED_SECTIONS = 720 | 721 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the 722 | # initial value of a variable or macro / define can have for it to appear in the 723 | # documentation. If the initializer consists of more lines than specified here 724 | # it will be hidden. Use a value of 0 to hide initializers completely. The 725 | # appearance of the value of individual variables and macros / defines can be 726 | # controlled using \showinitializer or \hideinitializer command in the 727 | # documentation regardless of this setting. 728 | # Minimum value: 0, maximum value: 10000, default value: 30. 729 | 730 | MAX_INITIALIZER_LINES = 30 731 | 732 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at 733 | # the bottom of the documentation of classes and structs. If set to YES, the 734 | # list will mention the files that were used to generate the documentation. 735 | # The default value is: YES. 736 | 737 | SHOW_USED_FILES = YES 738 | 739 | # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This 740 | # will remove the Files entry from the Quick Index and from the Folder Tree View 741 | # (if specified). 742 | # The default value is: YES. 743 | 744 | SHOW_FILES = YES 745 | 746 | # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces 747 | # page. This will remove the Namespaces entry from the Quick Index and from the 748 | # Folder Tree View (if specified). 749 | # The default value is: YES. 750 | 751 | SHOW_NAMESPACES = YES 752 | 753 | # The FILE_VERSION_FILTER tag can be used to specify a program or script that 754 | # doxygen should invoke to get the current version for each file (typically from 755 | # the version control system). Doxygen will invoke the program by executing (via 756 | # popen()) the command command input-file, where command is the value of the 757 | # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided 758 | # by doxygen. Whatever the program writes to standard output is used as the file 759 | # version. For an example see the documentation. 760 | 761 | FILE_VERSION_FILTER = 762 | 763 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 764 | # by doxygen. The layout file controls the global structure of the generated 765 | # output files in an output format independent way. To create the layout file 766 | # that represents doxygen's defaults, run doxygen with the -l option. You can 767 | # optionally specify a file name after the option, if omitted DoxygenLayout.xml 768 | # will be used as the name of the layout file. See also section "Changing the 769 | # layout of pages" for information. 770 | # 771 | # Note that if you run doxygen from a directory containing a file called 772 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE 773 | # tag is left empty. 774 | 775 | LAYOUT_FILE = 776 | 777 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing 778 | # the reference definitions. This must be a list of .bib files. The .bib 779 | # extension is automatically appended if omitted. This requires the bibtex tool 780 | # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. 781 | # For LaTeX the style of the bibliography can be controlled using 782 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the 783 | # search path. See also \cite for info how to create references. 784 | 785 | CITE_BIB_FILES = 786 | 787 | #--------------------------------------------------------------------------- 788 | # Configuration options related to warning and progress messages 789 | #--------------------------------------------------------------------------- 790 | 791 | # The QUIET tag can be used to turn on/off the messages that are generated to 792 | # standard output by doxygen. If QUIET is set to YES this implies that the 793 | # messages are off. 794 | # The default value is: NO. 795 | 796 | QUIET = NO 797 | 798 | # The WARNINGS tag can be used to turn on/off the warning messages that are 799 | # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES 800 | # this implies that the warnings are on. 801 | # 802 | # Tip: Turn warnings on while writing the documentation. 803 | # The default value is: YES. 804 | 805 | WARNINGS = YES 806 | 807 | # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate 808 | # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag 809 | # will automatically be disabled. 810 | # The default value is: YES. 811 | 812 | WARN_IF_UNDOCUMENTED = YES 813 | 814 | # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for 815 | # potential errors in the documentation, such as documenting some parameters in 816 | # a documented function twice, or documenting parameters that don't exist or 817 | # using markup commands wrongly. 818 | # The default value is: YES. 819 | 820 | WARN_IF_DOC_ERROR = YES 821 | 822 | # If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete 823 | # function parameter documentation. If set to NO, doxygen will accept that some 824 | # parameters have no documentation without warning. 825 | # The default value is: YES. 826 | 827 | WARN_IF_INCOMPLETE_DOC = YES 828 | 829 | # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that 830 | # are documented, but have no documentation for their parameters or return 831 | # value. If set to NO, doxygen will only warn about wrong parameter 832 | # documentation, but not about the absence of documentation. If EXTRACT_ALL is 833 | # set to YES then this flag will automatically be disabled. See also 834 | # WARN_IF_INCOMPLETE_DOC 835 | # The default value is: NO. 836 | 837 | WARN_NO_PARAMDOC = NO 838 | 839 | # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when 840 | # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS 841 | # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but 842 | # at the end of the doxygen process doxygen will return with a non-zero status. 843 | # Possible values are: NO, YES and FAIL_ON_WARNINGS. 844 | # The default value is: NO. 845 | 846 | WARN_AS_ERROR = NO 847 | 848 | # The WARN_FORMAT tag determines the format of the warning messages that doxygen 849 | # can produce. The string should contain the $file, $line, and $text tags, which 850 | # will be replaced by the file and line number from which the warning originated 851 | # and the warning text. Optionally the format may contain $version, which will 852 | # be replaced by the version of the file (if it could be obtained via 853 | # FILE_VERSION_FILTER) 854 | # The default value is: $file:$line: $text. 855 | 856 | WARN_FORMAT = "$file:$line: $text" 857 | 858 | # The WARN_LOGFILE tag can be used to specify a file to which warning and error 859 | # messages should be written. If left blank the output is written to standard 860 | # error (stderr). 861 | 862 | WARN_LOGFILE = 863 | 864 | #--------------------------------------------------------------------------- 865 | # Configuration options related to the input files 866 | #--------------------------------------------------------------------------- 867 | 868 | # The INPUT tag is used to specify the files and/or directories that contain 869 | # documented source files. You may enter file names like myfile.cpp or 870 | # directories like /usr/src/myproject. Separate the files or directories with 871 | # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING 872 | # Note: If this tag is empty the current directory is searched. 873 | 874 | INPUT = ../.. 875 | 876 | # This tag can be used to specify the character encoding of the source files 877 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses 878 | # libiconv (or the iconv built into libc) for the transcoding. See the libiconv 879 | # documentation (see: 880 | # https://www.gnu.org/software/libiconv/) for the list of possible encodings. 881 | # The default value is: UTF-8. 882 | 883 | INPUT_ENCODING = UTF-8 884 | 885 | # If the value of the INPUT tag contains directories, you can use the 886 | # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and 887 | # *.h) to filter out the source-files in the directories. 888 | # 889 | # Note that for custom extensions or not directly supported extensions you also 890 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not 891 | # read by doxygen. 892 | # 893 | # Note the list of default checked file patterns might differ from the list of 894 | # default file extension mappings. 895 | # 896 | # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, 897 | # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, 898 | # *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, 899 | # *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C 900 | # comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, 901 | # *.vhdl, *.ucf, *.qsf and *.ice. 902 | 903 | FILE_PATTERNS = *.c \ 904 | *.cc \ 905 | *.cxx \ 906 | *.cpp \ 907 | *.c++ \ 908 | *.java \ 909 | *.ii \ 910 | *.ixx \ 911 | *.ipp \ 912 | *.i++ \ 913 | *.inl \ 914 | *.idl \ 915 | *.ddl \ 916 | *.odl \ 917 | *.h \ 918 | *.hh \ 919 | *.hxx \ 920 | *.hpp \ 921 | *.h++ \ 922 | *.l \ 923 | *.cs \ 924 | *.d \ 925 | *.php \ 926 | *.php4 \ 927 | *.php5 \ 928 | *.phtml \ 929 | *.inc \ 930 | *.m \ 931 | *.markdown \ 932 | *.md \ 933 | *.mm \ 934 | *.dox \ 935 | *.py \ 936 | *.pyw \ 937 | *.f90 \ 938 | *.f95 \ 939 | *.f03 \ 940 | *.f08 \ 941 | *.f18 \ 942 | *.f \ 943 | *.for \ 944 | *.vhd \ 945 | *.vhdl \ 946 | *.ucf \ 947 | *.qsf \ 948 | *.ice 949 | 950 | # The RECURSIVE tag can be used to specify whether or not subdirectories should 951 | # be searched for input files as well. 952 | # The default value is: NO. 953 | 954 | RECURSIVE = YES 955 | 956 | # The EXCLUDE tag can be used to specify files and/or directories that should be 957 | # excluded from the INPUT source files. This way you can easily exclude a 958 | # subdirectory from a directory tree whose root is specified with the INPUT tag. 959 | # 960 | # Note that relative paths are relative to the directory from which doxygen is 961 | # run. 962 | 963 | EXCLUDE = ../../examples/example_agile_led.c 964 | 965 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or 966 | # directories that are symbolic links (a Unix file system feature) are excluded 967 | # from the input. 968 | # The default value is: NO. 969 | 970 | EXCLUDE_SYMLINKS = NO 971 | 972 | # If the value of the INPUT tag contains directories, you can use the 973 | # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 974 | # certain files from those directories. 975 | # 976 | # Note that the wildcards are matched against the file with absolute path, so to 977 | # exclude all test directories for example use the pattern */test/* 978 | 979 | EXCLUDE_PATTERNS = 980 | 981 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 982 | # (namespaces, classes, functions, etc.) that should be excluded from the 983 | # output. The symbol name can be a fully qualified name, a word, or if the 984 | # wildcard * is used, a substring. Examples: ANamespace, AClass, 985 | # AClass::ANamespace, ANamespace::*Test 986 | # 987 | # Note that the wildcards are matched against the file with absolute path, so to 988 | # exclude all test directories use the pattern */test/* 989 | 990 | EXCLUDE_SYMBOLS = 991 | 992 | # The EXAMPLE_PATH tag can be used to specify one or more files or directories 993 | # that contain example code fragments that are included (see the \include 994 | # command). 995 | 996 | EXAMPLE_PATH = 997 | 998 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the 999 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and 1000 | # *.h) to filter out the source-files in the directories. If left blank all 1001 | # files are included. 1002 | 1003 | EXAMPLE_PATTERNS = * 1004 | 1005 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 1006 | # searched for input files to be used with the \include or \dontinclude commands 1007 | # irrespective of the value of the RECURSIVE tag. 1008 | # The default value is: NO. 1009 | 1010 | EXAMPLE_RECURSIVE = NO 1011 | 1012 | # The IMAGE_PATH tag can be used to specify one or more files or directories 1013 | # that contain images that are to be included in the documentation (see the 1014 | # \image command). 1015 | 1016 | IMAGE_PATH = 1017 | 1018 | # The INPUT_FILTER tag can be used to specify a program that doxygen should 1019 | # invoke to filter for each input file. Doxygen will invoke the filter program 1020 | # by executing (via popen()) the command: 1021 | # 1022 | # 1023 | # 1024 | # where is the value of the INPUT_FILTER tag, and is the 1025 | # name of an input file. Doxygen will then use the output that the filter 1026 | # program writes to standard output. If FILTER_PATTERNS is specified, this tag 1027 | # will be ignored. 1028 | # 1029 | # Note that the filter must not add or remove lines; it is applied before the 1030 | # code is scanned, but not when the output code is generated. If lines are added 1031 | # or removed, the anchors will not be placed correctly. 1032 | # 1033 | # Note that for custom extensions or not directly supported extensions you also 1034 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not 1035 | # properly processed by doxygen. 1036 | 1037 | INPUT_FILTER = 1038 | 1039 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 1040 | # basis. Doxygen will compare the file name with each pattern and apply the 1041 | # filter if there is a match. The filters are a list of the form: pattern=filter 1042 | # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how 1043 | # filters are used. If the FILTER_PATTERNS tag is empty or if none of the 1044 | # patterns match the file name, INPUT_FILTER is applied. 1045 | # 1046 | # Note that for custom extensions or not directly supported extensions you also 1047 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not 1048 | # properly processed by doxygen. 1049 | 1050 | FILTER_PATTERNS = 1051 | 1052 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 1053 | # INPUT_FILTER) will also be used to filter the input files that are used for 1054 | # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). 1055 | # The default value is: NO. 1056 | 1057 | FILTER_SOURCE_FILES = NO 1058 | 1059 | # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 1060 | # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and 1061 | # it is also possible to disable source filtering for a specific pattern using 1062 | # *.ext= (so without naming a filter). 1063 | # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. 1064 | 1065 | FILTER_SOURCE_PATTERNS = 1066 | 1067 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that 1068 | # is part of the input, its contents will be placed on the main page 1069 | # (index.html). This can be useful if you have a project on for instance GitHub 1070 | # and want to reuse the introduction page also for the doxygen output. 1071 | 1072 | USE_MDFILE_AS_MAINPAGE = ../../README.md 1073 | 1074 | #--------------------------------------------------------------------------- 1075 | # Configuration options related to source browsing 1076 | #--------------------------------------------------------------------------- 1077 | 1078 | # If the SOURCE_BROWSER tag is set to YES then a list of source files will be 1079 | # generated. Documented entities will be cross-referenced with these sources. 1080 | # 1081 | # Note: To get rid of all source code in the generated output, make sure that 1082 | # also VERBATIM_HEADERS is set to NO. 1083 | # The default value is: NO. 1084 | 1085 | SOURCE_BROWSER = YES 1086 | 1087 | # Setting the INLINE_SOURCES tag to YES will include the body of functions, 1088 | # classes and enums directly into the documentation. 1089 | # The default value is: NO. 1090 | 1091 | INLINE_SOURCES = NO 1092 | 1093 | # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any 1094 | # special comment blocks from generated source code fragments. Normal C, C++ and 1095 | # Fortran comments will always remain visible. 1096 | # The default value is: YES. 1097 | 1098 | STRIP_CODE_COMMENTS = YES 1099 | 1100 | # If the REFERENCED_BY_RELATION tag is set to YES then for each documented 1101 | # entity all documented functions referencing it will be listed. 1102 | # The default value is: NO. 1103 | 1104 | REFERENCED_BY_RELATION = NO 1105 | 1106 | # If the REFERENCES_RELATION tag is set to YES then for each documented function 1107 | # all documented entities called/used by that function will be listed. 1108 | # The default value is: NO. 1109 | 1110 | REFERENCES_RELATION = NO 1111 | 1112 | # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set 1113 | # to YES then the hyperlinks from functions in REFERENCES_RELATION and 1114 | # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will 1115 | # link to the documentation. 1116 | # The default value is: YES. 1117 | 1118 | REFERENCES_LINK_SOURCE = YES 1119 | 1120 | # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the 1121 | # source code will show a tooltip with additional information such as prototype, 1122 | # brief description and links to the definition and documentation. Since this 1123 | # will make the HTML file larger and loading of large files a bit slower, you 1124 | # can opt to disable this feature. 1125 | # The default value is: YES. 1126 | # This tag requires that the tag SOURCE_BROWSER is set to YES. 1127 | 1128 | SOURCE_TOOLTIPS = YES 1129 | 1130 | # If the USE_HTAGS tag is set to YES then the references to source code will 1131 | # point to the HTML generated by the htags(1) tool instead of doxygen built-in 1132 | # source browser. The htags tool is part of GNU's global source tagging system 1133 | # (see https://www.gnu.org/software/global/global.html). You will need version 1134 | # 4.8.6 or higher. 1135 | # 1136 | # To use it do the following: 1137 | # - Install the latest version of global 1138 | # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file 1139 | # - Make sure the INPUT points to the root of the source tree 1140 | # - Run doxygen as normal 1141 | # 1142 | # Doxygen will invoke htags (and that will in turn invoke gtags), so these 1143 | # tools must be available from the command line (i.e. in the search path). 1144 | # 1145 | # The result: instead of the source browser generated by doxygen, the links to 1146 | # source code will now point to the output of htags. 1147 | # The default value is: NO. 1148 | # This tag requires that the tag SOURCE_BROWSER is set to YES. 1149 | 1150 | USE_HTAGS = NO 1151 | 1152 | # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a 1153 | # verbatim copy of the header file for each class for which an include is 1154 | # specified. Set to NO to disable this. 1155 | # See also: Section \class. 1156 | # The default value is: YES. 1157 | 1158 | VERBATIM_HEADERS = YES 1159 | 1160 | # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the 1161 | # clang parser (see: 1162 | # http://clang.llvm.org/) for more accurate parsing at the cost of reduced 1163 | # performance. This can be particularly helpful with template rich C++ code for 1164 | # which doxygen's built-in parser lacks the necessary type information. 1165 | # Note: The availability of this option depends on whether or not doxygen was 1166 | # generated with the -Duse_libclang=ON option for CMake. 1167 | # The default value is: NO. 1168 | 1169 | CLANG_ASSISTED_PARSING = NO 1170 | 1171 | # If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS 1172 | # tag is set to YES then doxygen will add the directory of each input to the 1173 | # include path. 1174 | # The default value is: YES. 1175 | # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. 1176 | 1177 | CLANG_ADD_INC_PATHS = YES 1178 | 1179 | # If clang assisted parsing is enabled you can provide the compiler with command 1180 | # line options that you would normally use when invoking the compiler. Note that 1181 | # the include paths will already be set by doxygen for the files and directories 1182 | # specified with INPUT and INCLUDE_PATH. 1183 | # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. 1184 | 1185 | CLANG_OPTIONS = 1186 | 1187 | # If clang assisted parsing is enabled you can provide the clang parser with the 1188 | # path to the directory containing a file called compile_commands.json. This 1189 | # file is the compilation database (see: 1190 | # http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the 1191 | # options used when the source files were built. This is equivalent to 1192 | # specifying the -p option to a clang tool, such as clang-check. These options 1193 | # will then be passed to the parser. Any options specified with CLANG_OPTIONS 1194 | # will be added as well. 1195 | # Note: The availability of this option depends on whether or not doxygen was 1196 | # generated with the -Duse_libclang=ON option for CMake. 1197 | 1198 | CLANG_DATABASE_PATH = 1199 | 1200 | #--------------------------------------------------------------------------- 1201 | # Configuration options related to the alphabetical class index 1202 | #--------------------------------------------------------------------------- 1203 | 1204 | # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all 1205 | # compounds will be generated. Enable this if the project contains a lot of 1206 | # classes, structs, unions or interfaces. 1207 | # The default value is: YES. 1208 | 1209 | ALPHABETICAL_INDEX = YES 1210 | 1211 | # In case all classes in a project start with a common prefix, all classes will 1212 | # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag 1213 | # can be used to specify a prefix (or a list of prefixes) that should be ignored 1214 | # while generating the index headers. 1215 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. 1216 | 1217 | IGNORE_PREFIX = 1218 | 1219 | #--------------------------------------------------------------------------- 1220 | # Configuration options related to the HTML output 1221 | #--------------------------------------------------------------------------- 1222 | 1223 | # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output 1224 | # The default value is: YES. 1225 | 1226 | GENERATE_HTML = YES 1227 | 1228 | # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a 1229 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1230 | # it. 1231 | # The default directory is: html. 1232 | # This tag requires that the tag GENERATE_HTML is set to YES. 1233 | 1234 | HTML_OUTPUT = output 1235 | 1236 | # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each 1237 | # generated HTML page (for example: .htm, .php, .asp). 1238 | # The default value is: .html. 1239 | # This tag requires that the tag GENERATE_HTML is set to YES. 1240 | 1241 | HTML_FILE_EXTENSION = .html 1242 | 1243 | # The HTML_HEADER tag can be used to specify a user-defined HTML header file for 1244 | # each generated HTML page. If the tag is left blank doxygen will generate a 1245 | # standard header. 1246 | # 1247 | # To get valid HTML the header file that includes any scripts and style sheets 1248 | # that doxygen needs, which is dependent on the configuration options used (e.g. 1249 | # the setting GENERATE_TREEVIEW). It is highly recommended to start with a 1250 | # default header using 1251 | # doxygen -w html new_header.html new_footer.html new_stylesheet.css 1252 | # YourConfigFile 1253 | # and then modify the file new_header.html. See also section "Doxygen usage" 1254 | # for information on how to generate the default header that doxygen normally 1255 | # uses. 1256 | # Note: The header is subject to change so you typically have to regenerate the 1257 | # default header when upgrading to a newer version of doxygen. For a description 1258 | # of the possible markers and block names see the documentation. 1259 | # This tag requires that the tag GENERATE_HTML is set to YES. 1260 | 1261 | HTML_HEADER = 1262 | 1263 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each 1264 | # generated HTML page. If the tag is left blank doxygen will generate a standard 1265 | # footer. See HTML_HEADER for more information on how to generate a default 1266 | # footer and what special commands can be used inside the footer. See also 1267 | # section "Doxygen usage" for information on how to generate the default footer 1268 | # that doxygen normally uses. 1269 | # This tag requires that the tag GENERATE_HTML is set to YES. 1270 | 1271 | HTML_FOOTER = 1272 | 1273 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style 1274 | # sheet that is used by each HTML page. It can be used to fine-tune the look of 1275 | # the HTML output. If left blank doxygen will generate a default style sheet. 1276 | # See also section "Doxygen usage" for information on how to generate the style 1277 | # sheet that doxygen normally uses. 1278 | # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as 1279 | # it is more robust and this tag (HTML_STYLESHEET) will in the future become 1280 | # obsolete. 1281 | # This tag requires that the tag GENERATE_HTML is set to YES. 1282 | 1283 | HTML_STYLESHEET = 1284 | 1285 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined 1286 | # cascading style sheets that are included after the standard style sheets 1287 | # created by doxygen. Using this option one can overrule certain style aspects. 1288 | # This is preferred over using HTML_STYLESHEET since it does not replace the 1289 | # standard style sheet and is therefore more robust against future updates. 1290 | # Doxygen will copy the style sheet files to the output directory. 1291 | # Note: The order of the extra style sheet files is of importance (e.g. the last 1292 | # style sheet in the list overrules the setting of the previous ones in the 1293 | # list). For an example see the documentation. 1294 | # This tag requires that the tag GENERATE_HTML is set to YES. 1295 | 1296 | HTML_EXTRA_STYLESHEET = 1297 | 1298 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or 1299 | # other source files which should be copied to the HTML output directory. Note 1300 | # that these files will be copied to the base HTML output directory. Use the 1301 | # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these 1302 | # files. In the HTML_STYLESHEET file, use the file name only. Also note that the 1303 | # files will be copied as-is; there are no commands or markers available. 1304 | # This tag requires that the tag GENERATE_HTML is set to YES. 1305 | 1306 | HTML_EXTRA_FILES = 1307 | 1308 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen 1309 | # will adjust the colors in the style sheet and background images according to 1310 | # this color. Hue is specified as an angle on a color-wheel, see 1311 | # https://en.wikipedia.org/wiki/Hue for more information. For instance the value 1312 | # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 1313 | # purple, and 360 is red again. 1314 | # Minimum value: 0, maximum value: 359, default value: 220. 1315 | # This tag requires that the tag GENERATE_HTML is set to YES. 1316 | 1317 | HTML_COLORSTYLE_HUE = 220 1318 | 1319 | # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors 1320 | # in the HTML output. For a value of 0 the output will use gray-scales only. A 1321 | # value of 255 will produce the most vivid colors. 1322 | # Minimum value: 0, maximum value: 255, default value: 100. 1323 | # This tag requires that the tag GENERATE_HTML is set to YES. 1324 | 1325 | HTML_COLORSTYLE_SAT = 100 1326 | 1327 | # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the 1328 | # luminance component of the colors in the HTML output. Values below 100 1329 | # gradually make the output lighter, whereas values above 100 make the output 1330 | # darker. The value divided by 100 is the actual gamma applied, so 80 represents 1331 | # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not 1332 | # change the gamma. 1333 | # Minimum value: 40, maximum value: 240, default value: 80. 1334 | # This tag requires that the tag GENERATE_HTML is set to YES. 1335 | 1336 | HTML_COLORSTYLE_GAMMA = 80 1337 | 1338 | # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 1339 | # page will contain the date and time when the page was generated. Setting this 1340 | # to YES can help to show when doxygen was last run and thus if the 1341 | # documentation is up to date. 1342 | # The default value is: NO. 1343 | # This tag requires that the tag GENERATE_HTML is set to YES. 1344 | 1345 | HTML_TIMESTAMP = NO 1346 | 1347 | # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML 1348 | # documentation will contain a main index with vertical navigation menus that 1349 | # are dynamically created via JavaScript. If disabled, the navigation index will 1350 | # consists of multiple levels of tabs that are statically embedded in every HTML 1351 | # page. Disable this option to support browsers that do not have JavaScript, 1352 | # like the Qt help browser. 1353 | # The default value is: YES. 1354 | # This tag requires that the tag GENERATE_HTML is set to YES. 1355 | 1356 | HTML_DYNAMIC_MENUS = YES 1357 | 1358 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 1359 | # documentation will contain sections that can be hidden and shown after the 1360 | # page has loaded. 1361 | # The default value is: NO. 1362 | # This tag requires that the tag GENERATE_HTML is set to YES. 1363 | 1364 | HTML_DYNAMIC_SECTIONS = NO 1365 | 1366 | # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries 1367 | # shown in the various tree structured indices initially; the user can expand 1368 | # and collapse entries dynamically later on. Doxygen will expand the tree to 1369 | # such a level that at most the specified number of entries are visible (unless 1370 | # a fully collapsed tree already exceeds this amount). So setting the number of 1371 | # entries 1 will produce a full collapsed tree by default. 0 is a special value 1372 | # representing an infinite number of entries and will result in a full expanded 1373 | # tree by default. 1374 | # Minimum value: 0, maximum value: 9999, default value: 100. 1375 | # This tag requires that the tag GENERATE_HTML is set to YES. 1376 | 1377 | HTML_INDEX_NUM_ENTRIES = 100 1378 | 1379 | # If the GENERATE_DOCSET tag is set to YES, additional index files will be 1380 | # generated that can be used as input for Apple's Xcode 3 integrated development 1381 | # environment (see: 1382 | # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To 1383 | # create a documentation set, doxygen will generate a Makefile in the HTML 1384 | # output directory. Running make will produce the docset in that directory and 1385 | # running make install will install the docset in 1386 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at 1387 | # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy 1388 | # genXcode/_index.html for more information. 1389 | # The default value is: NO. 1390 | # This tag requires that the tag GENERATE_HTML is set to YES. 1391 | 1392 | GENERATE_DOCSET = NO 1393 | 1394 | # This tag determines the name of the docset feed. A documentation feed provides 1395 | # an umbrella under which multiple documentation sets from a single provider 1396 | # (such as a company or product suite) can be grouped. 1397 | # The default value is: Doxygen generated docs. 1398 | # This tag requires that the tag GENERATE_DOCSET is set to YES. 1399 | 1400 | DOCSET_FEEDNAME = "Doxygen generated docs" 1401 | 1402 | # This tag specifies a string that should uniquely identify the documentation 1403 | # set bundle. This should be a reverse domain-name style string, e.g. 1404 | # com.mycompany.MyDocSet. Doxygen will append .docset to the name. 1405 | # The default value is: org.doxygen.Project. 1406 | # This tag requires that the tag GENERATE_DOCSET is set to YES. 1407 | 1408 | DOCSET_BUNDLE_ID = org.doxygen.Project 1409 | 1410 | # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify 1411 | # the documentation publisher. This should be a reverse domain-name style 1412 | # string, e.g. com.mycompany.MyDocSet.documentation. 1413 | # The default value is: org.doxygen.Publisher. 1414 | # This tag requires that the tag GENERATE_DOCSET is set to YES. 1415 | 1416 | DOCSET_PUBLISHER_ID = org.doxygen.Publisher 1417 | 1418 | # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. 1419 | # The default value is: Publisher. 1420 | # This tag requires that the tag GENERATE_DOCSET is set to YES. 1421 | 1422 | DOCSET_PUBLISHER_NAME = Publisher 1423 | 1424 | # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three 1425 | # additional HTML index files: index.hhp, index.hhc, and index.hhk. The 1426 | # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop 1427 | # on Windows. In the beginning of 2021 Microsoft took the original page, with 1428 | # a.o. the download links, offline the HTML help workshop was already many years 1429 | # in maintenance mode). You can download the HTML help workshop from the web 1430 | # archives at Installation executable (see: 1431 | # http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo 1432 | # ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). 1433 | # 1434 | # The HTML Help Workshop contains a compiler that can convert all HTML output 1435 | # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML 1436 | # files are now used as the Windows 98 help format, and will replace the old 1437 | # Windows help format (.hlp) on all Windows platforms in the future. Compressed 1438 | # HTML files also contain an index, a table of contents, and you can search for 1439 | # words in the documentation. The HTML workshop also contains a viewer for 1440 | # compressed HTML files. 1441 | # The default value is: NO. 1442 | # This tag requires that the tag GENERATE_HTML is set to YES. 1443 | 1444 | GENERATE_HTMLHELP = NO 1445 | 1446 | # The CHM_FILE tag can be used to specify the file name of the resulting .chm 1447 | # file. You can add a path in front of the file if the result should not be 1448 | # written to the html output directory. 1449 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1450 | 1451 | CHM_FILE = ../Agile_Led.chm 1452 | 1453 | # The HHC_LOCATION tag can be used to specify the location (absolute path 1454 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, 1455 | # doxygen will try to run the HTML help compiler on the generated index.hhp. 1456 | # The file has to be specified with full path. 1457 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1458 | 1459 | HHC_LOCATION = "E:/Doxygen/htmlhelpworkshop/HTML Help Workshop/hhc.exe" 1460 | 1461 | # The GENERATE_CHI flag controls if a separate .chi index file is generated 1462 | # (YES) or that it should be included in the main .chm file (NO). 1463 | # The default value is: NO. 1464 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1465 | 1466 | GENERATE_CHI = NO 1467 | 1468 | # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) 1469 | # and project file content. 1470 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1471 | 1472 | CHM_INDEX_ENCODING = GB2312 1473 | 1474 | # The BINARY_TOC flag controls whether a binary table of contents is generated 1475 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it 1476 | # enables the Previous and Next buttons. 1477 | # The default value is: NO. 1478 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1479 | 1480 | BINARY_TOC = NO 1481 | 1482 | # The TOC_EXPAND flag can be set to YES to add extra items for group members to 1483 | # the table of contents of the HTML help documentation and to the tree view. 1484 | # The default value is: NO. 1485 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1486 | 1487 | TOC_EXPAND = NO 1488 | 1489 | # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 1490 | # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that 1491 | # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help 1492 | # (.qch) of the generated HTML documentation. 1493 | # The default value is: NO. 1494 | # This tag requires that the tag GENERATE_HTML is set to YES. 1495 | 1496 | GENERATE_QHP = NO 1497 | 1498 | # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify 1499 | # the file name of the resulting .qch file. The path specified is relative to 1500 | # the HTML output folder. 1501 | # This tag requires that the tag GENERATE_QHP is set to YES. 1502 | 1503 | QCH_FILE = 1504 | 1505 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help 1506 | # Project output. For more information please see Qt Help Project / Namespace 1507 | # (see: 1508 | # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). 1509 | # The default value is: org.doxygen.Project. 1510 | # This tag requires that the tag GENERATE_QHP is set to YES. 1511 | 1512 | QHP_NAMESPACE = org.doxygen.Project 1513 | 1514 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt 1515 | # Help Project output. For more information please see Qt Help Project / Virtual 1516 | # Folders (see: 1517 | # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). 1518 | # The default value is: doc. 1519 | # This tag requires that the tag GENERATE_QHP is set to YES. 1520 | 1521 | QHP_VIRTUAL_FOLDER = doc 1522 | 1523 | # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom 1524 | # filter to add. For more information please see Qt Help Project / Custom 1525 | # Filters (see: 1526 | # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). 1527 | # This tag requires that the tag GENERATE_QHP is set to YES. 1528 | 1529 | QHP_CUST_FILTER_NAME = 1530 | 1531 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the 1532 | # custom filter to add. For more information please see Qt Help Project / Custom 1533 | # Filters (see: 1534 | # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). 1535 | # This tag requires that the tag GENERATE_QHP is set to YES. 1536 | 1537 | QHP_CUST_FILTER_ATTRS = 1538 | 1539 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 1540 | # project's filter section matches. Qt Help Project / Filter Attributes (see: 1541 | # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). 1542 | # This tag requires that the tag GENERATE_QHP is set to YES. 1543 | 1544 | QHP_SECT_FILTER_ATTRS = 1545 | 1546 | # The QHG_LOCATION tag can be used to specify the location (absolute path 1547 | # including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to 1548 | # run qhelpgenerator on the generated .qhp file. 1549 | # This tag requires that the tag GENERATE_QHP is set to YES. 1550 | 1551 | QHG_LOCATION = 1552 | 1553 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be 1554 | # generated, together with the HTML files, they form an Eclipse help plugin. To 1555 | # install this plugin and make it available under the help contents menu in 1556 | # Eclipse, the contents of the directory containing the HTML and XML files needs 1557 | # to be copied into the plugins directory of eclipse. The name of the directory 1558 | # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. 1559 | # After copying Eclipse needs to be restarted before the help appears. 1560 | # The default value is: NO. 1561 | # This tag requires that the tag GENERATE_HTML is set to YES. 1562 | 1563 | GENERATE_ECLIPSEHELP = NO 1564 | 1565 | # A unique identifier for the Eclipse help plugin. When installing the plugin 1566 | # the directory name containing the HTML and XML files should also have this 1567 | # name. Each documentation set should have its own identifier. 1568 | # The default value is: org.doxygen.Project. 1569 | # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. 1570 | 1571 | ECLIPSE_DOC_ID = org.doxygen.Project 1572 | 1573 | # If you want full control over the layout of the generated HTML pages it might 1574 | # be necessary to disable the index and replace it with your own. The 1575 | # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top 1576 | # of each HTML page. A value of NO enables the index and the value YES disables 1577 | # it. Since the tabs in the index contain the same information as the navigation 1578 | # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. 1579 | # The default value is: NO. 1580 | # This tag requires that the tag GENERATE_HTML is set to YES. 1581 | 1582 | DISABLE_INDEX = NO 1583 | 1584 | # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 1585 | # structure should be generated to display hierarchical information. If the tag 1586 | # value is set to YES, a side panel will be generated containing a tree-like 1587 | # index structure (just like the one that is generated for HTML Help). For this 1588 | # to work a browser that supports JavaScript, DHTML, CSS and frames is required 1589 | # (i.e. any modern browser). Windows users are probably better off using the 1590 | # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can 1591 | # further fine tune the look of the index (see "Fine-tuning the output"). As an 1592 | # example, the default style sheet generated by doxygen has an example that 1593 | # shows how to put an image at the root of the tree instead of the PROJECT_NAME. 1594 | # Since the tree basically has the same information as the tab index, you could 1595 | # consider setting DISABLE_INDEX to YES when enabling this option. 1596 | # The default value is: NO. 1597 | # This tag requires that the tag GENERATE_HTML is set to YES. 1598 | 1599 | GENERATE_TREEVIEW = YES 1600 | 1601 | # When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the 1602 | # FULL_SIDEBAR option determines if the side bar is limited to only the treeview 1603 | # area (value NO) or if it should extend to the full height of the window (value 1604 | # YES). Setting this to YES gives a layout similar to 1605 | # https://docs.readthedocs.io with more room for contents, but less room for the 1606 | # project logo, title, and description. If either GENERATOR_TREEVIEW or 1607 | # DISABLE_INDEX is set to NO, this option has no effect. 1608 | # The default value is: NO. 1609 | # This tag requires that the tag GENERATE_HTML is set to YES. 1610 | 1611 | FULL_SIDEBAR = NO 1612 | 1613 | # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that 1614 | # doxygen will group on one line in the generated HTML documentation. 1615 | # 1616 | # Note that a value of 0 will completely suppress the enum values from appearing 1617 | # in the overview section. 1618 | # Minimum value: 0, maximum value: 20, default value: 4. 1619 | # This tag requires that the tag GENERATE_HTML is set to YES. 1620 | 1621 | ENUM_VALUES_PER_LINE = 4 1622 | 1623 | # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used 1624 | # to set the initial width (in pixels) of the frame in which the tree is shown. 1625 | # Minimum value: 0, maximum value: 1500, default value: 250. 1626 | # This tag requires that the tag GENERATE_HTML is set to YES. 1627 | 1628 | TREEVIEW_WIDTH = 250 1629 | 1630 | # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to 1631 | # external symbols imported via tag files in a separate window. 1632 | # The default value is: NO. 1633 | # This tag requires that the tag GENERATE_HTML is set to YES. 1634 | 1635 | EXT_LINKS_IN_WINDOW = NO 1636 | 1637 | # If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg 1638 | # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see 1639 | # https://inkscape.org) to generate formulas as SVG images instead of PNGs for 1640 | # the HTML output. These images will generally look nicer at scaled resolutions. 1641 | # Possible values are: png (the default) and svg (looks nicer but requires the 1642 | # pdf2svg or inkscape tool). 1643 | # The default value is: png. 1644 | # This tag requires that the tag GENERATE_HTML is set to YES. 1645 | 1646 | HTML_FORMULA_FORMAT = png 1647 | 1648 | # Use this tag to change the font size of LaTeX formulas included as images in 1649 | # the HTML documentation. When you change the font size after a successful 1650 | # doxygen run you need to manually remove any form_*.png images from the HTML 1651 | # output directory to force them to be regenerated. 1652 | # Minimum value: 8, maximum value: 50, default value: 10. 1653 | # This tag requires that the tag GENERATE_HTML is set to YES. 1654 | 1655 | FORMULA_FONTSIZE = 10 1656 | 1657 | # Use the FORMULA_TRANSPARENT tag to determine whether or not the images 1658 | # generated for formulas are transparent PNGs. Transparent PNGs are not 1659 | # supported properly for IE 6.0, but are supported on all modern browsers. 1660 | # 1661 | # Note that when changing this option you need to delete any form_*.png files in 1662 | # the HTML output directory before the changes have effect. 1663 | # The default value is: YES. 1664 | # This tag requires that the tag GENERATE_HTML is set to YES. 1665 | 1666 | FORMULA_TRANSPARENT = YES 1667 | 1668 | # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands 1669 | # to create new LaTeX commands to be used in formulas as building blocks. See 1670 | # the section "Including formulas" for details. 1671 | 1672 | FORMULA_MACROFILE = 1673 | 1674 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see 1675 | # https://www.mathjax.org) which uses client side JavaScript for the rendering 1676 | # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX 1677 | # installed or if you want to formulas look prettier in the HTML output. When 1678 | # enabled you may also need to install MathJax separately and configure the path 1679 | # to it using the MATHJAX_RELPATH option. 1680 | # The default value is: NO. 1681 | # This tag requires that the tag GENERATE_HTML is set to YES. 1682 | 1683 | USE_MATHJAX = NO 1684 | 1685 | # With MATHJAX_VERSION it is possible to specify the MathJax version to be used. 1686 | # Note that the different versions of MathJax have different requirements with 1687 | # regards to the different settings, so it is possible that also other MathJax 1688 | # settings have to be changed when switching between the different MathJax 1689 | # versions. 1690 | # Possible values are: MathJax_2 and MathJax_3. 1691 | # The default value is: MathJax_2. 1692 | # This tag requires that the tag USE_MATHJAX is set to YES. 1693 | 1694 | MATHJAX_VERSION = MathJax_2 1695 | 1696 | # When MathJax is enabled you can set the default output format to be used for 1697 | # the MathJax output. For more details about the output format see MathJax 1698 | # version 2 (see: 1699 | # http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 1700 | # (see: 1701 | # http://docs.mathjax.org/en/latest/web/components/output.html). 1702 | # Possible values are: HTML-CSS (which is slower, but has the best 1703 | # compatibility. This is the name for Mathjax version 2, for MathJax version 3 1704 | # this will be translated into chtml), NativeMML (i.e. MathML. Only supported 1705 | # for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This 1706 | # is the name for Mathjax version 3, for MathJax version 2 this will be 1707 | # translated into HTML-CSS) and SVG. 1708 | # The default value is: HTML-CSS. 1709 | # This tag requires that the tag USE_MATHJAX is set to YES. 1710 | 1711 | MATHJAX_FORMAT = HTML-CSS 1712 | 1713 | # When MathJax is enabled you need to specify the location relative to the HTML 1714 | # output directory using the MATHJAX_RELPATH option. The destination directory 1715 | # should contain the MathJax.js script. For instance, if the mathjax directory 1716 | # is located at the same level as the HTML output directory, then 1717 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax 1718 | # Content Delivery Network so you can quickly see the result without installing 1719 | # MathJax. However, it is strongly recommended to install a local copy of 1720 | # MathJax from https://www.mathjax.org before deployment. The default value is: 1721 | # - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 1722 | # - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 1723 | # This tag requires that the tag USE_MATHJAX is set to YES. 1724 | 1725 | MATHJAX_RELPATH = 1726 | 1727 | # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax 1728 | # extension names that should be enabled during MathJax rendering. For example 1729 | # for MathJax version 2 (see 1730 | # https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): 1731 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols 1732 | # For example for MathJax version 3 (see 1733 | # http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): 1734 | # MATHJAX_EXTENSIONS = ams 1735 | # This tag requires that the tag USE_MATHJAX is set to YES. 1736 | 1737 | MATHJAX_EXTENSIONS = 1738 | 1739 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces 1740 | # of code that will be used on startup of the MathJax code. See the MathJax site 1741 | # (see: 1742 | # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an 1743 | # example see the documentation. 1744 | # This tag requires that the tag USE_MATHJAX is set to YES. 1745 | 1746 | MATHJAX_CODEFILE = 1747 | 1748 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for 1749 | # the HTML output. The underlying search engine uses javascript and DHTML and 1750 | # should work on any modern browser. Note that when using HTML help 1751 | # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) 1752 | # there is already a search function so this one should typically be disabled. 1753 | # For large projects the javascript based search engine can be slow, then 1754 | # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to 1755 | # search using the keyboard; to jump to the search box use + S 1756 | # (what the is depends on the OS and browser, but it is typically 1757 | # , /