~aleteoryx/muditaos

muditaos/module-services/service-cellular/doc/urc_handling.svg -rw-r--r-- 15.4 KiB
a405cad6Aleteoryx trim readme 9 days 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
<?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="712px" preserveAspectRatio="none" style="width:895px;height:712px;background:#F0F0F0;" version="1.1" viewBox="0 0 895 712" width="895px" zoomAndPan="magnify"><defs><filter height="300%" id="f1wq6zckfxar51" 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><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="593.9844" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="207" y="69.4297"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="74.4297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="492.5" y="309.6563"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="234.1953" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="627" y="413.2188"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="73.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="733" y="442.3516"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="733" y="544.8828"/><rect fill="#F0F0F0" filter="url(#f1wq6zckfxar51)" height="442.2891" style="stroke: #000000; stroke-width: 2.0;" width="871" x="13" y="213.125"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="103" x2="103" y1="38.2969" y2="672.4141"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="212" x2="212" y1="38.2969" y2="672.4141"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="384" x2="384" y1="139.2109" y2="672.4141"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="497" x2="497" y1="38.2969" y2="672.4141"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="631.5" x2="631.5" y1="350.3047" y2="672.4141"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="738" x2="738" y1="38.2969" y2="672.4141"/><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="44" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="51" y="22.9951">ServiceCellular</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="44" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="51" y="691.4092">ServiceCellular</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="176" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="183" y="22.9951">TS0710</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="176" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="183" y="691.4092">TS0710</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="112" x="326" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="98" x="333" y="691.4092">WorkerThread</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="452" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="459" y="22.9951">UrcFactory</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="452" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="459" y="691.4092">UrcFactory</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="37" x="611.5" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="23" x="618.5" y="691.4092">Urc</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="666" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="126" x="673" y="22.9951">CellularUrcHandler</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="666" y="671.4141"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="126" x="673" y="691.4092">CellularUrcHandler</text><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="593.9844" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="207" y="69.4297"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="74.4297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="492.5" y="309.6563"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="234.1953" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="627" y="413.2188"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="73.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="733" y="442.3516"/><rect fill="#FFFFFF" filter="url(#f1wq6zckfxar51)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="733" y="544.8828"/><polygon fill="#A80036" points="195,65.4297,205,69.4297,195,73.4297,199,69.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="201" y1="69.4297" y2="69.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="110" y="64.3638">&lt;&lt;create&gt;&gt;</text><polygon fill="#A80036" points="195,94.5625,205,98.5625,195,102.5625,199,98.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="201" y1="98.5625" y2="98.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="110" y="93.4966">setCallback</text><polygon fill="#A80036" points="314,123.6953,324,127.6953,314,131.6953,318,127.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="217" x2="320" y1="127.6953" y2="127.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="224" y="122.6294">&lt;&lt;create&gt;&gt;</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="112" x="326" y="106.5625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="98" x="333" y="126.5576">WorkerThread</text><path d="M389,156.8594 L389,196.8594 L813,196.8594 L813,166.8594 L803,156.8594 L389,156.8594 " fill="#FBFB77" filter="url(#f1wq6zckfxar51)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M803,156.8594 L803,166.8594 L813,166.8594 L803,156.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="403" x="395" y="173.9263">processing of the incoming data takes place is separate thread</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="324" x="395" y="189.0591">utilizing the callback function set by ServiceCellular</text><path d="M13,213.125 L90,213.125 L90,220.125 L80,230.125 L13,230.125 L13,213.125 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="442.2891" style="stroke: #000000; stroke-width: 2.0;" width="871" x="13" y="213.125"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="226.1919">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="36" x="105" y="225.3354">[true]</text><polygon fill="#A80036" points="372,247.3906,382,251.3906,372,255.3906,376,251.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="302" x2="378" y1="251.3906" y2="251.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="309" y="246.3247">new data</text><polygon fill="#A80036" points="114,276.5234,104,280.5234,114,284.5234,110,280.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="108" x2="383" y1="280.5234" y2="280.5234"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="120" y="275.4575">callback</text><polygon fill="#A80036" points="480.5,305.6563,490.5,309.6563,480.5,313.6563,484.5,309.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="486.5" y1="309.6563" y2="309.6563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="110" y="304.5903">Create</text><polygon fill="#A80036" points="599.5,334.7891,609.5,338.7891,599.5,342.7891,603.5,338.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="502.5" x2="605.5" y1="338.7891" y2="338.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="509.5" y="333.7231">&lt;&lt;create&gt;&gt;</text><rect fill="#FEFECE" filter="url(#f1wq6zckfxar51)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="37" x="611.5" y="317.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="23" x="618.5" y="337.6514">Urc</text><polygon fill="#A80036" points="114,380.0859,104,384.0859,114,388.0859,110,384.0859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="108" x2="496.5" y1="384.0859" y2="384.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="120" y="379.02">&lt;&lt;return&gt;&gt;</text><polygon fill="#A80036" points="615,409.2188,625,413.2188,615,417.2188,619,413.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="621" y1="413.2188" y2="413.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="174" x="110" y="408.1528">Handle(CellularUrcHandler)</text><polygon fill="#A80036" points="721,438.3516,731,442.3516,721,446.3516,725,442.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="637" x2="727" y1="442.3516" y2="442.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="644" y="437.2856">Handle(Urc)</text><polygon fill="#A80036" points="875,482.6172,885,486.6172,875,490.6172,879,486.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="743" x2="881" y1="486.6172" y2="486.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="750" y="466.4185">&lt;&lt;specific system</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="750" y="481.5513">actions&gt;&gt;</text><polygon fill="#A80036" points="749,511.75,739,515.75,749,519.75,745,515.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="743" x2="841" y1="515.75" y2="515.75"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="80" x="755" y="510.6841">&lt;&lt;result&gt;&gt;</text><polygon fill="#A80036" points="721,540.8828,731,544.8828,721,548.8828,725,544.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="727" y1="544.8828" y2="544.8828"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="110" y="539.8169">getResponse</text><polygon fill="#A80036" points="114,570.0156,104,574.0156,114,578.0156,110,574.0156" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="108" x2="737" y1="574.0156" y2="574.0156"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="120" y="568.9497">&lt;&lt;response&gt;&gt;</text><polygon fill="#A80036" points="21,614.2813,11,618.2813,21,622.2813,17,618.2813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="15" x2="102" y1="618.2813" y2="618.2813"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="27" y="598.0825">""multicast</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="27" y="613.2153">response""</text><polygon fill="#A80036" points="620,643.4141,630,647.4141,620,651.4141,624,647.4141" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="103" x2="626" y1="647.4141" y2="647.4141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="110" y="642.3481">delete</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="623" x2="641" y1="638.4141" y2="656.4141"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="623" x2="641" y1="656.4141" y2="638.4141"/><!--MD5=[e3b58ab2830bf70706c3b1d0e3a24cb5]
@startuml
skinparam BackgroundColor F0F0F0
participant ServiceCellular as cellular
participant TS0710 as ts
participant WorkerThread as worker
participant UrcFactory as factory
participant Urc as urc
participant CellularUrcHandler as handler


cellular -> ts + : <<create>>
cellular -> ts  : setCallback
ts -> worker * : <<create>>
note right worker 
processing of the incoming data takes place is separate thread
utilizing the callback function set by ServiceCellular
end note
loop true
?-> worker : new data
worker -> cellular : callback
cellular -> factory + : Create
factory -> urc ** : <<create>>
return <<return>>
cellular -> urc +: Handle(CellularUrcHandler)
urc -> handler + : Handle(Urc)
handler->? : <<specific system\nactions>>
handler<-? - : <<result>>
cellular -> handler + : getResponse
handler - -> cellular - : <<response>>
?<- -    cellular - - : ""multicast\nresponse""
cellular -> urc !! : delete
end
@enduml

PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>