Initial commit

This commit is contained in:
2023-11-26 20:13:49 +01:00
commit dc2dc5c58b
820 changed files with 258269 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,455 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<help_text>
// Uncomment the following line to change the fontsize and font:
// fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use +/- or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////
// This text will be stored with each diagram; use it for notes.</help_text>
<zoom_level>9</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>288</x>
<y>234</y>
<w>252</w>
<h>117</h>
</coordinates>
<panel_attributes>ButtonEventsHandler
&lt;&lt;Singleton&gt;&gt;
bg=white</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Text</id>
<coordinates>
<x>63</x>
<y>27</y>
<w>522</w>
<h>36</h>
</coordinates>
<panel_attributes>*ButtonManager - Basic Class Structure - Overview*
style=wordwrap
fontsize=22</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>54</x>
<y>45</y>
<w>504</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=-
lw=2.5</panel_attributes>
<additional_attributes>10.0;10.0;540.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>63</x>
<y>756</y>
<w>882</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=..
halign=right
2021-11-09</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>63</x>
<y>567</y>
<w>882</w>
<h>180</h>
</coordinates>
<panel_attributes>Note:
- ButtonsController receives button IO interrupts and debounces them
- ButtonsController handles all buttons present on the board
- ButtonsController sends button pressed/realeased notifications via a callback method
- ButtonEventsHandler creates button short pressed and button long pressed notifications
- ButtonEventsHandler notifies via an observer pattern.
- ButtonEventsLogger logs the button short/long pressed notifications via Trace to the host PC
bg=#FFCCCC</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>288</x>
<y>468</y>
<w>252</w>
<h>72</h>
</coordinates>
<panel_attributes>ButtonsController
&lt;&lt;Singleton&gt;&gt;
bg=white</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>288</x>
<y>90</y>
<w>252</w>
<h>72</h>
</coordinates>
<panel_attributes>app::ButtonEventsLogger
bg=#53C05B</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>405</x>
<y>153</y>
<w>90</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;-
&lt;&lt;observing&gt;&gt;</panel_attributes>
<additional_attributes>10.0;90.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>405</x>
<y>342</y>
<w>81</w>
<h>144</h>
</coordinates>
<panel_attributes>lt=&lt;-
&lt;&lt;callback&gt;&gt;</panel_attributes>
<additional_attributes>10.0;140.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>63</x>
<y>90</y>
<w>135</w>
<h>189</h>
</coordinates>
<panel_attributes>app::Factory
bg=#53C05B
--
--
+ initialize()
+ build()
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>189</x>
<y>108</y>
<w>117</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m2=1</panel_attributes>
<additional_attributes>10.0;10.0;110.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>630</x>
<y>90</y>
<w>288</w>
<h>72</h>
</coordinates>
<panel_attributes>/ButtonEventsHandlerObserver/
&lt;&lt;interface&gt;&gt;
bg=#90cbe0
--
+ onButtonShortPressed(buttonIndex)
+ onButtonLongPressed(buttonIndex)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>531</x>
<y>108</y>
<w>117</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.</panel_attributes>
<additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>513</x>
<y>126</y>
<w>135</w>
<h>126</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
r2=observer
m2=*</panel_attributes>
<additional_attributes>10.0;120.0;10.0;80.0;60.0;20.0;130.0;20.0</additional_attributes>
</element>
<element>
<id>UMLPackage</id>
<coordinates>
<x>63</x>
<y>405</y>
<w>126</w>
<h>135</h>
</coordinates>
<panel_attributes>XF
--
bg=#BBBBBB</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>180</x>
<y>135</y>
<w>126</w>
<h>387</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>10.0;410.0;70.0;410.0;70.0;10.0;120.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>180</x>
<y>423</y>
<w>126</w>
<h>99</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>10.0;90.0;70.0;90.0;70.0;10.0;120.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>180</x>
<y>495</y>
<w>126</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>10.0;10.0;120.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>603</x>
<y>468</y>
<w>315</w>
<h>72</h>
</coordinates>
<panel_attributes>/ButtonIrq/
&lt;&lt;interface&gt;&gt;
bg=#90cbe0
--
+ onIrq()</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>531</x>
<y>504</y>
<w>90</w>
<h>36</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.</panel_attributes>
<additional_attributes>80.0;20.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>603</x>
<y>387</y>
<w>315</w>
<h>72</h>
</coordinates>
<panel_attributes>/ButtonsControllerCallbackCaller/
&lt;&lt;interface&gt;&gt;
bg=#90cbe0
--
+ registerCallback(callbackProvider, callbackMethod)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>531</x>
<y>414</y>
<w>90</w>
<h>117</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.</panel_attributes>
<additional_attributes>80.0;10.0;10.0;110.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>603</x>
<y>279</y>
<w>315</w>
<h>72</h>
</coordinates>
<panel_attributes>/ButtonsControllerCallbackProvider/
&lt;&lt;interface&gt;&gt;
bg=#90cbe0
--
+ onButtonChanged(buttonIndex, pressed : bool)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>603</x>
<y>198</y>
<w>315</w>
<h>72</h>
</coordinates>
<panel_attributes>/ButtonEventsHandlerSubject/
&lt;&lt;interface&gt;&gt;
bg=#90cbe0
--
+ subscribe(observer)
+ unsubscribe(observer)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>531</x>
<y>225</y>
<w>90</w>
<h>81</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.</panel_attributes>
<additional_attributes>80.0;10.0;10.0;70.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>531</x>
<y>279</y>
<w>90</w>
<h>54</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;.</panel_attributes>
<additional_attributes>80.0;40.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>765</x>
<y>153</y>
<w>27</w>
<h>63</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>477</x>
<y>153</y>
<w>144</w>
<h>72</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>140.0;60.0;110.0;40.0;20.0;40.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>477</x>
<y>342</y>
<w>144</w>
<h>81</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>140.0;70.0;110.0;40.0;20.0;40.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>765</x>
<y>342</y>
<w>27</w>
<h>63</h>
</coordinates>
<panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>10.0;10.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>288</x>
<y>405</y>
<w>99</w>
<h>45</h>
</coordinates>
<panel_attributes>ButtonStateSm</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>306</x>
<y>342</y>
<w>36</w>
<h>81</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-&gt;
m2=4</panel_attributes>
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>351</x>
<y>342</y>
<w>36</w>
<h>81</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
m2=1</panel_attributes>
<additional_attributes>10.0;70.0;10.0;10.0</additional_attributes>
</element>
</diagram>

