feat: publish FreeRTOS C FC06 card

This commit is contained in:
2026-07-19 16:36:03 +02:00
commit 0fc6158501
195 changed files with 60591 additions and 0 deletions
+1
View File
File diff suppressed because one or more lines are too long
+61
View File
File diff suppressed because one or more lines are too long
+3948
View File
File diff suppressed because one or more lines are too long
+22
View File
@@ -0,0 +1,22 @@
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam rectangleBorderColor #2b6f8e
skinparam rectangleBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
top to bottom direction
title A1 CONTEXT — command producer, timer daemon and callbacks
rectangle "01 Application task\ncontroller · priority 2" as App
rectangle "02 Timer command queue\nlength 8 · copy command" as Queue
rectangle "03 Timer daemon task\npriority 3 · own stack" as Daemon
rectangle "04 Active timer lists\none-shot + auto-reload" as Lists
rectangle "05 Callback application code\nshort · non-blocking" as Callback
App --> Queue : start / reset / change / stop
Queue --> Daemon : receive command
Daemon --> Lists : update expiry
Lists --> Daemon : expiry at tick
Daemon --> Callback : direct call
@enduml
+44
View File
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="466px" preserveAspectRatio="none" style="width:514px;height:466px;" version="1.1" viewBox="0 0 514 466" width="514px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="456" x="32.5" y="12.0669">A1 CONTEXT — command producer, timer daemon and callbacks</text><!--MD5=[6e8f311b0aa23032184ffba0ef926f91]
entity App--><rect fill="#EDF6FA" height="50.2656" style="stroke: #2B6F8E; stroke-width: 1.5;" width="204" x="125" y="23.0728"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="135" y="45.1397">01 Application task</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="135" y="60.2725">controller · priority 2</text><!--MD5=[9762e67b79b719797c568dcdd43c32f7]
entity Queue--><rect fill="#EDF6FA" height="50.2656" style="stroke: #2B6F8E; stroke-width: 1.5;" width="204" x="125" y="150.3328"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="135" y="172.3997">02 Timer command queue</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="135" y="187.5325">length 8 · copy command</text><!--MD5=[5a2ce1de96f1d53ac483ace889f38c75]
entity Daemon--><rect fill="#EDF6FA" height="50.2656" style="stroke: #2B6F8E; stroke-width: 1.5;" width="196" x="129" y="277.6028"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="139" y="299.6697">03 Timer daemon task</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="139" y="314.8025">priority 3 · own stack</text><!--MD5=[3feb8a2d146046aaf1f549f8f1affc25]
entity Lists--><rect fill="#EDF6FA" height="50.2656" style="stroke: #2B6F8E; stroke-width: 1.5;" width="196" x="6" y="404.8628"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="16" y="426.9297">04 Active timer lists</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="16" y="442.0625">one-shot + auto-reload</text><!--MD5=[17fd48c9fefe8f6f8ffd333772c9cf11]
entity Callback--><rect fill="#EDF6FA" height="50.2656" style="stroke: #2B6F8E; stroke-width: 1.5;" width="244" x="259" y="404.8628"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="269" y="426.9297">05 Callback application code</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="269" y="442.0625">short · non-blocking</text><!--MD5=[e63fa1ea7ceec3c2f7b8dba9091d8ebe]
link App to Queue--><path d="M227,73.6528 C227,93.6528 227,122.0628 227,143.6228 " fill="none" id="App-&gt;Queue" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="227,148.5628,231,139.5628,227,143.5628,223,139.5628,227,148.5628" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="228" y="116.3997">start / reset / change / stop</text><!--MD5=[109ad9d81c1eb39dcbe2ec557768addb]
link Queue to Daemon--><path d="M227,200.9228 C227,220.9228 227,249.3228 227,270.8928 " fill="none" id="Queue-&gt;Daemon" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="227,275.8328,231,266.8328,227,270.8328,223,266.8328,227,275.8328" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="228" y="243.6697">receive command</text><!--MD5=[4702a68ec0270973a53cdef44bd30c10]
link Daemon to Lists--><path d="M128.55,320.5128 C108.72,328.5428 90.24,340.4028 78,357.8628 C69.42,370.1128 73.6,385.5228 80.89,398.8628 " fill="none" id="Daemon-&gt;Lists" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="83.41,403.1328,82.2861,393.3483,80.8712,398.8253,75.3941,397.4104,83.41,403.1328" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="79" y="370.9297">update expiry</text><!--MD5=[ce0f57f328c8af3ec94508f093302e28]
link Lists to Daemon--><path d="M151.17,404.3728 C164.12,396.1528 177.48,386.1628 188,374.8628 C199.09,362.9628 208.11,347.3228 214.67,333.7428 " fill="none" id="Lists-&gt;Daemon" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="216.69,329.4328,209.2415,335.8764,214.5631,333.9579,216.4816,339.2795,216.69,329.4328" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="201.26" y="370.9297">expiry at tick</text><!--MD5=[d6c78dd4aa018993876ca7133ea5cd41]
link Daemon to Callback--><path d="M277.54,328.0928 C292.59,336.4928 308.62,346.6428 322,357.8628 C336.45,369.9928 350.07,385.9828 360.58,399.7328 " fill="none" id="Daemon-&gt;Callback" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="363.39,403.4728,361.1516,393.8817,360.374,399.4849,354.7709,398.7073,363.39,403.4728" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="339.47" y="370.9297">direct call</text><!--MD5=[65d4178a6a3fbe9bd07d07f6ded3430f]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam rectangleBorderColor #2b6f8e
skinparam rectangleBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
top to bottom direction
title A1 CONTEXT — command producer, timer daemon and callbacks
rectangle "01 Application task\ncontroller · priority 2" as App
rectangle "02 Timer command queue\nlength 8 · copy command" as Queue
rectangle "03 Timer daemon task\npriority 3 · own stack" as Daemon
rectangle "04 Active timer lists\none-shot + auto-reload" as Lists
rectangle "05 Callback application code\nshort · non-blocking" as Callback
App - -> Queue : start / reset / change / stop
Queue - -> Daemon : receive command
Daemon - -> Lists : update expiry
Lists - -> Daemon : expiry at tick
Daemon - -> Callback : direct call
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

