Skip to content

Commit d28a8c0

Browse files
committed
Update Doxygen documentation for v1.2.0
- Update doxygen.cfg: version 1.1.1->1.2.0, project name/brief, enable USE_MDFILE_AS_MAINPAGE, OPTIMIZE_OUTPUT_FOR_C, MACRO_EXPANSION, disable LaTeX output - Rewrite mainpage.dox: modern overview with ABM/NRM modes, correct callback signatures, UI frames, CRC options, buffer sizing guide, and platform list - Rewrite arduino.dox: add Full-Duplex protocol examples (ABM mode, dynamic buffer, connection events), update Light protocol examples - Add getting_started.dox: step-by-step guide for C API (ABM, NRM primary/secondary, UI frames), C++ API (static/dynamic), Python API - Fix tiny_fd.h: update file brief for ABM+NRM, remove stale NRM 'in development' warning, add detailed defgroup description with usage steps, fix 'ballanced' typo, TINY_NO_ERROR->TINY_SUCCESS - Fix TinyProtocolFd.h: update file brief, fix 'incapsulates' typo, add ABM/NRM mode info to IFd class docs, improve Fd<N>/FdD docs - Fix TinyProtocolHdlc.h: update file brief, fix misleading 'confirmation' claim, correct class description - Fix TinyLightProtocol.h: update file brief, fix class name inconsistency in docs - Fix tiny_types.h: 'address if'->'address of', fix TINY_ERR_FAILED comment ('Timeout'->'General failure') - Fix hdlc.h (low level): fix 'FUNCIONS'->'FUNCTIONS' typos, improve defgroup description - Fix hdlc.h (high level): improve defgroup description - Fix tiny_light.h: add detailed defgroup description, TINY_NO_ERROR->TINY_SUCCESS
1 parent f62dfa6 commit d28a8c0

12 files changed

Lines changed: 713 additions & 202 deletions

File tree

doxygen.cfg

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
# Project related configuration options
55
#---------------------------------------------------------------------------
66
DOXYFILE_ENCODING = UTF-8
7-
PROJECT_NAME = "Tiny protocol"
8-
PROJECT_NUMBER = 1.1.1
9-
PROJECT_BRIEF = "Tiny communication protocol for microcontrollers"
7+
PROJECT_NAME = "TinyProto"
8+
PROJECT_NUMBER = 1.2.0
9+
PROJECT_BRIEF = "Lightweight HDLC-based data link protocol for embedded systems"
1010
PROJECT_LOGO =
1111
OUTPUT_DIRECTORY = ./docs
1212
CREATE_SUBDIRS = NO
@@ -29,7 +29,7 @@ SEPARATE_MEMBER_PAGES = NO
2929
TAB_SIZE = 4
3030
ALIASES =
3131
TCL_SUBST =
32-
OPTIMIZE_OUTPUT_FOR_C = NO
32+
OPTIMIZE_OUTPUT_FOR_C = YES
3333
OPTIMIZE_OUTPUT_JAVA = NO
3434
OPTIMIZE_FOR_FORTRAN = NO
3535
OPTIMIZE_OUTPUT_VHDL = NO
@@ -104,6 +104,7 @@ INPUT = README.md \
104104
./src/proto/ \
105105
./src/mainpage.dox \
106106
./src/arduino.dox \
107+
./src/getting_started.dox \
107108

108109
INPUT_ENCODING = UTF-8
109110
FILE_PATTERNS = *.h *.cpp *.inl *.impl *.c *.dox *.md
@@ -120,7 +121,7 @@ INPUT_FILTER =
120121
FILTER_PATTERNS =
121122
FILTER_SOURCE_FILES = NO
122123
FILTER_SOURCE_PATTERNS =
123-
USE_MDFILE_AS_MAINPAGE =
124+
USE_MDFILE_AS_MAINPAGE = README.md
124125
#---------------------------------------------------------------------------
125126
# Configuration options related to source browsing
126127
#---------------------------------------------------------------------------
@@ -202,7 +203,7 @@ EXTRA_SEARCH_MAPPINGS =
202203
#---------------------------------------------------------------------------
203204
# Configuration options related to the LaTeX output
204205
#---------------------------------------------------------------------------
205-
GENERATE_LATEX = YES
206+
GENERATE_LATEX = NO
206207
LATEX_OUTPUT = latex
207208
LATEX_CMD_NAME = latex
208209
MAKEINDEX_CMD_NAME = makeindex
@@ -264,7 +265,7 @@ PERLMOD_MAKEVAR_PREFIX =
264265
# Configuration options related to the preprocessor
265266
#---------------------------------------------------------------------------
266267
ENABLE_PREPROCESSING = YES
267-
MACRO_EXPANSION = NO
268+
MACRO_EXPANSION = YES
268269
EXPAND_ONLY_PREDEF = NO
269270
SEARCH_INCLUDES = YES
270271
INCLUDE_PATH =

