Skip to content

Commit 14d4310

Browse files
committed
Added PlantUML diagram to protocols
1 parent d419652 commit 14d4310

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

sphinx/doc/cpp_protocol.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,41 @@ Standard layer implementations can be used to construct the following stacks (to
6565
:cpp:class:`stored::TerminalLayer`,
6666
:cpp:class:`stored::XsimLayer`
6767

68+
Protocol layers make an onion shape either around a debugger or a synchronizer.
69+
Following the example of the lossless UART:
70+
71+
.. uml::
72+
73+
left to right direction
74+
75+
component "StdioLayer" {
76+
() "Decode" as decode3
77+
() "Encode" as encode3
78+
79+
component "TerminalLayer" {
80+
() "Decode" as decode2
81+
() "Encode" as encode2
82+
83+
component "AsciiEscapeLayer" {
84+
() "Decode" as decode1
85+
() "Encode" as encode1
86+
87+
component "Synchronizer / Debugger" as core {
88+
}
89+
}
90+
}
91+
}
92+
93+
[In] --> decode3
94+
decode3 --> decode2
95+
decode2 --> decode1
96+
decode1 --> core
97+
98+
core --> encode1
99+
encode1 --> encode2
100+
encode2 --> encode3
101+
encode3 --> [Out]
102+
68103
If you have to implement you own protocol layer, start with
69104
:cpp:class:`stored::ProtocolLayer`. Especially, override
70105
:cpp:func:`stored::ProtocolLayer::encode()` for messages passed down the stack

0 commit comments

Comments
 (0)