+30
View File
@@ -0,0 +1,30 @@
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam classBorderColor #2b6f8e
skinparam classBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A3 DISPATCH — TimerHandle_t selects ID and one shared callback
class "01 TimerHandle_t" as Handle
class "02 Timer_t" as Timer {
period
auto_reload
pvTimerID
pxCallbackFunction
}
class "03 fc06_timer_callback(handle)" as Callback
class "04 TimerTag" as Tag {
kind = ONE_SHOT | AUTO
marker
}
class "05 bounded evidence" as Evidence
Handle --> Timer
Timer --> Callback : daemon invokes
Callback --> Timer : pvTimerGetTimerID
Timer --> Tag
Callback --> Evidence : publish E04/E05/E07/E08
@enduml
+52
View File
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="138.9961px" preserveAspectRatio="none" style="width:895px;height:138px;" version="1.1" viewBox="0 0 895 138" width="895.1351px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="344.7104" x="277.6448" y="8.3863">A3 DISPATCH — TimerHandle_t selects ID and one shared callback</text><!--MD5=[036c1653d048e8122c132b15802304de]
class Handle--><rect fill="#EDF6FA" height="31.9691" id="Handle" style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" width="109.8069" x="4.1699" y="48.6506"/><ellipse cx="13.8996" cy="59.0753" fill="#ADD1B2" rx="6.9498" ry="6.9498" style="stroke: #2B6F8E; stroke-width: 0.694980694980695;"/><path d="M15.1918,62.0181 Q14.8878,62.1701 14.5403,62.2462 Q14.2037,62.333 13.8345,62.333 Q12.4988,62.333 11.793,61.4535 Q11.098,60.5739 11.098,58.9124 Q11.098,57.251 11.793,56.3714 Q12.4988,55.4918 13.8345,55.4918 Q14.2037,55.4918 14.5512,55.5787 Q14.8986,55.6547 15.1918,55.8176 L15.1918,57.2618 Q14.8552,56.9578 14.5403,56.8166 Q14.2254,56.6646 13.8888,56.6646 Q13.1829,56.6646 12.8137,57.2401 Q12.4445,57.8048 12.4445,58.9124 Q12.4445,60.0309 12.8137,60.5956 Q13.1829,61.1603 13.8888,61.1603 Q14.2254,61.1603 14.5403,61.0191 Q14.8552,60.8779 15.1918,60.563 L15.1918,62.0181 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="88.9575" x="22.9344" y="62.2031">01 TimerHandle_t</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="4.8649" x2="113.2819" y1="69.5" y2="69.5"/><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="4.8649" x2="113.2819" y1="75.0599" y2="75.0599"/><!--MD5=[1b844c90688aafb95cd8c95626c3b83a]
class Timer--><rect fill="#EDF6FA" height="74.0372" id="Timer" style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" width="108.417" x="156.3707" y="27.6135"/><ellipse cx="180.4865" cy="38.0382" fill="#ADD1B2" rx="6.9498" ry="6.9498" style="stroke: #2B6F8E; stroke-width: 0.694980694980695;"/><path d="M181.7787,40.9811 Q181.4747,41.1331 181.1272,41.2091 Q180.7905,41.296 180.4213,41.296 Q179.0857,41.296 178.3798,40.4164 Q177.6848,39.5368 177.6848,37.8754 Q177.6848,36.2139 178.3798,35.3343 Q179.0857,34.4548 180.4213,34.4548 Q180.7905,34.4548 181.138,34.5416 Q181.4855,34.6176 181.7787,34.7805 L181.7787,36.2248 Q181.4421,35.9207 181.1272,35.7796 Q180.8123,35.6275 180.4756,35.6275 Q179.7698,35.6275 179.4006,36.2031 Q179.0314,36.7677 179.0314,37.8754 Q179.0314,38.9938 179.4006,39.5585 Q179.7698,40.1232 180.4756,40.1232 Q180.8123,40.1232 181.1272,39.982 Q181.4421,39.8409 181.7787,39.5259 L181.7787,40.9811 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="55.5985" x="192.7181" y="41.166">02 Timer_t</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="157.0656" x2="264.0927" y1="48.463" y2="48.463"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="33.3591" x="160.5405" y="59.6291">period</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="61.1583" x="160.5405" y="70.1462">auto_reload</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="50.0386" x="160.5405" y="80.6632">pvTimerID</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="100.0772" x="160.5405" y="91.1802">pxCallbackFunction</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="157.0656" x2="264.0927" y1="96.0909" y2="96.0909"/><!--MD5=[687e0e93109a4e3b835e34cee365dc7c]
class Callback--><rect fill="#EDF6FA" height="31.9691" id="Callback" style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" width="187.6448" x="402.3938" y="15.9865"/><ellipse cx="412.1236" cy="26.4112" fill="#ADD1B2" rx="6.9498" ry="6.9498" style="stroke: #2B6F8E; stroke-width: 0.694980694980695;"/><path d="M413.4158,29.354 Q413.1117,29.5061 412.7642,29.5821 Q412.4276,29.6689 412.0584,29.6689 Q410.7227,29.6689 410.0169,28.7894 Q409.3219,27.9098 409.3219,26.2483 Q409.3219,24.5869 410.0169,23.7073 Q410.7227,22.8277 412.0584,22.8277 Q412.4276,22.8277 412.7751,22.9146 Q413.1226,22.9906 413.4158,23.1535 L413.4158,24.5978 Q413.0792,24.2937 412.7642,24.1525 Q412.4493,24.0005 412.1127,24.0005 Q411.4069,24.0005 411.0376,24.576 Q410.6684,25.1407 410.6684,26.2483 Q410.6684,27.3668 411.0376,27.9315 Q411.4069,28.4962 412.1127,28.4962 Q412.4493,28.4962 412.7642,28.355 Q413.0792,28.2138 413.4158,27.8989 L413.4158,29.354 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="166.7954" x="421.1583" y="29.539">03 fc06_timer_callback(handle)</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="403.0888" x2="589.3436" y1="36.8359" y2="36.8359"/><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="403.0888" x2="589.3436" y1="42.3958" y2="42.3958"/><!--MD5=[39d6d2ea03de602dbf4d534e70c872a9]
class Tag--><rect fill="#EDF6FA" height="53.0031" id="Tag" style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" width="130.6564" x="430.888" y="78.4375"/><ellipse cx="462.8571" cy="88.8622" fill="#ADD1B2" rx="6.9498" ry="6.9498" style="stroke: #2B6F8E; stroke-width: 0.694980694980695;"/><path d="M464.1494,91.805 Q463.8453,91.957 463.4978,92.033 Q463.1612,92.1199 462.792,92.1199 Q461.4563,92.1199 460.7505,91.2403 Q460.0555,90.3607 460.0555,88.6993 Q460.0555,87.0379 460.7505,86.1583 Q461.4563,85.2787 462.792,85.2787 Q463.1612,85.2787 463.5087,85.3656 Q463.8562,85.4416 464.1494,85.6045 L464.1494,87.0487 Q463.8127,86.7447 463.4978,86.6035 Q463.1829,86.4515 462.8463,86.4515 Q462.1404,86.4515 461.7712,87.027 Q461.402,87.5917 461.402,88.6993 Q461.402,89.8178 461.7712,90.3825 Q462.1404,90.9471 462.8463,90.9471 Q463.1829,90.9471 463.4978,90.806 Q463.8127,90.6648 464.1494,90.3499 L464.1494,91.805 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="61.1583" x="476.0618" y="91.9899">04 TimerTag</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="431.583" x2="560.8494" y1="99.2869" y2="99.2869"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="122.3166" x="435.0579" y="110.4531">kind = ONE_SHOT | AUTO</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="33.3591" x="435.0579" y="120.9701">marker</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="431.583" x2="560.8494" y1="125.8808" y2="125.8808"/><!--MD5=[13f56afd7aace6dccdfaaac41cf97a6a]
class Evidence--><rect fill="#EDF6FA" height="31.9691" id="Evidence" style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" width="126.4865" x="761.0039" y="15.9865"/><ellipse cx="770.7336" cy="26.4112" fill="#ADD1B2" rx="6.9498" ry="6.9498" style="stroke: #2B6F8E; stroke-width: 0.694980694980695;"/><path d="M772.0258,29.354 Q771.7218,29.5061 771.3743,29.5821 Q771.0376,29.6689 770.6684,29.6689 Q769.3328,29.6689 768.6269,28.7894 Q767.9319,27.9098 767.9319,26.2483 Q767.9319,24.5869 768.6269,23.7073 Q769.3328,22.8277 770.6684,22.8277 Q771.0376,22.8277 771.3851,22.9146 Q771.7326,22.9906 772.0258,23.1535 L772.0258,24.5978 Q771.6892,24.2937 771.3743,24.1525 Q771.0594,24.0005 770.7227,24.0005 Q770.0169,24.0005 769.6477,24.576 Q769.2785,25.1407 769.2785,26.2483 Q769.2785,27.3668 769.6477,27.9315 Q770.0169,28.4962 770.7227,28.4962 Q771.0594,28.4962 771.3743,28.355 Q771.6892,28.2138 772.0258,27.8989 L772.0258,29.354 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="105.6371" x="779.7683" y="29.539">05 bounded evidence</text><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="761.6988" x2="886.7954" y1="36.8359" y2="36.8359"/><line style="stroke: #2B6F8E; stroke-width: 1.0424710424710426;" x1="761.6988" x2="886.7954" y1="42.3958" y2="42.3958"/><!--MD5=[9aaf6b65446d0d8cff8d34f4226411a5]
link Handle to Timer--><path d="M114.1784,64.6352 C126.3544,64.6352 139.3228,64.6352 151.6517,64.6352 " fill="none" id="Handle-&gt;Timer" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><polygon fill="#8295A0" points="155.1127,64.6352,148.8579,61.8552,151.6378,64.6352,148.8579,67.4151,155.1127,64.6352" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><!--MD5=[0e835bc49005b83abe5bccf4754d2008]
link Timer to Callback--><path d="M265.0239,55.1278 C271.9459,54.0367 278.9514,53.0081 285.6371,52.1255 C322.1653,47.3023 362.4185,43.1603 397.8208,39.9008 " fill="none" id="Timer-&gt;Callback" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><polygon fill="#8295A0" points="401.0664,39.602,394.5833,37.4065,397.6061,39.9201,395.0924,42.9429,401.0664,39.602" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="77.8378" x="294.6718" y="39.0786">daemon invokes</text><!--MD5=[435802060446d4a7a4e86265acebdb68]
link Callback to Timer--><path d="M456.4703,48.2545 C434.8147,56.3996 407.1544,65.3927 381.5444,69.5 C339.4564,76.2483 328.2394,70.89 285.6371,69.5 C280.3274,69.3263 274.8162,69.083 269.2911,68.7981 " fill="none" id="Callback-&gt;Timer" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><polygon fill="#8295A0" points="266.122,68.6243,272.2169,71.7392,269.5918,68.8127,272.5183,66.1876,266.122,68.6243" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="94.5174" x="286.332" y="66.7666">pvTimerGetTimerID</text><!--MD5=[d8934d44648bad78ae02218c5d8567d0]
link Timer to Tag--><path d="M265.0239,75.0738 C271.9529,76.3039 278.9514,77.4854 285.6371,78.5348 C332.3745,85.8321 385.2139,92.4761 426.183,97.2715 " fill="none" id="Timer-&gt;Tag" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><polygon fill="#8295A0" points="429.5676,97.6676,423.6821,94.1729,426.1167,97.2598,423.0298,99.6944,429.5676,97.6676" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><!--MD5=[d36c72998cf63c3a06f8f529026ecd65]
link Callback to Evidence--><path d="M590.2958,31.9711 C643.3714,31.9711 708.5954,31.9711 756.5629,31.9711 " fill="none" id="Callback-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><polygon fill="#8295A0" points="759.8085,31.9711,753.5537,29.1911,756.3336,31.9711,753.5537,34.751,759.8085,31.9711" style="stroke: #8295A0; stroke-width: 0.694980694980695;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="9.0347" lengthAdjust="spacingAndGlyphs" textLength="127.8764" x="611.583" y="29.2376">publish E04/E05/E07/E08</text><!--MD5=[343177cdd210e93b538348db8114006a]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam classBorderColor #2b6f8e
skinparam classBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A3 DISPATCH — TimerHandle_t selects ID and one shared callback
class "01 TimerHandle_t" as Handle
class "02 Timer_t" as Timer {
period
auto_reload
pvTimerID
pxCallbackFunction
}
class "03 fc06_timer_callback(handle)" as Callback
class "04 TimerTag" as Tag {
kind = ONE_SHOT | AUTO
marker
}
class "05 bounded evidence" as Evidence
Handle - -> Timer
Timer - -> Callback : daemon invokes
Callback - -> Timer : pvTimerGetTimerID
Timer - -> Tag
Callback - -> Evidence : publish E04/E05/E07/E08
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>