src/TinyLightProtocol.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
*/
2828

2929
/**
30-
This is Tiny light protocol implementation for microcontrollers
30+
This is Tiny Light protocol C++ wrapper implementation.
3131
3232
@file
33-
@brief Tiny light protocol Arduino API
33+
@brief Tiny Light protocol C++ API
3434
*/
3535

3636
#ifndef _TINY_LIGHT_PROTOCOL_H_
@@ -54,9 +54,12 @@ namespace tinyproto
5454
*/
5555

5656
/**
57-
* ProtoLight class incapsulates Protocol functionality.
58-
* Remember that you may use always C-style API functions
59-
* instead C++. Please refer to documentation.
57+
* Light class encapsulates the Light protocol functionality.
58+
* It provides simple SLIP-like framing with optional CRC.
59+
* No acknowledgments or retransmission — use it when simplicity
60+
* and low overhead are more important than guaranteed delivery.
61+
*
62+
* You may also use the C-style API functions (tiny_light_*) directly.
6063
*/
6164
class Light
6265
{

src/TinyProtocolFd.h

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
*/
2828

2929
/**
30-
This is Tiny protocol implementation for microcontrollers
30+
This is Tiny protocol Full-Duplex C++ wrapper implementation.
3131
3232
@file
33-
@brief Tiny protocol Arduino API
33+
@brief Tiny Protocol Full Duplex C++ API
3434
3535
*/
3636
#pragma once
@@ -54,11 +54,15 @@ namespace tinyproto
5454
*/
5555

5656
/**
57-
* IFd class incapsulates Full Duplex Protocol functionality.
58-
* Full Duplex version of the Protocol allows to send messages with
59-
* confirmation.
60-
* Remember that you may use always C-style API functions
61-
* instead C++. Please refer to documentation.
57+
* IFd class encapsulates Full Duplex Protocol functionality.
58+
* It provides reliable communication with sliding window,
59+
* automatic retransmission, and CRC error detection.
60+
* Supports both ABM (peer-to-peer) and NRM (primary/secondary) modes.
61+
*
62+
* Use Fd<N> for static buffer allocation (embedded systems) or
63+
* FdD for dynamic allocation (desktop / powerful MCUs).
64+
*
65+
* You may also use the C-style API functions (tiny_fd_*) directly.
6266
*/
6367
class IFd
6468
{
@@ -343,7 +347,9 @@ class IFd
343347
};
344348

345349
/**
346-
* This is class, which allocates buffers statically. Use it for systems with low resources.
350+
* This is class, which allocates buffers statically. Use it for embedded systems with limited resources.
351+
* Template parameter S specifies the buffer size in bytes. Use tiny_fd_buffer_size_by_mtu()
352+
* to calculate the required size for your MTU and window configuration.
347353
*/
348354
template <int S> class Fd: public IFd
349355
{
@@ -358,9 +364,9 @@ template <int S> class Fd: public IFd
358364
};
359365

360366
/**
361-
* This is special class for Full duplex protocol, which allocates buffers dynamically.
362-
* We need to have separate class for this, as on small microcontrollers dynamic allocation
363-
* in basic class increases flash consumption, even if dynamic memory is not used.
367+
* This is special class for Full Duplex protocol, which allocates buffers dynamically.
368+
* Use it on desktop systems or powerful microcontrollers where heap allocation is acceptable.
369+
* On small microcontrollers, prefer Fd<N> to avoid pulling in dynamic allocation code.
364370
*/
365371
class FdD: public IFd
366372
{

src/TinyProtocolHdlc.h

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
*/
2828

2929
/**
30-
This is Tiny protocol implementation for microcontrollers
30+
This is Tiny protocol HDLC C++ wrapper implementation.
3131
3232
@file
33-
@brief Tiny protocol Arduino API
33+
@brief Tiny Protocol HDLC C++ API
3434
3535
*/
3636
#pragma once
@@ -53,11 +53,13 @@ namespace tinyproto
5353
*/
5454

5555
/**
56-
* Hdlc class incapsulates hdlc Protocol functionality.
57-
* hdlc version of the Protocol allows to send messages with
58-
* confirmation.
59-
* Remember that you may use always C-style API functions
60-
* instead C++. Please refer to documentation.
56+
* Hdlc class encapsulates HDLC low-level framing functionality.
57+
* It handles flag bytes (0x7E), byte stuffing, and CRC validation.
58+
* This class provides raw HDLC framing — it does not perform
59+
* acknowledgments or retransmission. For reliable delivery,
60+
* use the Full Duplex protocol (IFd / Fd<N> / FdD).
61+
*
62+
* You may also use the C-style API functions (hdlc_*) directly.
6163
*/
6264
class Hdlc
6365
{

0 commit comments

Comments
 (0)