File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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+
68103If 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
You can’t perform that action at this time.
0 commit comments