// 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. 9 UMLClass 288 234 252 117 ButtonEventsHandler <<Singleton>> bg=white Text 63 27 522 36 *ButtonManager - Basic Class Structure - Overview* style=wordwrap fontsize=22 Relation 54 45 504 27 lt=- lw=2.5 10.0;10.0;540.0;10.0 UMLClass 63 756 882 27 lt=.. halign=right 2021-11-09 UMLNote 63 567 882 180 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 UMLClass 288 468 252 72 ButtonsController <<Singleton>> bg=white UMLClass 288 90 252 72 app::ButtonEventsLogger bg=#53C05B Relation 405 153 90 99 lt=<- <<observing>> 10.0;90.0;10.0;10.0 Relation 405 342 81 144 lt=<- <<callback>> 10.0;140.0;10.0;10.0 UMLClass 63 90 135 189 app::Factory bg=#53C05B -- -- + initialize() + build() Relation 189 108 117 36 lt=<<<<<-> m2=1 10.0;10.0;110.0;10.0 UMLClass 630 90 288 72 /ButtonEventsHandlerObserver/ <<interface>> bg=#90cbe0 -- + onButtonShortPressed(buttonIndex) + onButtonLongPressed(buttonIndex) Relation 531 108 117 27 lt=<<. 110.0;10.0;10.0;10.0 Relation 513 126 135 126 lt=<<<<-> r2=observer m2=* 10.0;120.0;10.0;80.0;60.0;20.0;130.0;20.0 UMLPackage 63 405 126 135 XF -- bg=#BBBBBB Relation 180 135 126 387 lt=<. 10.0;410.0;70.0;410.0;70.0;10.0;120.0;10.0 Relation 180 423 126 99 lt=<. 10.0;90.0;70.0;90.0;70.0;10.0;120.0;10.0 Relation 180 495 126 27 lt=<. 10.0;10.0;120.0;10.0 UMLClass 603 468 315 72 /ButtonIrq/ <<interface>> bg=#90cbe0 -- + onIrq() Relation 531 504 90 36 lt=<<. 80.0;20.0;10.0;10.0 UMLClass 603 387 315 72 /ButtonsControllerCallbackCaller/ <<interface>> bg=#90cbe0 -- + registerCallback(callbackProvider, callbackMethod) Relation 531 414 90 117 lt=<<. 80.0;10.0;10.0;110.0 UMLClass 603 279 315 72 /ButtonsControllerCallbackProvider/ <<interface>> bg=#90cbe0 -- + onButtonChanged(buttonIndex, pressed : bool) UMLClass 603 198 315 72 /ButtonEventsHandlerSubject/ <<interface>> bg=#90cbe0 -- + subscribe(observer) + unsubscribe(observer) Relation 531 225 90 81 lt=<<. 80.0;10.0;10.0;70.0 Relation 531 279 90 54 lt=<<. 80.0;40.0;10.0;10.0 Relation 765 153 27 63 lt=<. 10.0;10.0;10.0;50.0 Relation 477 153 144 72 lt=<. 140.0;60.0;110.0;40.0;20.0;40.0;10.0;10.0 Relation 477 342 144 81 lt=<. 140.0;70.0;110.0;40.0;20.0;40.0;10.0;10.0 Relation 765 342 27 63 lt=<. 10.0;10.0;10.0;50.0 UMLClass 288 405 99 45 ButtonStateSm Relation 306 342 36 81 lt=<<<<<-> m2=4 10.0;10.0;10.0;70.0 Relation 351 342 36 81 lt=<<<<-> m2=1 10.0;70.0;10.0;10.0