doxygen制作接口文档

news2024/9/20 8:03:34

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、下载
  • 二、安装
    • 三、代码注释
    • 四、使用doxygen生成文档

前言

每次手动写接口文档太痛苦了,现在福利来了–doxygen
Doxygen是软件开发中广泛使用的文档生成器工具。它自动从源代码注释生成文档,解析有关类、函数和变量的信息,以生成HTML和PDF等格式的输出。通过简化和标准化文档过程,Doxygen增强了跨不同编程语言和项目规模的协作和维护。支持c++、Java、C#、PHP、Fortran
在这里插入图片描述

一、下载

Doxygen下载地址
在这里插入图片描述

二、安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码注释

在这里插入图片描述
接口代码头文件

#ifndef _CONGIG_DATA_H_
#define _CONGIG_DATA_H_

#include "RegisterControl_Exports.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include "nlohmann/json.hpp"

using namespace std;
using nlohmann::json;


/// @brief: 这个类处理json格式数据
/// @author:xxxxxx
/// @version: v1.0
/// data:2024-8-8
namespace ConfigJsonData {

	class RegisterControl_API ConfigData
	{
	public:
		ConfigData();
		~ConfigData();	
	public:
		/// @brief 从文件中加载json数据
		/// @param fileName 文件名
		/// @return 无 注:内部输出加载json数据是否成功
		void loadJsonFile(const string& fileName);
		/// @brief 从字符串中加载json数据
		/// @param jsonString 输入json格式字符串
		/// @return 无 注:内部输出加载json数据是否成功
		void loadJsonString(const string& jsonString);
		/// @brief 内部构造json对象
		/// @param 无
		/// @return 返回json对象
		json toJson();
		/// @brief 序列化:把json数据转成ConfigData对象
		/// @param 无
		/// @return 无 注:如果转换失败,内部处理转换失败的异常
		void fromJson();
		/// @brief 把json数据保存到文件
		/// @param fileName 保存文件名
		/// @return 无 注:如果转换失败,函数内部处理转换失败的异常
		void saveToJsonFile(const string& fileName);
		/// @brief 把json数据保存到字符串
		/// @param 无
		/// @return 无 注:如果转换失败,函数内部处理转换失败的异常
		void saveToJsonString();
	public:
		// Getter 和 Setter 方法 
		
		/// @brief 获得json格式字符串
		/// @param 无
		/// @return 返回json格式字符串
		string getJsonString() { return _jsonString; }
		/// @brief 获得json对象
		/// @param 无
		/// @return 返回json格式字符串	
		const json& getJsonData() const { return _jsonData; }
		/// @brief 获得json对象
		/// @param jsonData json对象
		/// @return 无 设置json对象	
		void setJsonData(const json& jsonData) { _jsonData = jsonData; }
		/// @brief 获得json格式配置文件名
		/// @param 无
		/// @return string 返回文件名	
		const string& getFileName() const { return _fileName; }
		/// @brief 设置json格式配置文件名
		/// @param fileName 设置保存文件名
		/// @return 返回文件名
		void setFileName(const string& fileName) { _fileName = fileName; }
		/// @brief 获取ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446
		/// @param 无
		/// @return  返回ADC类型
		const string& getAdcType() const { return _adcType; }
		/// @brief 设置ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446
		/// @param adcType ADC类型
		/// @return string ADC类型
		void setAdcType(const string& adcType) { _adcType = adcType; }
		/// @brief 获取fpga信息
		/// @param 无
		/// @return 返回fpga信息
		 map<string, int>& getFpgaMap()  { return _FpgaMap; }
		/// @brief 设置fpga信息
		/// @param fpgaMapfpga信息
		/// @return 无
		void setFpgaMap(const map<string, int>& fpgaMap) { _FpgaMap = fpgaMap; }
		/// @brief 获取相机信息
		/// @param 无
		/// @return 返回fpga信息
		const map<string, string>& getCameraInfoMap() const { return _cameraInfoMap; }
		/// @brief 设置相机信息
		/// @param cameraInfoMap信息
		/// @return 无
		void setCameraInfoMap(const map<string, string>& cameraInfoMap) { _cameraInfoMap = cameraInfoMap; }
		/// @brief 获取增益数据
		/// @param cameraInfoMap信息
		/// @return 增益数据
		const map<string, vector<int>>& getGainMap() const { return _gainMap; }
		/// @brief 设置增益数据
		/// @param gainMap 增益信息
		/// @return 无
		void setGainMap(const map<string, vector<int>>& gainMap) { _gainMap = gainMap; }
		/// @brief 获取偏移数据
		/// @param 无
		/// @return 返回增益信息
		const map<string, vector<int>>& getOffsetMap() const { return _offsetMap; }
		/// @brief 设置偏移数据
		/// @param offsetMap 偏移数据
		/// @return 返回增益信息
		void setOffsetMap(const map<string, vector<int>>& offsetMap) { _offsetMap = offsetMap; }
		/// @brief 获取索引、bank、寄存器数据
		/// @param 无
		/// @return 返回索引、bank、寄存器数据
		const map<string, map<string, map<string, int>>>& getIndexBankRegMap() const { return _indexBankRegMap; }
		/// @brief 设置索引、bank、寄存器数据
		/// @param 索引、bank、寄存器数据
		/// @return 无
		void setIndexBankRegMap(const map<string, map<string, map<string, int>>>& indexBankRegMap) { _indexBankRegMap = indexBankRegMap; }
	