After

Width:  |  Height:  |  Size: 12 KiB

+28
View File
@@ -0,0 +1,28 @@
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 12
skinparam sequenceParticipantBorderColor #2b6f8e
skinparam sequenceParticipantBackgroundColor #edf6fa
skinparam sequenceArrowColor #8295a0
title A5 FLOW — command acceptance and later daemon execution
participant controller
participant "command queue" as queue
participant "timer daemon" as daemon
participant "one-shot" as one
participant "auto" as auto
participant verifier
controller -> queue : 02 start one + auto accepted
queue -> daemon : process start commands
controller -> queue : 03 reset one at t1
queue -> daemon : move one expiry 5 → 6
daemon -> auto : 04 callback t2
daemon -> auto : 05 callback t4
controller -> queue : 06 change auto period 2 → 3
daemon -> one : 07 callback t6 exactly once
daemon -> auto : 08 callback t7
controller -> queue : 09 stop auto accepted
verifier -> verifier : 10 timeline + daemon stack = PASS
@enduml
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

+28
View File
@@ -0,0 +1,28 @@
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam stateBorderColor #2b6f8e
skinparam stateBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A6 STATE — inactive, active, expired and reloaded
state "01 INACTIVE" as Inactive
state "02 ACTIVE\nexpiry in list" as Active
state "03 COMMAND PENDING\naccepted ≠ executed" as Pending
state "04 CALLBACK\ndaemon stack" as Callback
state "05 RELOADED\nnext expiry" as Reloaded
state "06 STOPPED" as Stopped
[*] --> Inactive
Inactive --> Pending : start
Pending --> Active : daemon command
Active --> Pending : reset/change
Active --> Callback : expiry
Callback --> Reloaded : auto-reload
Callback --> Inactive : one-shot
Reloaded --> Active
Active --> Stopped : stop processed
Stopped --> [*]
@enduml
+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="161.0738px" preserveAspectRatio="none" style="width:895px;height:161px;" version="1.1" viewBox="0 0 895 161" width="895.9732px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="263.0872" x="318.4564" y="8.0986">A6 STATE — inactive, active, expired and reloaded</text><rect fill="#EDF6FA" height="33.557" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="72.4832" x="58.3893" y="28.2771"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="58.3893" x2="130.8725" y1="45.1447" y2="45.1447"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="59.0604" x="65.1007" y="39.7313">01 INACTIVE</text><rect fill="#EDF6FA" height="33.7353" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="88.5906" x="431.5436" y="67.7871"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="431.5436" x2="520.1342" y1="94.811" y2="94.811"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="48.3221" x="451.6779" y="79.2414">02 ACTIVE</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="75.1678" x="438.255" y="89.3977">expiry in list</text><rect fill="#EDF6FA" height="33.7353" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="115.4362" x="199.3289" y="54.3643"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="199.3289" x2="314.7651" y1="81.3882" y2="81.3882"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="96.6443" x="208.7248" y="65.8186">03 COMMAND PENDING</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="102.0134" x="206.0403" y="75.9748">accepted ≠ executed</text><rect fill="#EDF6FA" height="33.7353" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="77.8523" x="636.9128" y="15.4381"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="636.9128" x2="714.7651" y1="42.462" y2="42.462"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="59.0604" x="646.3087" y="26.8924">04 CALLBACK</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="64.4295" x="643.6242" y="37.0487">daemon stack</text><rect fill="#EDF6FA" height="33.7353" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="72.4832" x="815.4362" y="48.324"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="815.4362" x2="887.9195" y1="75.3479" y2="75.3479"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="59.0604" x="822.1477" y="59.7783">05 RELOADED</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="59.0604" x="822.1477" y="69.9346">next expiry</text><rect fill="#EDF6FA" height="33.557" rx="8.3893" ry="8.3893" style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" width="67.1141" x="642.2819" y="120.2234"/><line style="stroke: #2B6F8E; stroke-width: 1.0067114093959733;" x1="642.2819" x2="709.396" y1="137.091" y2="137.091"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="53.6913" x="648.9933" y="131.6777">06 STOPPED</text><ellipse cx="10.7383" cy="45.0556" fill="#000000" rx="6.7114" ry="6.7114" style="stroke: none; stroke-width: 0.6711409395973155;"/><ellipse cx="851.6779" cy="137.0019" fill="none" rx="6.7114" ry="6.7114" style="stroke: #000000; stroke-width: 0.6711409395973155;"/><ellipse cx="852.0134" cy="137.3375" fill="#000000" rx="4.0268" ry="4.0268" style="stroke: none; stroke-width: 0.6711409395973155;"/><!--MD5=[ffc732bab50a1decce1a684a3e8ab537]
link *start to Inactive--><path d="M17.6107,45.0556 C25.4966,45.0556 39.7785,45.0556 53.8792,45.0556 " fill="none" id="*start-&gt;Inactive" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="57.2215,45.0556,51.1812,42.371,53.8658,45.0556,51.1812,47.7401,57.2215,45.0556" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><!--MD5=[ee34bccd7dbffff0b100e9c2d63b911e]
link Inactive to Pending--><path d="M131.047,50.8677 C149.8188,53.9146 173.3423,57.7401 194.9329,61.2435 " fill="none" id="Inactive-&gt;Pending" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="198.2148,61.7804,192.6827,58.1627,194.9024,61.2428,191.8224,63.4625,198.2148,61.7804" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="26.8456" x="151.6779" y="51.6307">start</text><!--MD5=[c17b6c98fcfe911998c823357b2ac4d9]
link Pending to Active--><path d="M290.0134,88.4247 C303.4899,94.6865 319.557,100.9818 334.8993,104.116 C368.2148,110.9214 377.7785,109.1361 411.4094,104.116 C416.6107,103.3375 421.9732,102.2301 427.2752,100.9214 " fill="none" id="Pending-&gt;Active" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="430.3289,100.1361,423.8109,99.0373,427.0785,100.9703,425.1455,104.2379,430.3289,100.1361" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="75.1678" x="335.5705" y="101.4763">daemon command</text><!--MD5=[90c6f6aee1a3f623ccf8d5db7d03d435]
link Active to Pending--><path d="M431.2953,81.9415 C399.0738,79.9549 354.8926,77.2301 319.1611,75.022 " fill="none" id="Active-&gt;Pending" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="315.8658,74.8207,321.7252,77.8799,319.2148,75.0318,322.063,72.5214,315.8658,74.8207" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="64.4295" x="340.9396" y="73.7045">reset/change</text><!--MD5=[a2bd2b68ba003104d26d5a263ccc3340]
link Active to Callback--><path d="M520.4228,73.1093 C548.0738,65.8408 584.5168,56.2502 616.7785,47.7401 C621.9463,46.3777 627.3758,44.9415 632.7517,43.5254 " fill="none" id="Active-&gt;Callback" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="635.8725,42.6999,629.3448,41.6599,632.6298,43.5633,630.7263,46.8482,635.8725,42.6999" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="32.2148" x="562.4161" y="45.1005">expiry</text><!--MD5=[127b62660c7a1708bb6a35790c345c30]
link Callback to Reloaded--><path d="M715.0201,39.5589 C743.5302,44.9348 782.255,52.2301 811.094,57.6663 " fill="none" id="Callback-&gt;Reloaded" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="814.2752,58.2636,808.8384,54.5043,810.9778,57.6406,807.8415,59.78,814.2752,58.2636" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="59.0604" x="735.5705" y="41.2414">auto-reload</text><!--MD5=[ade6d1e4076f4242e4c1aa52344721b3]
link Callback to Inactive--><path d="M636.7919,32.6797 C609.7919,32.9482 572.8255,33.3173 540.2685,33.6462 C367.2617,35.4046 323.5839,25.3911 151.0067,37.673 C145.8859,38.0354 140.5235,38.5656 135.2282,39.1697 " fill="none" id="Callback-&gt;Inactive" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="132.2013,39.5254,138.5149,41.4826,135.5339,39.1316,137.8849,36.1506,132.2013,39.5254" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="42.953" x="351.6779" y="28.9528">one-shot</text><!--MD5=[b4e9c5ed18565202f5e3ce57d40b7ed8]
link Reloaded to Active--><path d="M815.1409,67.0556 C747.443,70.5724 600.8054,78.1965 524.6309,82.1495 " fill="none" id="Reloaded-&gt;Active" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="521.4027,82.3173,527.5732,84.6872,524.7539,82.1445,527.2967,79.3252,521.4027,82.3173" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><!--MD5=[37f175845fd18c82602ebf0d6d081bf4]
link Active to Stopped--><path d="M509.9732,101.7133 C519.5638,106.069 530.1678,110.3979 540.2685,113.512 C572.5101,123.4381 610.4564,129.5791 637.8792,133.0824 " fill="none" id="Active-&gt;Stopped" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="641.1812,133.4918,635.5157,130.0868,637.8508,133.0803,634.8573,135.4154,641.1812,133.4918" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="8.7248" lengthAdjust="spacingAndGlyphs" textLength="75.1678" x="540.9396" y="110.8723">stop processed</text><!--MD5=[fa4bf149a40dcd4cb096fb2651590497]
link Stopped to *end--><path d="M709.5369,137.0019 C749.7181,137.0019 815.3221,137.0019 840.6107,137.0019 " fill="none" id="Stopped-&gt;*end" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><polygon fill="#8295A0" points="843.8322,137.0019,837.7919,134.3173,840.4765,137.0019,837.7919,139.6865,843.8322,137.0019" style="stroke: #8295A0; stroke-width: 0.6711409395973155;"/><!--MD5=[75bde4e266bc855fa1750b24ee393cd9]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam stateBorderColor #2b6f8e
skinparam stateBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A6 STATE — inactive, active, expired and reloaded
state "01 INACTIVE" as Inactive
state "02 ACTIVE\nexpiry in list" as Active
state "03 COMMAND PENDING\naccepted ≠ executed" as Pending
state "04 CALLBACK\ndaemon stack" as Callback
state "05 RELOADED\nnext expiry" as Reloaded
state "06 STOPPED" as Stopped
[*] - -> Inactive
Inactive - -> Pending : start
Pending - -> Active : daemon command
Active - -> Pending : reset/change
Active - -> Callback : expiry
Callback - -> Reloaded : auto-reload
Callback - -> Inactive : one-shot
Reloaded - -> Active
Active - -> Stopped : stop processed
Stopped - -> [*]
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>

