456 lines
11 KiB
Plaintext
456 lines
11 KiB
Plaintext
|
<?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 > 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
|
||
|
<<Singleton>>
|
||
|
|
||
|
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
|
||
|
<<Singleton>>
|
||
|
|
||
|
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=<-
|
||
|
<<observing>></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=<-
|
||
|
<<callback>></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=<<<<<->
|
||
|
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/
|
||
|
<<interface>>
|
||
|
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=<<.</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=<<<<->
|
||
|
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=<.</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=<.</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=<.</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/
|
||
|
<<interface>>
|
||
|
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=<<.</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/
|
||
|
<<interface>>
|
||
|
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=<<.</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/
|
||
|
<<interface>>
|
||
|
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/
|
||
|
<<interface>>
|
||
|
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=<<.</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=<<.</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=<.</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=<.</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=<.</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=<.</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=<<<<<->
|
||
|
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=<<<<->
|
||
|
m2=1</panel_attributes>
|
||
|
<additional_attributes>10.0;70.0;10.0;10.0</additional_attributes>
|
||
|
</element>
|
||
|
</diagram>
|