From 00188a79c82c036f69e04c05d41b583669817ed4 Mon Sep 17 00:00:00 2001
From: ActoryOu <ousc@amazon.com>
Date: Tue, 10 Dec 2024 16:19:56 +0800
Subject: [PATCH] Enable typedef to make docs able to link *_t structs. (#185)

---
 docs/doxygen/config.doxyfile               |  4 ++--
 docs/doxygen/pages.dox                     | 10 ++++++++++
 source/include/cellular_types.h            |  4 ----
 source/include/common/cellular_common.h    | 10 +++++-----
 source/interface/cellular_comm_interface.h |  1 +
 5 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/docs/doxygen/config.doxyfile b/docs/doxygen/config.doxyfile
index f10c3051..9687e3a6 100644
--- a/docs/doxygen/config.doxyfile
+++ b/docs/doxygen/config.doxyfile
@@ -299,7 +299,7 @@ ALIASES                = "dependencies_section{1}=@section \1_dependencies Depen
                          "enums_brief{1}=@brief Enumerated types of the \1." \
                          "functionpointers_group{2}=@defgroup \1_datatypes_functionpointers \2 Function pointer types" \
                          "functionpointers_brief{1}=@brief Function pointer types of the \1." \
-                         "structs_group{21}=@defgroup \1_datatypes_structs \2 Structured types" \
+                         "structs_group{2}=@defgroup \1_datatypes_structs \2 Structured types" \
                          "structs_brief{1}=@brief Structured types of the \1." \
                          "paramstructs_group{2}=@defgroup \1_datatypes_paramstructs \2 Parameter structures" \
                          "paramstructs_brief{2}=@brief Structures passed as parameters to [\2 functions](@ref \1_functions)<br>These structures are passed as parameters to library functions. Documentation for these structures will state the functions associated with each parameter structure and the purpose of each member." \
@@ -478,7 +478,7 @@ INLINE_SIMPLE_STRUCTS  = NO
 # types are typedef'ed and only the typedef is referenced, never the tag name.
 # The default value is: NO.
 
-TYPEDEF_HIDES_STRUCT   = YES
+TYPEDEF_HIDES_STRUCT   = NO
 
 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
 # cache is used to resolve symbols given their name and scope. Since this can be
diff --git a/docs/doxygen/pages.dox b/docs/doxygen/pages.dox
index 99937413..e120de55 100644
--- a/docs/doxygen/pages.dox
+++ b/docs/doxygen/pages.dox
@@ -404,6 +404,11 @@ void PlatformMutex_Unlock( PlatformMutex_t * pMutex );
 ```
 */
 
+/**
+ * @structs_group{cellular,Cellular}
+ * @structs_brief{cellular,cellular}
+ */
+
 /**
  * @paramstructs_group{cellular,Cellular}
  * @paramstructs_brief{cellular,cellular}
@@ -423,3 +428,8 @@ void PlatformMutex_Unlock( PlatformMutex_t * pMutex );
  * @enums_group{cellular,Cellular}
  * @enums_brief{cellular library}
  */
+
+/**
+ * @common_datatypes_paramstructs_group{cellular,Cellular}
+ * @common_datatypes_paramstructs_brief{cellular library}
+ */
diff --git a/source/include/cellular_types.h b/source/include/cellular_types.h
index 07867ee1..2fa08a1a 100644
--- a/source/include/cellular_types.h
+++ b/source/include/cellular_types.h
@@ -54,10 +54,6 @@
  */
 #define CELLULAR_INVALID_SIGNAL_BAR_VALUE    ( 0xFFU )
 
-/**
- * @ingroup cellular_datatypes_handles
- * @brief Opaque Cellular context structure.
- */
 struct CellularContext;
 
 /**
diff --git a/source/include/common/cellular_common.h b/source/include/common/cellular_common.h
index 71388202..ac5b031f 100644
--- a/source/include/common/cellular_common.h
+++ b/source/include/common/cellular_common.h
@@ -55,7 +55,7 @@
 /*-----------------------------------------------------------*/
 
 /**
- * @ingroup cellular_common_datatypes_paramstructs
+ * @ingroup cellular_datatypes_paramstructs
  * @brief The AT command request structure.
  */
 typedef struct CellularAtReq
@@ -69,7 +69,7 @@ typedef struct CellularAtReq
 } CellularAtReq_t;
 
 /**
- * @ingroup cellular_common_datatypes_paramstructs
+ * @ingroup cellular_datatypes_paramstructs
  * @brief The data command request structure.
  */
 typedef struct CellularAtDataReq
@@ -94,7 +94,7 @@ typedef void ( * CellularAtParseTokenHandler_t )( CellularContext_t * pContext,
                                                   char * pInputStr );
 
 /**
- * @ingroup cellular_common_datatypes_paramstructs
+ * @ingroup cellular_datatypes_paramstructs
  * @brief the URC token and URC handler mapping structure used by pkthandler.
  */
 typedef struct CellularAtParseTokenMap
@@ -116,7 +116,7 @@ typedef enum CellularSocketState
 } CellularSocketState_t;
 
 /**
- * @ingroup cellular_common_datatypes_paramstructs
+ * @ingroup cellular_datatypes_paramstructs
  * @brief Parameters involved in sending/receiving data through sockets.
  */
 typedef struct CellularSocketContext
@@ -151,7 +151,7 @@ typedef struct CellularSocketContext
 } CellularSocketContext_t;
 
 /**
- * @ingroup cellular_common_datatypes_paramstructs
+ * @ingroup cellular_datatypes_paramstructs
  * @brief Parameters to setup pktio and pkthandler token tables.
  */
 typedef struct CellularTokenTable
diff --git a/source/interface/cellular_comm_interface.h b/source/interface/cellular_comm_interface.h
index 937c1113..1239db8e 100644
--- a/source/interface/cellular_comm_interface.h
+++ b/source/interface/cellular_comm_interface.h
@@ -151,6 +151,7 @@ typedef CellularCommInterfaceError_t ( * CellularCommInterfaceRecv_t )( Cellular
 typedef CellularCommInterfaceError_t ( * CellularCommInterfaceClose_t )( CellularCommInterfaceHandle_t commInterfaceHandle );
 
 /**
+ * @ingroup cellular_datatypes_paramstructs
  * @brief Represents the functions of a comm interface.
  *
  * Functions of these signature should be implemented against a comm interface