View File

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<help_text>
// Uncomment the following line to change the fontsize and font:
// fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use +/- or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////
// This text will be stored with each diagram; use it for notes.</help_text>
<zoom_level>9</zoom_level>
<element>
<id>Text</id>
<coordinates>
<x>144</x>
<y>0</y>
<w>522</w>
<h>36</h>
</coordinates>
<panel_attributes>*Buttons Controller - State-Machine*
style=wordwrap
fontsize=22</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>135</x>
<y>18</y>
<w>360</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=-
lw=2.5</panel_attributes>
<additional_attributes>10.0;10.0;380.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>144</x>
<y>729</y>
<w>882</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=..
halign=right
2019-02-27</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLSpecialState</id>
<coordinates>
<x>360</x>
<y>171</y>
<w>18</w>
<h>18</h>
</coordinates>
<panel_attributes>type=initial</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>369</x>
<y>171</y>
<w>81</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=-&gt;</panel_attributes>
<additional_attributes>10.0;10.0;70.0;10.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>432</x>
<y>162</y>
<w>207</w>
<h>81</h>
</coordinates>
<panel_attributes>STATE_CHECK_BUTTONS
--
entry / doCheckButtons()
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>522</x>
<y>234</y>
<w>90</w>
<h>90</h>
</coordinates>
<panel_attributes>lt=-&gt;
evButtonIrq</panel_attributes>
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>423</x>
<y>306</y>
<w>225</w>
<h>81</h>
</coordinates>
<panel_attributes>STATE_DEBOUNCE
--
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>630</x>
<y>207</y>
<w>153</w>
<h>162</h>
</coordinates>
<panel_attributes>lt=-&gt;
after(100)</panel_attributes>
<additional_attributes>20.0;160.0;90.0;160.0;90.0;10.0;10.0;10.0</additional_attributes>
</element>
</diagram>

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<help_text>
// Uncomment the following line to change the fontsize and font:
// fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use +/- or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////
// This text will be stored with each diagram; use it for notes.</help_text>
<zoom_level>9</zoom_level>
<element>
<id>Text</id>
<coordinates>
<x>144</x>
<y>0</y>
<w>522</w>
<h>36</h>
</coordinates>
<panel_attributes>*Button State - State-Machine*
style=wordwrap
fontsize=22</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>135</x>
<y>18</y>
<w>306</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=-
lw=2.5</panel_attributes>
<additional_attributes>10.0;10.0;320.0;10.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>144</x>
<y>729</y>
<w>882</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=..
halign=right
2019-02-25</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLSpecialState</id>
<coordinates>
<x>360</x>
<y>171</y>
<w>18</w>
<h>18</h>
</coordinates>
<panel_attributes>type=initial</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>369</x>
<y>171</y>
<w>81</w>
<h>27</h>
</coordinates>
<panel_attributes>lt=-&gt;</panel_attributes>
<additional_attributes>10.0;10.0;70.0;10.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>432</x>
<y>162</y>
<w>207</w>
<h>81</h>
</coordinates>
<panel_attributes>WAIT_BUTTON_PRESSED</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>522</x>
<y>234</y>
<w>117</w>
<h>90</h>
</coordinates>
<panel_attributes>lt=-&gt;
evButtonPressed</panel_attributes>
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>423</x>
<y>306</y>
<w>225</w>
<h>81</h>
</coordinates>
<panel_attributes>BUTTON_PRESSED</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>207</x>
<y>450</y>
<w>297</w>
<h>72</h>
</coordinates>
<panel_attributes>BUTTON_SHORT_PRESSED
--
entry / doNotifyButtonShortPressed(buttonIndex)
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>567</x>
<y>450</y>
<w>288</w>
<h>72</h>
</coordinates>
<panel_attributes>BUTTON_LONG_PRESSED
--
entry / doNotifyButtonLongPressed(buttonIndex)
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>441</x>
<y>378</y>
<w>126</w>
<h>90</h>
</coordinates>
<panel_attributes>lt=-&gt;
evButtonReleased</panel_attributes>
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>594</x>
<y>378</y>
<w>90</w>
<h>90</h>
</coordinates>
<panel_attributes>lt=-&gt;
after(1000)</panel_attributes>
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>630</x>
<y>207</y>
<w>99</w>
<h>261</h>
</coordinates>
<panel_attributes>lt=-&gt;</panel_attributes>
<additional_attributes>90.0;270.0;90.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>360</x>
<y>207</y>
<w>90</w>
<h>261</h>
</coordinates>
<panel_attributes>lt=-&gt;</panel_attributes>
<additional_attributes>10.0;270.0;10.0;10.0;80.0;10.0</additional_attributes>
</element>
</diagram>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<zoom_level>10</zoom_level>
<element>
<id>UMLState</id>
<coordinates>
<x>480</x>
<y>270</y>
<w>240</w>
<h>80</h>
</coordinates>
<panel_attributes>valign=top
TEST
--
entry / Trace::out("peep");</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLSpecialState</id>
<coordinates>
<x>590</x>
<y>200</y>
<w>20</w>
<h>20</h>
</coordinates>
<panel_attributes>type=initial</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>590</x>
<y>200</y>
<w>30</w>
<h>90</h>
</coordinates>
<panel_attributes>lt=-&gt;</panel_attributes>
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>520</x>
<y>340</y>
<w>170</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=-&gt;
after(1000)</panel_attributes>
<additional_attributes>10.0;10.0;10.0;60.0;150.0;60.0;150.0;10.0</additional_attributes>
</element>
</diagram>