	private:
		string _fileName;     ///json文件名
		string _adcType;      ///ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446
		string _jsonString;   ///json字符串

		map<string, int> _FpgaMap; /// fpga信息
		map<string, string> _cameraInfoMap; ///相机信息
		map<string, vector<int>> _gainMap;  ///增益数据
		map<string, vector<int>> _offsetMap;///偏移数据
		map<string, map<string, map<string, int>>> _indexBankRegMap;///索引、bank、寄存器数据
		 
		json _jsonData;  ///json对象
	};
}

#endif

这里只需要注释头文件即可,不需要在注释cpp文件中注释,当然您也可以连同cpp文件一起注释
格式如下:

/// @brief 功能说明
/// @param 参数1说明
/// @param 参数2说明
/// @param 参数3说明
/// @return 返回值说明

四、使用doxygen生成文档

1.配置文档项目路径、文档生成路径、文档项目名称
在这里插入图片描述
2.防止生成的文档包含中文乱码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.生成chm
在这里插入图片描述
4.显示chm
在这里插入图片描述
5.展示效果,注意这里选择你的chm后缀名文件,就会生成目录,如果选择index.html,就不带目录
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上播狂卖下播全退!用户抛弃直播间,网红们疯狂刷单注水……

最近&#xff0c;直播带货行业瓜好像多的有点吃不动了&#xff01;‍ 头部的一哥二哥三哥们&#xff0c;卖课的卖课、分家的分家&#xff0c;吵架的吵架……好不热闹。 就好比国民女婿董宇辉&#xff0c;在和东方甄选、俞敏洪周旋了小半年后&#xff0c;终于还是从打工人变成…

【送激活码,免费升级】GuitarPro发布8.1.3新版 guitar pro最新版中文官网下载 guitar pro激活码

打谱神器 Guitar Pro 迎来了 2024 最新版&#xff01;所有购买过 Guitar Pro 8 的用户&#xff0c;现在就可以免费升级 V8.1.3 了&#xff0c;您可以通过软件内的升级提醒进行升级&#xff0c;或者直接下载下面的新包覆盖安装。 Guitar Pro8.13最新安装包下载&#xff08;Win&…

【JVM】深入JIT优化机制

1.JIT优化技术 在将高级语言转化为计算机可识别的机器语言时&#xff0c;常用的两种方式是编译和解释。Java在编译过程中&#xff0c;首先将代码编译成字节码。但是&#xff0c;字节码并不能直接在机器上执行。因此&#xff0c;JVM中内置了解释器&#xff08;Interpreter&…

汇编语言1 - 什么是汇编语言?

1. 什么是汇编语言&#xff1f; 1.1. 汇编语言的定义1.2. 汇编语言与机器语言 1.2.1. 相同点1.2.2. 不同点 2. 汇编语言的主要特点3. 汇编语言的基本组成4. 汇编器 4.1. 主要工作流程4.2. 常见的汇编器 4.2.1. NASM&#xff08;Netwide Assembler&#xff09;4.2.2. MASM&…

PPT免费图片素材网站分享

一、Pixabay 网址&#xff1a;https://pixabay.com/ 图片类型&#xff1a;高清、免费、商用 使用方法&#xff1a;找到想要的图片之后&#xff0c;右键复制之后粘贴到PPT即可使用。同时&#xff0c;点击下载可以找到不同尺寸的PPT素材 二、花瓣网 网址&#xff1a;https://…

B树和B+树的插入、删除

1. B树 1.1 B树的定义 树也称树&#xff0c;它是一颗多路平衡查找树。我们描述一颗树时需要指定它的阶数&#xff0c;阶数表示了一个结点最多有多少个孩子结点&#xff0c;用字母表示阶数。当取时&#xff0c;就是我们常见的二叉搜索树。 一颗阶的树定义如下&#xff1a; 每…

“卖水人”的生意经,要比机器人厂商更懂机器人

技术公司的生存法则。 生态链中每个角色都有自己的生存法则。对于机器人产业链中的技术“卖水人”&#xff0c;它的核心生存法则除了要闷头搞技术&#xff0c;更重要的是要比机器人厂商更懂机器人&#xff0c;这不仅很大程度决定了自身的技术路线&#xff0c;更决定了能否切中…

