系列文章目录


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


前言

每次手动写接口文档太痛苦了,现在福利来了–doxygen

Doxygen是软件开发中广泛使用的文档生成器工具。它自动从源代码注释生成文档,解析有关类、函数和变量的信息,以生成HTML和PDF等格式的输出。通过简化和标准化文档过程,Doxygen增强了跨不同编程语言和项目规模的协作和维护。支持c++、Java、C#、PHP、Fortran

doxygen制作接口文档_制作接口文档

一、下载

 Doxygen下载地址

doxygen制作接口文档_json_02

二、安装

doxygen制作接口文档_json_03


doxygen制作接口文档_doxygen_04


doxygen制作接口文档_doxygen_05


doxygen制作接口文档_chm_06

三、代码注释

doxygen制作接口文档_doxygen_07


接口代码头文件

#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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.

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

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

四、使用doxygen生成文档

1.配置文档项目路径、文档生成路径、文档项目名称

doxygen制作接口文档_制作接口文档_08


2.防止生成的文档包含中文乱码

doxygen制作接口文档_数据_09


doxygen制作接口文档_doxygen_10


doxygen制作接口文档_json_11


doxygen制作接口文档_json_12


3.生成chm

doxygen制作接口文档_chm_13


4.显示chm

doxygen制作接口文档_chm_14


5.展示效果,注意这里选择你的chm后缀名文件,就会生成目录,如果选择index.html,就不带目录

doxygen制作接口文档_json_15


doxygen制作接口文档_chm_16