39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
@startuml
|
||
scale max 900*520
|
||
skinparam backgroundColor transparent
|
||
skinparam shadowing false
|
||
skinparam defaultFontName "DejaVu Sans Mono"
|
||
skinparam defaultFontSize 13
|
||
skinparam ArrowColor #8295a0
|
||
skinparam classBorderColor #2b6f8e
|
||
skinparam classBackgroundColor #edf6fa
|
||
skinparam classFontColor #183f53
|
||
skinparam roundcorner 10
|
||
top to bottom direction
|
||
title A2 STRUCTURE — queue length 1 and three task contexts
|
||
|
||
class "01 QueueMessage" as Message {
|
||
sequence : uint32_t
|
||
payload : uint32_t
|
||
checksum : uint32_t
|
||
}
|
||
class "02 Queue<1 × QueueMessage>" as Queue <<FreeRTOS object>> {
|
||
uxLength = 1
|
||
uxItemSize = 12
|
||
waiting : List_t
|
||
}
|
||
class "03 receiver" as Receiver <<task p3>>
|
||
class "04 sender" as Sender <<task p2>>
|
||
class "05 verifier" as Verifier <<task p1>>
|
||
class "06 bounded evidence[12]" as Evidence
|
||
|
||
Sender -down-> Queue : xQueueSend copies bytes
|
||
Queue -down-> Receiver : xQueueReceive copies bytes
|
||
Receiver ..> Message
|
||
Sender ..> Message
|
||
Receiver --> Evidence : publish
|
||
Sender --> Evidence : publish
|
||
Verifier --> Evidence : digest
|
||
Verifier ..> Queue : verifies FIFO / states
|
||
@enduml
|