After

Width:  |  Height:  |  Size: 11 KiB

+35
View File
@@ -0,0 +1,35 @@
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam objectBorderColor #2b6f8e
skinparam objectBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A7 RUNTIME — callback belongs to the timer daemon, not to controller
object "01 g_fc06" as Exp {
auto_tick = [2,4,7]
one_shot_tick = 6
}
object "02 controller TCB" as Controller {
priority = 2
sp = controller_sp
}
object "03 timer daemon TCB" as Daemon {
priority = 3
handle = daemon_seen
sp = callback_sp
}
object "04 one-shot Timer_t" as One
object "05 auto Timer_t" as Auto
object "06 events[10]" as Events
Exp --> Controller
Exp --> Daemon
Exp --> One
Exp --> Auto
Daemon --> One : callback
Daemon --> Auto : callback
Daemon --> Events : commits
@enduml
+54
View File
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="351px" preserveAspectRatio="none" style="width:706px;height:351px;" version="1.1" viewBox="0 0 706 351" width="706px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="544" x="84.5" y="12.0669">A7 RUNTIME — callback belongs to the timer daemon, not to controller</text><rect fill="#EDF6FA" height="57.3984" style="stroke: #2B6F8E; stroke-width: 1.5;" width="164" x="6" y="125.8628"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="72" x="52" y="139.9297">01 g_fc06</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="7" x2="169" y1="144.9956" y2="144.9956"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="12" y="161.0625">auto_tick = [2,4,7]</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="12" y="176.1953">one_shot_tick = 6</text><rect fill="#EDF6FA" height="57.3984" style="stroke: #2B6F8E; stroke-width: 1.5;" width="156" x="239" y="22.8628"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="249" y="36.9297">02 controller TCB</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="240" x2="394" y1="41.9956" y2="41.9956"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="245" y="58.0625">priority = 2</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="245" y="73.1953">sp = controller_sp</text><rect fill="#EDF6FA" height="72.5313" style="stroke: #2B6F8E; stroke-width: 1.5;" width="172" x="231" y="190.3028"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="241" y="204.3697">03 timer daemon TCB</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="232" x2="402" y1="209.4356" y2="209.4356"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="237" y="225.5025">priority = 3</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="237" y="240.6353">handle = daemon_seen</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="237" y="255.7681">sp = callback_sp</text><rect fill="#EDF6FA" height="35.1328" style="stroke: #2B6F8E; stroke-width: 1.5;" width="166" x="529" y="130.0028"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="536" y="144.0697">04 one-shot Timer_t</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="530" x2="694" y1="149.1356" y2="149.1356"/><rect fill="#EDF6FA" height="35.1328" style="stroke: #2B6F8E; stroke-width: 1.5;" width="134" x="545" y="305.0028"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="552" y="319.0697">05 auto Timer_t</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="546" x2="678" y1="324.1356" y2="324.1356"/><rect fill="#EDF6FA" height="35.1328" style="stroke: #2B6F8E; stroke-width: 1.5;" width="118" x="553" y="213.0028"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="560" y="227.0697">06 events[10]</text><line style="stroke: #2B6F8E; stroke-width: 1.5;" x1="554" x2="670" y1="232.1356" y2="232.1356"/><!--MD5=[1a31be1b7a50f445e84ed033b77f6a4c]
link Exp to Controller--><path d="M153.14,125.4628 C182.15,112.3028 216.5,96.7128 246.15,83.2628 " fill="none" id="Exp-&gt;Controller" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="250.64,81.2228,240.7915,81.3056,246.0882,83.2918,244.1019,88.5885,250.64,81.2228" style="stroke: #8295A0; stroke-width: 1.0;"/><!--MD5=[428384a96f717b0e614d9bfceadb1c2e]
link Exp to Daemon--><path d="M170.31,180.3528 C187.91,185.9428 206.64,191.8828 224.6,197.5728 " fill="none" id="Exp-&gt;Daemon" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="229.22,199.0428,221.8573,192.5014,224.4556,197.5262,219.4307,200.1245,229.22,199.0428" style="stroke: #8295A0; stroke-width: 1.0;"/><!--MD5=[a6836e023b10c5efa6faf5fc8daa83e7]
link Exp to One--><path d="M170.28,153.4728 C265.75,152.1928 423.6,150.0828 522.21,148.7528 " fill="none" id="Exp-&gt;One" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="527.11,148.6928,518.0649,144.7959,522.1103,148.75,518.1563,152.7954,527.11,148.6928" style="stroke: #8295A0; stroke-width: 1.0;"/><!--MD5=[6254b1ed770dd725491d9f8587779f81]
link Exp to Auto--><path d="M112.17,183.7428 C137.76,213.6428 181.9,258.7628 231,280.5628 C330.91,324.9328 459.56,329.6028 538.61,327.2828 " fill="none" id="Exp-&gt;Auto" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="543.17,327.1328,534.0488,323.4175,538.1725,327.2899,534.3001,331.4136,543.17,327.1328" style="stroke: #8295A0; stroke-width: 1.0;"/><!--MD5=[9a4a470d072cef1354b17badbd81992f]
link Daemon to One--><path d="M403.14,203.6128 C445.89,192.0828 497.15,178.2628 538.07,167.2328 " fill="none" id="Daemon-&gt;One" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="542.82,165.9528,533.0896,164.4301,537.9919,167.2527,535.1694,172.155,542.82,165.9528" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="434" y="176.0597">callback</text><!--MD5=[be924135fb5b71405948022a1f8b9b1b]
link Daemon to Auto--><path d="M403.14,254.4628 C450.17,269.8728 507.48,288.6528 550.01,302.5828 " fill="none" id="Daemon-&gt;Auto" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="554.74,304.1328,547.4309,297.5315,549.9881,302.5774,544.9422,305.1346,554.74,304.1328" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="434" y="262.0397">callback</text><!--MD5=[1b37357af88466b9a3d5cb36fbcd013d]
link Daemon to Events--><path d="M403.38,232.3428 C413.36,232.8428 423.4,233.2728 433,233.5628 C462.32,234.4628 469.67,233.9628 499,233.5628 C514.37,233.3628 530.92,232.9928 546.46,232.5928 " fill="none" id="Daemon-&gt;Events" style="stroke: #8295A0; stroke-width: 1.0;"/><polygon fill="#8295A0" points="551.07,232.4628,541.9702,228.6955,546.0717,232.5913,542.1758,236.6928,551.07,232.4628" style="stroke: #8295A0; stroke-width: 1.0;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="438" y="229.6297">commits</text><!--MD5=[d83e6f3fc2813b53f9c8f4a3bd2a5f67]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam objectBorderColor #2b6f8e
skinparam objectBackgroundColor #edf6fa
skinparam ArrowColor #8295a0
left to right direction
title A7 RUNTIME — callback belongs to the timer daemon, not to controller
object "01 g_fc06" as Exp {
auto_tick = [2,4,7]
one_shot_tick = 6
}
object "02 controller TCB" as Controller {
priority = 2
sp = controller_sp
}
object "03 timer daemon TCB" as Daemon {
priority = 3
handle = daemon_seen
sp = callback_sp
}
object "04 one-shot Timer_t" as One
object "05 auto Timer_t" as Auto
object "06 events[10]" as Events
Exp - -> Controller
Exp - -> Daemon
Exp - -> One
Exp - -> Auto
Daemon - -> One : callback
Daemon - -> Auto : callback
Daemon - -> Events : commits
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

+15
View File
@@ -0,0 +1,15 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="card-renderer" content="react">
<title>Karta pracy</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="app.css">
</head>
<body class="resource-header-enabled">
<div id="root"></div>
<script type="module" src="app.js"></script>
</body>
</html>
+39
View File
File diff suppressed because one or more lines are too long