~aleteoryx/muditaos

ref: 149514e8364c0753c9eec29d48b227fb85fc4bda muditaos/module-gui/doc/how_keypress_work.svg -rw-r--r-- 14.6 KiB
149514e8 — Jakub Pyszczak [EGD-7169] Changed genlfs path 4 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?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="938px" preserveAspectRatio="none" style="width:420px;height:938px;" version="1.1" viewBox="0 0 420 938" width="420px" zoomAndPan="magnify"><defs><filter height="300%" id="frwjtjhbu39g7" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="27" y1="86.2969" y2="357.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="27" x2="27" y1="357.3594" y2="398.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="27" y1="398.1641" y2="616.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="27" x2="27" y1="616.0938" y2="656.8984"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="27" y1="656.8984" y2="850.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="155" y1="86.2969" y2="357.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="155" x2="155" y1="357.3594" y2="398.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="155" y1="398.1641" y2="616.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="155" x2="155" y1="616.0938" y2="656.8984"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="155" y1="656.8984" y2="850.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="307.5" x2="307.5" y1="86.2969" y2="357.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="307.5" x2="307.5" y1="357.3594" y2="398.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="307.5" x2="307.5" y1="398.1641" y2="616.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="307.5" x2="307.5" y1="616.0938" y2="656.8984"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="307.5" x2="307.5" y1="656.8984" y2="850.8281"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="32" x="8" y="82.9951">User</text><ellipse cx="27" cy="13" fill="#FEFECE" filter="url(#frwjtjhbu39g7)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><path d="M27,21 L27,48 M14,29 L40,29 M27,48 L14,63 M27,48 L40,63 " fill="none" filter="url(#frwjtjhbu39g7)" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="32" x="8" y="862.8232">User</text><ellipse cx="27" cy="876.125" fill="#FEFECE" filter="url(#frwjtjhbu39g7)" rx="8" ry="8" style="stroke: #A80036; stroke-width: 2.0;"/><path d="M27,884.125 L27,911.125 M14,892.125 L40,892.125 M27,911.125 L14,926.125 M27,911.125 L40,926.125 " fill="none" filter="url(#frwjtjhbu39g7)" style="stroke: #A80036; stroke-width: 2.0;"/><rect fill="#FEFECE" filter="url(#frwjtjhbu39g7)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="44" x="131" y="51"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="138" y="70.9951">EVM</text><rect fill="#FEFECE" filter="url(#frwjtjhbu39g7)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="44" x="131" y="849.8281"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="138" y="869.8232">EVM</text><rect fill="#FEFECE" filter="url(#frwjtjhbu39g7)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="281.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="35" x="288.5" y="70.9951">Apps</text><rect fill="#FEFECE" filter="url(#frwjtjhbu39g7)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="281.5" y="849.8281"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="35" x="288.5" y="869.8232">Apps</text><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="405" x="3" y="116.8633"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="116.8633" y2="116.8633"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="119.8633" y2="119.8633"/><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="180" x="115.5" y="106.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="161" x="121.5" y="122.3638">Simple fast key press</text><polygon fill="#A80036" points="143,156.5625,153,160.5625,143,164.5625,147,160.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="160.5625" y2="160.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="34" y="155.4966">KeyPress</text><polygon fill="#A80036" points="296,185.6953,306,189.6953,296,193.6953,300,189.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="189.6953" y2="189.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="162" y="184.6294">KeyPress</text><polygon fill="#A80036" points="143,214.8281,153,218.8281,143,222.8281,147,218.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="218.8281" y2="218.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="34" y="213.7622">KeyRelease</text><polygon fill="#A80036" points="296,243.9609,306,247.9609,296,251.9609,300,247.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="247.9609" y2="247.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="162" y="242.895">KeyReleased</text><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="405" x="3" y="276.5273"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="276.5273" y2="276.5273"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="279.5273" y2="279.5273"/><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="101" x="155" y="265.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="161" y="282.0278">Long Press</text><polygon fill="#A80036" points="143,316.2266,153,320.2266,143,324.2266,147,320.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="320.2266" y2="320.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="34" y="315.1606">KeyPress</text><polygon fill="#A80036" points="296,345.3594,306,349.3594,296,353.3594,300,349.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="349.3594" y2="349.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="162" y="344.2935">KeyPress</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="120" y="381.5698">Some</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="157" y="381.5698">long delay</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="219" y="381.5698"/><polygon fill="#A80036" points="296,415.2969,306,419.2969,296,423.2969,300,419.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="419.2969" y2="419.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="162" y="414.231">KeyLongPress</text><polygon fill="#A80036" points="143,444.4297,153,448.4297,143,452.4297,147,448.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="448.4297" y2="448.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="34" y="443.3638">KeyRelease</text><polygon fill="#A80036" points="296,473.5625,306,477.5625,296,481.5625,300,477.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="477.5625" y2="477.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="162" y="472.4966">KeyReleased</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="290" x2="300" y1="501.6953" y2="511.6953"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="290" x2="300" y1="511.6953" y2="501.6953"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="295" y1="506.6953" y2="506.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="162" y="501.6294">No KeyRelease now!</text><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="405" x="3" y="535.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="535.2617" y2="535.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="408" y1="538.2617" y2="538.2617"/><rect fill="#EEEEEE" filter="url(#frwjtjhbu39g7)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="273" x="69" y="524.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="254" x="75" y="540.7622">Long Press - with continous action</text><polygon fill="#A80036" points="143,574.9609,153,578.9609,143,582.9609,147,578.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="578.9609" y2="578.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="34" y="573.895">KeyPress</text><polygon fill="#A80036" points="296,604.0938,306,608.0938,296,612.0938,300,608.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="608.0938" y2="608.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="162" y="603.0278">KeyPress</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="120" y="640.3042">Some</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="157" y="640.3042">long delay</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="219" y="640.3042"/><polygon fill="#A80036" points="296,674.0313,306,678.0313,296,682.0313,300,678.0313" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="678.0313" y2="678.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="162" y="672.9653">KeyLongPress</text><polygon fill="#FBFB77" filter="url(#frwjtjhbu39g7)" points="222,691.0313,393,691.0313,403,717.0313,393,744.0313,222,744.0313,212,717.0313,222,691.0313" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="167" x="224" y="707.0981">App TIMER process things:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="224" y="722.231">each 100ms:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="240" y="737.3638">do_something</text><polygon fill="#A80036" points="296,766.5625,306,770.5625,296,774.5625,300,770.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="155" x2="302" y1="770.5625" y2="770.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="162" y="765.4966">KeyReleased</text><polygon fill="#A80036" points="143,795.6953,153,799.6953,143,803.6953,147,799.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="27" x2="149" y1="799.6953" y2="799.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="34" y="794.6294">KeyLongRelease</text><polygon fill="#FBFB77" filter="url(#frwjtjhbu39g7)" points="222,812.6953,393,812.6953,403,823.6953,393,835.6953,222,835.6953,212,823.6953,222,812.6953" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="167" x="224" y="828.7622">App end TIMER processing</text><!--MD5=[f8124802a12c98bcd1f4d060e24ddd0d]
@startuml

actor User



== Simple fast key press ==

User -> EVM : KeyPress
EVM->Apps: KeyPress
User-> EVM: KeyRelease
EVM->Apps: KeyReleased

== Long Press ==

User -> EVM : KeyPress
EVM->Apps: KeyPress
... Some ~~long delay~~ ...
EVM->Apps: KeyLongPress
User-> EVM: KeyRelease
EVM->Apps: KeyReleased
EVM -x Apps: No KeyRelease now!

== Long Press - with continous action ==

User -> EVM : KeyPress
EVM->Apps: KeyPress
... Some ~~long delay~~ ...
EVM->Apps: KeyLongPress
        hnote over Apps
            App TIMER process things:
            each 100ms:
                do_something
        endhnote
EVM->Apps: KeyReleased
User-> EVM: KeyLongRelease
        hnote over Apps
            App end TIMER processing
        endhnote

@enduml

PlantUML version 1.2019.13(Tue Dec 10 18:18:29 CET 2019)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 14.0.2+12
Operating System: Linux
Default Encoding: UTF-8
Language: pl
Country: PL
--></g></svg>