This repository has been archived on 2024-01-25. You can view files and clone it, but cannot push or open issues or pull requests.
ButtonManager/docs/model/cmd-buttonmanager-overview.uxf

456 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2023-11-26 19:13:49 +00:00
<?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>