将 doxygen 转换为 latex 为 pdf 的问题
Problem converting doxygen to latex to pdf
我使用 doxygen 从 c++ 项目创建了一个乳胶文档。之后,我使用 pdflatex 将 refman.tex 文档转换为 pdf(我做了几次以确保所有参考文献都正确完成)。
我的问题是,在我的 24 个 类 中的 2 个中,构造函数没有出现我在代码中编写的简短信息和参数,而算法出现了。
我一直在寻找拼写错误,但没有找到。
这是类之一的开头:
/*
* @brief This function implements the constructor of CStatusSender class
* @details It adds a CoreTimer Listener with STATUSSENDER_BCAST_PERIOD period
* of 1000 ms to send the status packet every time the timer is called
* @param ip: IP address of the device
* @param version: Firmware version
* @param ctrlp: Object of CControlProtocol class
*/
CStatusSender::CStatusSender(const char* ip, const char* version,
CControlProtocol* ctrlp)
{
这是第二个的开始(其中 CONTROL_PROTO_MCAST 是 1)。在这种情况下,创建的 pdf 显示了#else 之后的声明,但它没有意义,因为 CONTROL_PROTO_MCAST 是 1 更重要的是,在我的编辑器中,#else 部分是灰色的(意思是没有使用它部分):
#if CONTROL_PROTO_MCAST
/**
* @brief This function implements the constructor of CControlProtocol class.
* @param element_type: New value for @link m_ElementType element type @endlink
* @param LocalIP: New value for @link m_LocalIP local IP @endlink
* @param rx_port: New value for @link m_RXSocket RX socket @endlink
* @param tx_port: New value for @link m_TXSocket TX socket @endlink
* @param rx_mcast_addr: New value for @link m_RxMcastAddr RX multicast address @endlink
* @param tx_mcast_addrs: New value for @link m_TxMcastAddrs TX multicast address @endlink
* @param maxLocals: New value for @link m_MaxLocalAddressNum local IP address limit @endlink
* @param MqxThreadId: New value for Mqx thread id
*/
CControlProtocol::CControlProtocol(EElementType element_type, uint_32 LocalIP, uint_16 rx_port,
uint_16 tx_port, uint_32 rx_mcast_addr, const std::map<EElementType, uint32_t>& tx_mcast_addrs, int maxLocals, int MqxThreadId)
#else
CControlProtocol::CControlProtocol(EElementType element_type, uint_32 LocalIP,
uint_16 rx_port, uint_16 tx_port, uint_32 broadcast_addr, int maxLocals,
int MqxThreadId)
#endif
: CThreaded(MqxThreadId) {
/**
* @b Algorithm
*
* l. Update @link m_LastTXSQ last TX SQ @endlink
* 2. Initialize @link m_LastRXSQTable last RX sequence table @endlink with size @link MAX_EMITTERS @endlink
* 3. For each element of @link m_LastRXSQTable last RX sequence table @endlink do
* 1. Element IP is 0
* 2. Element sequence is 0
* 4. Set @link m_LocalIP local IP @endlink parameter's value
* 5. Set @link m_Port port @endlink parameter's value
* 6. Set @link m_ElementType element type @endlink parameter's value
* 7. Set @link m_bFilterRemote filter remote flag @endlink to false
* 8. Set @link m_MaxLocalAddressNum limit local address number @endlink parameter's value
* 9. Initialize @link m_LocalAddrs local addresses @endlink of size @link m_MaxLocalAddressNum limit local address number @endlink
* 10. Get @link m_RXSocket RX socket @endlink
* 11. Get @link m_TXSocket TX socket @endlink
* 12. CONTROL_PROTO_MCAST
* -# True
* 1. Set @link m_RxMcastAddr RX multicast address @endlink parameter's value
* 2. @link m_RxMcastAddr multicast address @endlink is a valid multicast address
* -# Join multicast group
* -# Else
* 1. Set @link m_BroadcastAddr broadcast address @endlink parameter´s value
* 13. Set @link m_TxMcastAddr TX multicast address @endlink parameter's value
* 14. Initialize @link m_TXBuf TX buffer @endlink
* 15. Initialize @link m_RXBuf RX buffer @endlink
我使用 doxygen 从 c++ 项目创建了一个乳胶文档。之后,我使用 pdflatex 将 refman.tex 文档转换为 pdf(我做了几次以确保所有参考文献都正确完成)。
我的问题是,在我的 24 个 类 中的 2 个中,构造函数没有出现我在代码中编写的简短信息和参数,而算法出现了。
我一直在寻找拼写错误,但没有找到。
这是类之一的开头:
/*
* @brief This function implements the constructor of CStatusSender class
* @details It adds a CoreTimer Listener with STATUSSENDER_BCAST_PERIOD period
* of 1000 ms to send the status packet every time the timer is called
* @param ip: IP address of the device
* @param version: Firmware version
* @param ctrlp: Object of CControlProtocol class
*/
CStatusSender::CStatusSender(const char* ip, const char* version,
CControlProtocol* ctrlp)
{
这是第二个的开始(其中 CONTROL_PROTO_MCAST 是 1)。在这种情况下,创建的 pdf 显示了#else 之后的声明,但它没有意义,因为 CONTROL_PROTO_MCAST 是 1 更重要的是,在我的编辑器中,#else 部分是灰色的(意思是没有使用它部分):
#if CONTROL_PROTO_MCAST
/**
* @brief This function implements the constructor of CControlProtocol class.
* @param element_type: New value for @link m_ElementType element type @endlink
* @param LocalIP: New value for @link m_LocalIP local IP @endlink
* @param rx_port: New value for @link m_RXSocket RX socket @endlink
* @param tx_port: New value for @link m_TXSocket TX socket @endlink
* @param rx_mcast_addr: New value for @link m_RxMcastAddr RX multicast address @endlink
* @param tx_mcast_addrs: New value for @link m_TxMcastAddrs TX multicast address @endlink
* @param maxLocals: New value for @link m_MaxLocalAddressNum local IP address limit @endlink
* @param MqxThreadId: New value for Mqx thread id
*/
CControlProtocol::CControlProtocol(EElementType element_type, uint_32 LocalIP, uint_16 rx_port,
uint_16 tx_port, uint_32 rx_mcast_addr, const std::map<EElementType, uint32_t>& tx_mcast_addrs, int maxLocals, int MqxThreadId)
#else
CControlProtocol::CControlProtocol(EElementType element_type, uint_32 LocalIP,
uint_16 rx_port, uint_16 tx_port, uint_32 broadcast_addr, int maxLocals,
int MqxThreadId)
#endif
: CThreaded(MqxThreadId) {
/**
* @b Algorithm
*
* l. Update @link m_LastTXSQ last TX SQ @endlink
* 2. Initialize @link m_LastRXSQTable last RX sequence table @endlink with size @link MAX_EMITTERS @endlink
* 3. For each element of @link m_LastRXSQTable last RX sequence table @endlink do
* 1. Element IP is 0
* 2. Element sequence is 0
* 4. Set @link m_LocalIP local IP @endlink parameter's value
* 5. Set @link m_Port port @endlink parameter's value
* 6. Set @link m_ElementType element type @endlink parameter's value
* 7. Set @link m_bFilterRemote filter remote flag @endlink to false
* 8. Set @link m_MaxLocalAddressNum limit local address number @endlink parameter's value
* 9. Initialize @link m_LocalAddrs local addresses @endlink of size @link m_MaxLocalAddressNum limit local address number @endlink
* 10. Get @link m_RXSocket RX socket @endlink
* 11. Get @link m_TXSocket TX socket @endlink
* 12. CONTROL_PROTO_MCAST
* -# True
* 1. Set @link m_RxMcastAddr RX multicast address @endlink parameter's value
* 2. @link m_RxMcastAddr multicast address @endlink is a valid multicast address
* -# Join multicast group
* -# Else
* 1. Set @link m_BroadcastAddr broadcast address @endlink parameter´s value
* 13. Set @link m_TxMcastAddr TX multicast address @endlink parameter's value
* 14. Initialize @link m_TXBuf TX buffer @endlink
* 15. Initialize @link m_RXBuf RX buffer @endlink