• 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 
    #include 
    #include 
    #include 
    #include 
    #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,就不带目录
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    数组去重的方法(原生JS)for in 和 for of 的区别
    20221116 Dubbo+Zookeeper
    Opencv(图像处理)-基于Python-绘图功能
    Free MyBatis plugin搜索不到解决,最新2021.12.09版本下载
    Spring框架(三)
    机器学习笔记之隐马尔可夫模型(二)背景介绍
    JS-Vue-组件
    观点: 我所理解的Layer0、1、2层到底是什么?
    【C语言】IO流(文件操作)- scanf / printf没那么简单!
    NRF52840-QIAA-R Nordic BLE5.0蓝牙无线收发芯片
  • 原文地址:https://blog.csdn.net/aoxuestudy/article/details/141030496