labelme标注的图像分割json文件转图片格式

label标注的标签是json格式&#xff0c;会对选择的区域进行打点标记&#xff0c;所有的点围成不规则的多边形区域&#xff0c;中间的部分就是分割的区域 这里编写了python脚本&#xff0c;可以把json文件转为图片格式&#xff0c;这里是png格式 目标摆放如下 转化结果如下&…

论文精读1

Equivariant Pretrained Transformer for Unified Geometric Learning on Multi-Domain 3D Molecules 核心公式&#xff1a; 论文导图 创新在统一分子建模和块级去噪预训练。

vue3中 ref 和 reactive 的区别

相同&#xff1a;均是声明响应式对象。且声明的响应式对象是深层的 1. 数据类型不同&#xff1a;ref用于包装JavaScript基本类型的数据&#xff08;如字符串、数字、布尔值等&#xff09;&#xff0c;而reactive可以用于包装JavaScript对象和数组等复杂类型的数据。 2.访问方式…

医疗器械维修行业的惊人真相!

在医疗领域&#xff0c;医疗器械维修行业有着不为人知的惊人真相。 其一&#xff0c;维修人才极度稀缺。医疗器械的技术不断革新&#xff0c;复杂程度日益提高&#xff0c;然而专业维修人员的数量增长却远远跟不上。这导致一些设备故障无法及时修复&#xff0c;影响医疗服务的…

消费企业如何实现对经销商的动态管理?包括哪些维度?

在数字化浪潮席卷全球的当下时代&#xff0c;消费企业正站在转型升级的十字路口。在这种背景下&#xff0c;传统的经销管理模式已经不能满足市场对于效率、透明度和个性化的需求。当前经销渠道从增量市场竞争转入存量市场竞争&#xff0c;消费企业需通过加速数字化转型来快速提…

软件测试行业到底有没有前景和出路?2024辞职后涨薪5K+,凭什么?

前言 软件测试工程师的工作要求&#xff1a; 文档评审&#xff0c;用例评审&#xff0c;需求评审&#xff1b; 测试用例设计&#xff0c;自动化测试脚本开发&#xff0c;测试架构设计、写作测试文档&#xff08;测试计划、测试方案、测试用例等&#xff09;&#xff1b; 执行…

七夕来临,看鲜花商家如何通过小魔推短视频矩阵引爆流量

相信不少朋友都知道&#xff0c;前两天“秋天里的第一杯奶茶”这个热点又刷爆了朋友圈&#xff0c;“秋天的第一杯蜜雪”只用了短短1天时间&#xff0c;视频就已经收获10万赞、16万转发获得了强势围观&#xff01; 明天8月10日就是农历的七夕了&#xff0c;而鲜花行业的商家&a…

【javaWeb技术】·外卖点餐小程序(脚手架学习1·数据库)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;系统学javaWeb开发_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 【免费】项…

将PPT中的元素保存为高清图片

PPT制作流程图&#xff0c;思维导图或者演示图片非常方便&#xff0c;本文主要记录如何将一个在PPT中画好的图片导出为高清图片。 1.在ppt中设计图片 以我在PPT中画的图片为例&#xff0c;将所有元素选中&#xff0c;右键组合&#xff0c;成为一个整体 2.另存为增强型元文件 …

文件系统管理问题总结

文件系统的基本组成 1.什么是linux文件系统 Linux 最经典的⼀句话是&#xff1a;「⼀切皆⽂件」&#xff0c;不仅普通的⽂件和⽬录&#xff0c;就连块设备、管道、socket 等&#xff0c;也 都是统⼀交给⽂件系统管理的。 Linux ⽂件系统会为每个⽂件分配两个数据结构&#…

畅捷通基于Flink的实时数仓落地实践

摘要&#xff1a;本文整理自畅捷通总架构师、阿里云MVP专家郑芸老师在 Flink Forward Asia 2023 中闭门会上的分享。内容主要为以下四部分&#xff1a; 业务背景数仓建设具体案例未来展望 一、业务背景 畅捷通是用友旗下成员企业&#xff0c;一直持续专注于小微企业的数字化转…

七夕情人节有什么好物推荐?五款心动数码产品推荐。

转眼间&#xff0c;七夕情人节即将来临&#xff0c;这个浪漫的节日是表达爱意、传递心意的最佳时刻&#xff01;为了让爱意不再迷茫&#xff0c;团团精心挑选了一份情人节约会好物清单。这些精选产品&#xff0c;我亲自试用&#xff0c;确信它们能触动心弦&#xff0c;传递深情…

html+css 实现hover 3D按钮特效

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目…