手機網(wǎng)站怎么做微信登陸6sem技術(shù)培訓
系列文章目錄
文章目錄
- 系列文章目錄
- 前言
- 一、下載
- 二、安裝
- 三、代碼注釋
- 四、使用doxygen生成文檔
前言
每次手動寫接口文檔太痛苦了,現(xiàn)在福利來了–doxygen
Doxygen是軟件開發(fā)中廣泛使用的文檔生成器工具。它自動從源代碼注釋生成文檔,解析有關(guān)類、函數(shù)和變量的信息,以生成HTML和PDF等格式的輸出。通過簡化和標準化文檔過程,Doxygen增強了跨不同編程語言和項目規(guī)模的協(xié)作和維護。支持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格式數(shù)據(jù)
/// @author:xxxxxx
/// @version: v1.0
/// data:2024-8-8
namespace ConfigJsonData {class RegisterControl_API ConfigData{public:ConfigData();~ConfigData(); public:/// @brief 從文件中加載json數(shù)據(jù)/// @param fileName 文件名/// @return 無 注:內(nèi)部輸出加載json數(shù)據(jù)是否成功void loadJsonFile(const string& fileName);/// @brief 從字符串中加載json數(shù)據(jù)/// @param jsonString 輸入json格式字符串/// @return 無 注:內(nèi)部輸出加載json數(shù)據(jù)是否成功void loadJsonString(const string& jsonString);/// @brief 內(nèi)部構(gòu)造json對象/// @param 無/// @return 返回json對象json toJson();/// @brief 序列化:把json數(shù)據(jù)轉(zhuǎn)成ConfigData對象/// @param 無/// @return 無 注:如果轉(zhuǎn)換失敗,內(nèi)部處理轉(zhuǎn)換失敗的異常void fromJson();/// @brief 把json數(shù)據(jù)保存到文件/// @param fileName 保存文件名/// @return 無 注:如果轉(zhuǎn)換失敗,函數(shù)內(nèi)部處理轉(zhuǎn)換失敗的異常void saveToJsonFile(const string& fileName);/// @brief 把json數(shù)據(jù)保存到字符串/// @param 無/// @return 無 注:如果轉(zhuǎn)換失敗,函數(shù)內(nèi)部處理轉(zhuǎn)換失敗的異常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 無 設(shè)置json對象 void setJsonData(const json& jsonData) { _jsonData = jsonData; }/// @brief 獲得json格式配置文件名/// @param 無/// @return string 返回文件名 const string& getFileName() const { return _fileName; }/// @brief 設(shè)置json格式配置文件名/// @param fileName 設(shè)置保存文件名/// @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 設(shè)置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 設(shè)置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 設(shè)置相機信息/// @param cameraInfoMap信息/// @return 無void setCameraInfoMap(const map<string, string>& cameraInfoMap) { _cameraInfoMap = cameraInfoMap; }/// @brief 獲取增益數(shù)據(jù)/// @param cameraInfoMap信息/// @return 增益數(shù)據(jù)const map<string, vector<int>>& getGainMap() const { return _gainMap; }/// @brief 設(shè)置增益數(shù)據(jù)/// @param gainMap 增益信息/// @return 無void setGainMap(const map<string, vector<int>>& gainMap) { _gainMap = gainMap; }/// @brief 獲取偏移數(shù)據(jù)/// @param 無/// @return 返回增益信息const map<string, vector<int>>& getOffsetMap() const { return _offsetMap; }/// @brief 設(shè)置偏移數(shù)據(jù)/// @param offsetMap 偏移數(shù)據(jù)/// @return 返回增益信息void setOffsetMap(const map<string, vector<int>>& offsetMap) { _offsetMap = offsetMap; }/// @brief 獲取索引、bank、寄存器數(shù)據(jù)/// @param 無/// @return 返回索引、bank、寄存器數(shù)據(jù)const map<string, map<string, map<string, int>>>& getIndexBankRegMap() const { return _indexBankRegMap; }/// @brief 設(shè)置索引、bank、寄存器數(shù)據(jù)/// @param 索引、bank、寄存器數(shù)據(jù)/// @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_ak8446string _jsonString; ///json字符串map<string, int> _FpgaMap; /// fpga信息map<string, string> _cameraInfoMap; ///相機信息map<string, vector<int>> _gainMap; ///增益數(shù)據(jù)map<string, vector<int>> _offsetMap;///偏移數(shù)據(jù)map<string, map<string, map<string, int>>> _indexBankRegMap;///索引、bank、寄存器數(shù)據(jù)json _jsonData; ///json對象};
}#endif
這里只需要注釋頭文件即可,不需要在注釋cpp文件中注釋,當然您也可以連同cpp文件一起注釋
格式如下:
/// @brief 功能說明
/// @param 參數(shù)1說明
/// @param 參數(shù)2說明
/// @param 參數(shù)3說明
/// @return 返回值說明
四、使用doxygen生成文檔
1.配置文檔項目路徑、文檔生成路徑、文檔項目名稱
2.防止生成的文檔包含中文亂碼
3.生成chm
4.顯示chm
5.展示效果,注意這里選擇你的chm后綴名文件,就會生成目錄,如果選擇index.html,就不帶目錄