Commit 749fe34c authored by Peter Waher's avatar Peter Waher

Describing Sensor Data Request/Response.

parent a8d2e09d
<?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="302px" preserveAspectRatio="none" style="width:378px;height:302px;" version="1.1" viewBox="0 0 378 302" width="378px" zoomAndPan="magnify"><defs><filter height="300%" id="fcfxi86mo9xe0" 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(#fcfxi86mo9xe0)" height="174.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="253.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fcfxi86mo9xe0)" height="137.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="258.5" y="106.4297"/><rect fill="#FFFFFF" filter="url(#fcfxi86mo9xe0)" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="288" x="13" y="126.5625"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="51" x2="51" y1="38.2969" y2="262.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="258" x2="258" y1="38.2969" y2="262.0938"/><rect fill="#FEFECE" filter="url(#fcfxi86mo9xe0)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#fcfxi86mo9xe0)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="261.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="281.0889">Client</text><rect fill="#FEFECE" filter="url(#fcfxi86mo9xe0)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="226" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="233" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#fcfxi86mo9xe0)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="226" y="261.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="233" y="281.0889">Device</text><rect fill="#FFFFFF" filter="url(#fcfxi86mo9xe0)" height="174.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="253.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fcfxi86mo9xe0)" height="137.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="258.5" y="106.4297"/><polygon fill="#A80036" points="241.5,65.2969,251.5,69.2969,241.5,73.2969,245.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="51.5" x2="247.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="58.5" y="64.3638">iq get(req)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="263.5" x2="310.5" y1="93.5625" y2="93.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="310.5" x2="310.5" y1="93.5625" y2="106.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="269.5" x2="310.5" y1="106.5625" y2="106.5625"/><polygon fill="#A80036" points="279.5,102.5625,269.5,106.5625,279.5,110.5625,275.5,106.5625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="275.5" y="88.4966">start readout</text><rect fill="none" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="288" x="13" y="126.5625"/><polygon fill="#EEEEEE" points="13,126.5625,283,126.5625,283,133.5625,273,143.5625,13,143.5625,13,126.5625" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="225" x="28" y="139.6294">Variable number of fragments</text><polygon fill="#A80036" points="62.5,160.6953,52.5,164.6953,62.5,168.6953,58.5,164.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="257.5" y1="164.6953" y2="164.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="68.5" y="159.7622">message(resp[more=true])</text><rect fill="#EEEEEE" filter="url(#fcfxi86mo9xe0)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="363.5" x="3" y="193.3945"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="366.5" y1="193.3945" y2="193.3945"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="366.5" y1="196.3945" y2="196.3945"/><rect fill="#EEEEEE" filter="url(#fcfxi86mo9xe0)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="154.75" y="182.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="160.75" y="198.895">Delay</text><polygon fill="#A80036" points="62.5,239.9609,52.5,243.9609,62.5,247.9609,58.5,243.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="257.5" y1="243.9609" y2="243.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="68.5" y="239.0278">message(done)</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
group Variable number of fragments
Client <- Device : message(resp[more=true])
== Delay ==
end
Client <- Device : message(done)
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
group Variable number of fragments
Client <- Device : message(resp[more=true])
== Delay ==
end
Client <- Device : message(done)
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="331px" preserveAspectRatio="none" style="width:378px;height:331px;" version="1.1" viewBox="0 0 378 331" width="378px" zoomAndPan="magnify"><defs><filter height="300%" id="f323kcdfmf83r" 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(#f323kcdfmf83r)" height="203.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="253.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f323kcdfmf83r)" height="166.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="258.5" y="106.4297"/><rect fill="#FFFFFF" filter="url(#f323kcdfmf83r)" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="288" x="13" y="126.5625"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="51" x2="51" y1="38.2969" y2="291.2266"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="258" x2="258" y1="38.2969" y2="291.2266"/><rect fill="#FEFECE" filter="url(#f323kcdfmf83r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#f323kcdfmf83r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="290.2266"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="310.2217">Client</text><rect fill="#FEFECE" filter="url(#f323kcdfmf83r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="226" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="233" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#f323kcdfmf83r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="226" y="290.2266"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="233" y="310.2217">Device</text><rect fill="#FFFFFF" filter="url(#f323kcdfmf83r)" height="203.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="253.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f323kcdfmf83r)" height="166.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="258.5" y="106.4297"/><polygon fill="#A80036" points="241.5,65.2969,251.5,69.2969,241.5,73.2969,245.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="51.5" x2="247.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="58.5" y="64.3638">iq get(req)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="263.5" x2="310.5" y1="93.5625" y2="93.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="310.5" x2="310.5" y1="93.5625" y2="106.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="269.5" x2="310.5" y1="106.5625" y2="106.5625"/><polygon fill="#A80036" points="279.5,102.5625,269.5,106.5625,279.5,110.5625,275.5,106.5625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="275.5" y="88.4966">start readout</text><rect fill="none" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="288" x="13" y="126.5625"/><polygon fill="#EEEEEE" points="13,126.5625,283,126.5625,283,133.5625,273,143.5625,13,143.5625,13,126.5625" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="225" x="28" y="139.6294">Variable number of fragments</text><polygon fill="#A80036" points="62.5,160.6953,52.5,164.6953,62.5,168.6953,58.5,164.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="257.5" y1="164.6953" y2="164.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="68.5" y="159.7622">message(resp[more=true])</text><rect fill="#EEEEEE" filter="url(#f323kcdfmf83r)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="363.5" x="3" y="193.3945"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="366.5" y1="193.3945" y2="193.3945"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="366.5" y1="196.3945" y2="196.3945"/><rect fill="#EEEEEE" filter="url(#f323kcdfmf83r)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="154.75" y="182.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="160.75" y="198.895">Delay</text><polygon fill="#A80036" points="246.5,239.9609,256.5,243.9609,246.5,247.9609,250.5,243.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="51.5" x2="252.5" y1="243.9609" y2="243.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="58.5" y="239.0278">iq set(cancel)</text><polygon fill="#A80036" points="62.5,269.0938,52.5,273.0938,62.5,277.0938,58.5,273.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="257.5" y1="273.0938" y2="273.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="68.5" y="268.1606">iq result()</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="249.5" x2="267.5" y1="264.0938" y2="282.0938"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="249.5" x2="267.5" y1="282.0938" y2="264.0938"/><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
group Variable number of fragments
Client <- Device : message(resp[more=true])
== Delay ==
end
Client -> Device : iq set(cancel)
Client <- Device : iq result()
Destroy Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
group Variable number of fragments
Client <- Device : message(resp[more=true])
== Delay ==
end
Client -> Device : iq set(cancel)
Client <- Device : iq result()
Destroy Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="271px" preserveAspectRatio="none" style="width:305px;height:271px;" version="1.1" viewBox="0 0 305 271" width="305px" zoomAndPan="magnify"><defs><filter height="300%" id="fzcxza3dgbgk3" 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(#fzcxza3dgbgk3)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="180.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fzcxza3dgbgk3)" height="34.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="185.5" y="178.6953"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="36" x2="36" y1="38.2969" y2="230.9609"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="185" x2="185" y1="38.2969" y2="230.9609"/><rect fill="#FEFECE" filter="url(#fzcxza3dgbgk3)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#fzcxza3dgbgk3)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="229.9609"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="249.9561">Client</text><rect fill="#FEFECE" filter="url(#fzcxza3dgbgk3)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="153" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="160" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#fzcxza3dgbgk3)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="153" y="229.9609"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="160" y="249.9561">Device</text><rect fill="#FFFFFF" filter="url(#fzcxza3dgbgk3)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="180.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fzcxza3dgbgk3)" height="34.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="185.5" y="178.6953"/><polygon fill="#A80036" points="168.5,65.2969,178.5,69.2969,168.5,73.2969,172.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="36.5" x2="174.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="43.5" y="64.3638">iq get(req)</text><polygon fill="#A80036" points="47.5,94.4297,37.5,98.4297,47.5,102.4297,43.5,98.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="179.5" y1="98.4297" y2="98.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="53.5" y="93.4966">iq result(accepted)</text><rect fill="#EEEEEE" filter="url(#fzcxza3dgbgk3)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="290.5" x="3" y="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="127.1289" y2="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="130.1289" y2="130.1289"/><rect fill="#EEEEEE" filter="url(#fzcxza3dgbgk3)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="118.25" y="116.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="124.25" y="132.6294">Delay</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="190.5" x2="237.5" y1="165.8281" y2="165.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="237.5" x2="237.5" y1="165.8281" y2="178.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="196.5" x2="237.5" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="206.5,174.8281,196.5,178.8281,206.5,182.8281,202.5,178.8281" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="202.5" y="160.7622">start readout</text><polygon fill="#A80036" points="47.5,208.8281,37.5,212.8281,47.5,216.8281,43.5,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="184.5" y1="212.8281" y2="212.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="53.5" y="207.895">message(resp)</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="446px" preserveAspectRatio="none" style="width:382px;height:446px;" version="1.1" viewBox="0 0 382 446" width="382px" zoomAndPan="magnify"><defs><filter height="300%" id="fz5sper363d3l" 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(#fz5sper363d3l)" height="319.1953" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="257.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fz5sper363d3l)" height="209.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="262.5" y="178.6953"/><rect fill="#FFFFFF" filter="url(#fz5sper363d3l)" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="292" x="13" y="227.9609"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="51" x2="51" y1="38.2969" y2="406.625"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="262" x2="262" y1="38.2969" y2="406.625"/><rect fill="#FEFECE" filter="url(#fz5sper363d3l)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#fz5sper363d3l)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="405.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="425.6201">Client</text><rect fill="#FEFECE" filter="url(#fz5sper363d3l)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="230" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="237" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#fz5sper363d3l)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="230" y="405.625"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="237" y="425.6201">Device</text><rect fill="#FFFFFF" filter="url(#fz5sper363d3l)" height="319.1953" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="257.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fz5sper363d3l)" height="209.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="262.5" y="178.6953"/><polygon fill="#A80036" points="245.5,65.2969,255.5,69.2969,245.5,73.2969,249.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="51.5" x2="251.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="58.5" y="64.3638">iq get(req)</text><polygon fill="#A80036" points="62.5,94.4297,52.5,98.4297,62.5,102.4297,58.5,98.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="256.5" y1="98.4297" y2="98.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="68.5" y="93.4966">iq result(accepted)</text><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="367.5" x="3" y="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="127.1289" y2="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="130.1289" y2="130.1289"/><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="156.75" y="116.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="162.75" y="132.6294">Delay</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="267.5" x2="314.5" y1="165.8281" y2="165.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="314.5" x2="314.5" y1="165.8281" y2="178.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="273.5" x2="314.5" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="283.5,174.8281,273.5,178.8281,283.5,182.8281,279.5,178.8281" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="279.5" y="160.7622">start readout</text><polygon fill="#A80036" points="62.5,208.8281,52.5,212.8281,62.5,216.8281,58.5,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="212.8281" y2="212.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="115" x="68.5" y="207.895">message(started)</text><rect fill="none" height="89.3984" style="stroke: #000000; stroke-width: 2.0;" width="292" x="13" y="227.9609"/><polygon fill="#EEEEEE" points="13,227.9609,283,227.9609,283,234.9609,273,244.9609,13,244.9609,13,227.9609" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="225" x="28" y="241.0278">Variable number of fragments</text><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="367.5" x="3" y="265.6602"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="265.6602" y2="265.6602"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="268.6602" y2="268.6602"/><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="156.75" y="255.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="162.75" y="271.1606">Delay</text><polygon fill="#A80036" points="62.5,305.2266,52.5,309.2266,62.5,313.2266,58.5,309.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="309.2266" y2="309.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="68.5" y="304.2935">message(resp[more=true])</text><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="367.5" x="3" y="344.9258"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="344.9258" y2="344.9258"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="370.5" y1="347.9258" y2="347.9258"/><rect fill="#EEEEEE" filter="url(#fz5sper363d3l)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="156.75" y="334.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="162.75" y="350.4263">Delay</text><polygon fill="#A80036" points="62.5,384.4922,52.5,388.4922,62.5,392.4922,58.5,388.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="388.4922" y2="388.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="68.5" y="383.5591">message(resp[more=false])</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(started)
group Variable number of fragments
== Delay ==
Client <- Device : message(resp[more=true])
end
== Delay ==
Client <- Device : message(resp[more=false])
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(started)
group Variable number of fragments
== Delay ==
Client <- Device : message(resp[more=true])
end
== Delay ==
Client <- Device : message(resp[more=false])
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="343px" preserveAspectRatio="none" style="width:305px;height:343px;" version="1.1" viewBox="0 0 305 343" width="305px" zoomAndPan="magnify"><defs><filter height="300%" id="f1qt2ldzi18n0r" 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(#f1qt2ldzi18n0r)" height="215.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="180.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f1qt2ldzi18n0r)" height="106.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="185.5" y="178.6953"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="36" x2="36" y1="38.2969" y2="303.2266"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="185" x2="185" y1="38.2969" y2="303.2266"/><rect fill="#FEFECE" filter="url(#f1qt2ldzi18n0r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#f1qt2ldzi18n0r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="302.2266"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="322.2217">Client</text><rect fill="#FEFECE" filter="url(#f1qt2ldzi18n0r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="153" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="160" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#f1qt2ldzi18n0r)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="153" y="302.2266"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="160" y="322.2217">Device</text><rect fill="#FFFFFF" filter="url(#f1qt2ldzi18n0r)" height="215.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="180.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f1qt2ldzi18n0r)" height="106.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="185.5" y="178.6953"/><polygon fill="#A80036" points="168.5,65.2969,178.5,69.2969,168.5,73.2969,172.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="36.5" x2="174.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="43.5" y="64.3638">iq get(req)</text><polygon fill="#A80036" points="47.5,94.4297,37.5,98.4297,47.5,102.4297,43.5,98.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="179.5" y1="98.4297" y2="98.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="53.5" y="93.4966">iq result(accepted)</text><rect fill="#EEEEEE" filter="url(#f1qt2ldzi18n0r)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="290.5" x="3" y="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="127.1289" y2="127.1289"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="130.1289" y2="130.1289"/><rect fill="#EEEEEE" filter="url(#f1qt2ldzi18n0r)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="118.25" y="116.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="124.25" y="132.6294">Delay</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="190.5" x2="237.5" y1="165.8281" y2="165.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="237.5" x2="237.5" y1="165.8281" y2="178.8281"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="196.5" x2="237.5" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="206.5,174.8281,196.5,178.8281,206.5,182.8281,202.5,178.8281" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="202.5" y="160.7622">start readout</text><polygon fill="#A80036" points="47.5,208.8281,37.5,212.8281,47.5,216.8281,43.5,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="184.5" y1="212.8281" y2="212.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="115" x="53.5" y="207.895">message(started)</text><rect fill="#EEEEEE" filter="url(#f1qt2ldzi18n0r)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="290.5" x="3" y="241.5273"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="241.5273" y2="241.5273"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="293.5" y1="244.5273" y2="244.5273"/><rect fill="#EEEEEE" filter="url(#f1qt2ldzi18n0r)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="118.25" y="230.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="124.25" y="247.0278">Delay</text><polygon fill="#A80036" points="47.5,281.0938,37.5,285.0938,47.5,289.0938,43.5,285.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="184.5" y1="285.0938" y2="285.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="53.5" y="280.1606">message(resp)</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(started)
== Delay ==
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Client <- Device : iq result(accepted)
== Delay ==
Device -> Device : start readout
Activate Device
Client <- Device : message(started)
== Delay ==
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="290px" preserveAspectRatio="none" style="width:180px;height:290px;" version="1.1" viewBox="0 0 180 290" width="180px" zoomAndPan="magnify"><defs><filter height="300%" id="fpnxqja4sq5n1" 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><!--class Request--><rect fill="#FEFECE" filter="url(#fpnxqja4sq5n1)" height="124.8281" id="Request" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="46.5" y="8"/><ellipse cx="61.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M63.8438,19.6719 L64.0156,19.75 C64.2344,19.4375 64.4375,19.3438 64.7344,19.3438 C65.0313,19.3438 65.3125,19.4844 65.4688,19.75 C65.5625,19.9063 65.5781,20.0313 65.5781,20.4688 L65.5781,21.8906 C65.5781,22.3125 65.5469,22.5 65.4375,22.6563 C65.2656,22.875 65,23.0156 64.7344,23.0156 C64.5156,23.0156 64.2813,22.9063 64.1406,22.7656 C64,22.6406 63.9688,22.5156 63.9063,22.1094 C63.8125,21.7031 63.6406,21.4844 63.1563,21.2031 C62.6875,20.9531 62.0781,20.7969 61.5,20.7969 C59.7656,20.7969 58.5156,22.1094 58.5156,23.8906 L58.5156,24.9844 C58.5156,26.6875 59.8125,27.7813 61.8594,27.7813 C62.625,27.7813 63.3125,27.6563 63.7344,27.3906 C63.9219,27.2969 63.9219,27.2969 64.375,26.8125 C64.5625,26.625 64.7656,26.5469 64.9844,26.5469 C65.4531,26.5469 65.8438,26.9375 65.8438,27.3906 C65.8438,27.7813 65.5156,28.2344 64.9375,28.6406 C64.1875,29.1875 63.0313,29.4844 61.8125,29.4844 C58.9219,29.4844 56.8125,27.5938 56.8125,25.0156 L56.8125,23.8906 C56.8125,21.1719 58.8125,19.0938 61.4375,19.0938 C62.3125,19.0938 62.9063,19.2344 63.8438,19.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="75.5" y="28.1543">Request</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="47.5" x2="129.5" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="10" x="52.5" y="54.2104">Id</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="62" x="52.5" y="67.0151">Categories</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="52.5" y="79.8198">From</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="52.5" y="92.6245">To</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="30" x="52.5" y="105.4292">When</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="52.5" y="118.2339">Tokens</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="47.5" x2="129.5" y1="124.8281" y2="124.8281"/><!--class Node--><rect fill="#FEFECE" filter="url(#fpnxqja4sq5n1)" height="86.4141" id="Node" style="stroke: #A80036; stroke-width: 1.5;" width="67" x="6" y="193"/><ellipse cx="21.9" cy="209" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M24.2438,204.6719 L24.4156,204.75 C24.6344,204.4375 24.8375,204.3438 25.1344,204.3438 C25.4313,204.3438 25.7125,204.4844 25.8688,204.75 C25.9625,204.9063 25.9781,205.0313 25.9781,205.4688 L25.9781,206.8906 C25.9781,207.3125 25.9469,207.5 25.8375,207.6563 C25.6656,207.875 25.4,208.0156 25.1344,208.0156 C24.9156,208.0156 24.6813,207.9063 24.5406,207.7656 C24.4,207.6406 24.3688,207.5156 24.3063,207.1094 C24.2125,206.7031 24.0406,206.4844 23.5563,206.2031 C23.0875,205.9531 22.4781,205.7969 21.9,205.7969 C20.1656,205.7969 18.9156,207.1094 18.9156,208.8906 L18.9156,209.9844 C18.9156,211.6875 20.2125,212.7813 22.2594,212.7813 C23.025,212.7813 23.7125,212.6563 24.1344,212.3906 C24.3219,212.2969 24.3219,212.2969 24.775,211.8125 C24.9625,211.625 25.1656,211.5469 25.3844,211.5469 C25.8531,211.5469 26.2438,211.9375 26.2438,212.3906 C26.2438,212.7813 25.9156,213.2344 25.3375,213.6406 C24.5875,214.1875 23.4313,214.4844 22.2125,214.4844 C19.3219,214.4844 17.2125,212.5938 17.2125,210.0156 L17.2125,208.8906 C17.2125,206.1719 19.2125,204.0938 21.8375,204.0938 C22.7125,204.0938 23.3063,204.2344 24.2438,204.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="36.1" y="213.1543">Node</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="72" y1="225" y2="225"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="12" y="239.2104">Node ID</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="55" x="12" y="252.0151">Source ID</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="12" y="264.8198">Partition</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="72" y1="271.4141" y2="271.4141"/><!--class Field--><rect fill="#FEFECE" filter="url(#fpnxqja4sq5n1)" height="60.8047" id="Field" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="108" y="205.5"/><ellipse cx="123" cy="221.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M125.3438,217.1719 L125.5156,217.25 C125.7344,216.9375 125.9375,216.8438 126.2344,216.8438 C126.5313,216.8438 126.8125,216.9844 126.9688,217.25 C127.0625,217.4063 127.0781,217.5313 127.0781,217.9688 L127.0781,219.3906 C127.0781,219.8125 127.0469,220 126.9375,220.1563 C126.7656,220.375 126.5,220.5156 126.2344,220.5156 C126.0156,220.5156 125.7813,220.4063 125.6406,220.2656 C125.5,220.1406 125.4688,220.0156 125.4063,219.6094 C125.3125,219.2031 125.1406,218.9844 124.6563,218.7031 C124.1875,218.4531 123.5781,218.2969 123,218.2969 C121.2656,218.2969 120.0156,219.6094 120.0156,221.3906 L120.0156,222.4844 C120.0156,224.1875 121.3125,225.2813 123.3594,225.2813 C124.125,225.2813 124.8125,225.1563 125.2344,224.8906 C125.4219,224.7969 125.4219,224.7969 125.875,224.3125 C126.0625,224.125 126.2656,224.0469 126.4844,224.0469 C126.9531,224.0469 127.3438,224.4375 127.3438,224.8906 C127.3438,225.2813 127.0156,225.7344 126.4375,226.1406 C125.6875,226.6875 124.5313,226.9844 123.3125,226.9844 C120.4219,226.9844 118.3125,225.0938 118.3125,222.5156 L118.3125,221.3906 C118.3125,218.6719 120.3125,216.5938 122.9375,216.5938 C123.8125,216.5938 124.4063,216.7344 125.3438,217.1719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="29" x="137" y="225.6543">Field</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="109" x2="168" y1="237.5" y2="237.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="114" y="251.7104">Name</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="109" x2="168" y1="258.3047" y2="258.3047"/><!--link Request to Node--><path d="M69.9752,133.312 C64.5718,151.342 58.7555,170.749 53.6672,187.7277 " fill="none" id="Request-Node" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="52.1127,192.9146,58.5281,185.4418,53.5482,188.1251,50.8649,183.1451,52.1127,192.9146" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="59.5116" y="153.0859">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="46.565" y="181.8975">*</text><!--link Request to Field--><path d="M107.403,133.312 C114.337,155.988 121.938,180.8427 127.889,200.3036 " fill="none" id="Request-Field" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="129.366,205.1305,130.559,195.3542,127.9037,200.3491,122.9088,197.6938,129.366,205.1305" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="101.0329" y="153.0859">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="119.7602" y="194.3175">*</text><!--
@startuml
Request "1" - -> "*" Node
Request "1" - -> "*" Field
Request : Id
Request : Categories
Request : From
Request : To
Request : When
Request : Tokens
Node : Node ID
Node : Source ID
Node : Partition
Field : Name
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Request "1" --> "*" Node
Request "1" --> "*" Field
Request : Id
Request : Categories
Request : From
Request : To
Request : When
Request : Tokens
Node : Node ID
Node : Source ID
Node : Partition
Field : Name
@enduml
\ No newline at end of file
<?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="288px" preserveAspectRatio="none" style="width:375px;height:288px;" version="1.1" viewBox="0 0 375 288" width="375px" zoomAndPan="magnify"><defs><filter height="300%" id="fu19bempns6x8" 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(#fu19bempns6x8)" height="160.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="257.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fu19bempns6x8)" height="123.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="262.5" y="106.4297"/><rect fill="#FFFFFF" filter="url(#fu19bempns6x8)" height="46.2656" style="stroke: #000000; stroke-width: 2.0;" width="292" x="13" y="155.6953"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="51" x2="51" y1="38.2969" y2="248.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="262" x2="262" y1="38.2969" y2="248.0938"/><rect fill="#FEFECE" filter="url(#fu19bempns6x8)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#fu19bempns6x8)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="23" y="247.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="30" y="267.0889">Client</text><rect fill="#FEFECE" filter="url(#fu19bempns6x8)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="230" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="237" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#fu19bempns6x8)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="230" y="247.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="237" y="267.0889">Device</text><rect fill="#FFFFFF" filter="url(#fu19bempns6x8)" height="160.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="257.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fu19bempns6x8)" height="123.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="262.5" y="106.4297"/><polygon fill="#A80036" points="245.5,65.2969,255.5,69.2969,245.5,73.2969,249.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="51.5" x2="251.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="58.5" y="64.3638">iq get(req)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="267.5" x2="314.5" y1="93.5625" y2="93.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="314.5" x2="314.5" y1="93.5625" y2="106.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="273.5" x2="314.5" y1="106.5625" y2="106.5625"/><polygon fill="#A80036" points="283.5,102.5625,273.5,106.5625,283.5,110.5625,279.5,106.5625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="279.5" y="88.4966">start readout</text><polygon fill="#A80036" points="62.5,136.5625,52.5,140.5625,62.5,144.5625,58.5,140.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="140.5625" y2="140.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="170" x="68.5" y="135.6294">iq result(resp[more=true])</text><rect fill="none" height="46.2656" style="stroke: #000000; stroke-width: 2.0;" width="292" x="13" y="155.6953"/><polygon fill="#EEEEEE" points="13,155.6953,283,155.6953,283,162.6953,273,172.6953,13,172.6953,13,155.6953" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="225" x="28" y="168.7622">Variable number of fragments</text><polygon fill="#A80036" points="62.5,189.8281,52.5,193.8281,62.5,197.8281,58.5,193.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="193.8281" y2="193.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="68.5" y="188.895">message(resp[more=true])</text><polygon fill="#A80036" points="62.5,225.9609,52.5,229.9609,62.5,233.9609,58.5,229.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56.5" x2="261.5" y1="229.9609" y2="229.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="68.5" y="225.0278">message(resp[more=false])</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(resp[more=true])
group Variable number of fragments
Client <- Device : message(resp[more=true])
end
Client <- Device : message(resp[more=false])
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(resp[more=true])
group Variable number of fragments
Client <- Device : message(resp[more=true])
end
Client <- Device : message(resp[more=false])
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="198px" preserveAspectRatio="none" style="width:267px;height:198px;" version="1.1" viewBox="0 0 267 198" width="267px" zoomAndPan="magnify"><defs><filter height="300%" id="f1j6ij45ur5gx" 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(#f1j6ij45ur5gx)" height="71.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="149.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f1j6ij45ur5gx)" height="34.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="154.5" y="106.4297"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="36" x2="36" y1="38.2969" y2="158.6953"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="154" x2="154" y1="38.2969" y2="158.6953"/><rect fill="#FEFECE" filter="url(#f1j6ij45ur5gx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#f1j6ij45ur5gx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="157.6953"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="177.6904">Client</text><rect fill="#FEFECE" filter="url(#f1j6ij45ur5gx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="122" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="129" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#f1j6ij45ur5gx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="122" y="157.6953"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="129" y="177.6904">Device</text><rect fill="#FFFFFF" filter="url(#f1j6ij45ur5gx)" height="71.2656" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="149.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#f1j6ij45ur5gx)" height="34.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="154.5" y="106.4297"/><polygon fill="#A80036" points="137.5,65.2969,147.5,69.2969,137.5,73.2969,141.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="36.5" x2="143.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="43.5" y="64.3638">iq get(req)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="159.5" x2="206.5" y1="93.5625" y2="93.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="206.5" x2="206.5" y1="93.5625" y2="106.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="165.5" x2="206.5" y1="106.5625" y2="106.5625"/><polygon fill="#A80036" points="175.5,102.5625,165.5,106.5625,175.5,110.5625,171.5,106.5625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="171.5" y="88.4966">start readout</text><polygon fill="#A80036" points="47.5,136.5625,37.5,140.5625,47.5,144.5625,43.5,140.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="153.5" y1="140.5625" y2="140.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="53.5" y="135.6294">iq result(resp)</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(resp)
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(resp)
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
<?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="271px" preserveAspectRatio="none" style="width:292px;height:271px;" version="1.1" viewBox="0 0 292 271" width="292px" zoomAndPan="magnify"><defs><filter height="300%" id="fn48q2zc23zbj" 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(#fn48q2zc23zbj)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="167.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fn48q2zc23zbj)" height="106.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="172.5" y="106.4297"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="36" x2="36" y1="38.2969" y2="230.9609"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="172" x2="172" y1="38.2969" y2="230.9609"/><rect fill="#FEFECE" filter="url(#fn48q2zc23zbj)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="22.9951">Client</text><rect fill="#FEFECE" filter="url(#fn48q2zc23zbj)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="8" y="229.9609"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="15" y="249.9561">Client</text><rect fill="#FEFECE" filter="url(#fn48q2zc23zbj)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="140" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="147" y="22.9951">Device</text><rect fill="#FEFECE" filter="url(#fn48q2zc23zbj)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="140" y="229.9609"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="147" y="249.9561">Device</text><rect fill="#FFFFFF" filter="url(#fn48q2zc23zbj)" height="143.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="167.5" y="69.2969"/><rect fill="#FFFFFF" filter="url(#fn48q2zc23zbj)" height="106.3984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="172.5" y="106.4297"/><polygon fill="#A80036" points="155.5,65.2969,165.5,69.2969,155.5,73.2969,159.5,69.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="36.5" x2="161.5" y1="69.2969" y2="69.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="43.5" y="64.3638">iq get(req)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="177.5" x2="224.5" y1="93.5625" y2="93.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="224.5" x2="224.5" y1="93.5625" y2="106.5625"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="183.5" x2="224.5" y1="106.5625" y2="106.5625"/><polygon fill="#A80036" points="193.5,102.5625,183.5,106.5625,193.5,110.5625,189.5,106.5625" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="189.5" y="88.4966">start readout</text><polygon fill="#A80036" points="47.5,136.5625,37.5,140.5625,47.5,144.5625,43.5,140.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="171.5" y1="140.5625" y2="140.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="53.5" y="135.6294">iq result(started)</text><rect fill="#EEEEEE" filter="url(#fn48q2zc23zbj)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="277.5" x="3" y="169.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="280.5" y1="169.2617" y2="169.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="280.5" y1="172.2617" y2="172.2617"/><rect fill="#EEEEEE" filter="url(#fn48q2zc23zbj)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="60" x="111.75" y="158.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="117.75" y="174.7622">Delay</text><polygon fill="#A80036" points="47.5,208.8281,37.5,212.8281,47.5,216.8281,43.5,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="41.5" x2="171.5" y1="212.8281" y2="212.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="53.5" y="207.895">message(resp)</text><!--
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(started)
== Delay ==
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
PlantUML version 1.2017.18beta8(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.7.0_25-b15
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>
\ No newline at end of file
@startuml
Client -> Device : iq get(req)
Activate Device
Device -> Device : start readout
Activate Device
Client <- Device : iq result(started)
== Delay ==
Client <- Device : message(resp)
Deactivate Device
Deactivate Device
@enduml
\ No newline at end of file
......@@ -14,7 +14,7 @@ Representation
Communication Patterns
----------------------------
* [Request/Response](RequestResponse.md)
* [Sensor Data Request/Response communication pattern](SensorDataRequestResponse.md)
Schemas
......
Request/Response communication pattern
=============================================
Legacy
-------------
The following data model is based on work done in the [XMPP Standards Foundation (XSF)](https://xmpp.org/about/xmpp-standards-foundation.html),
[XEP-0323: Internet of Things - Sensor Data](https://xmpp.org/extensions/xep-0323.html).
Apart from the differences noted in the [Sensor Data document](SensorData.md#legacy), here follows a list of noteable differences:
* A separation of XML representation and communication pattern has been done.
* Easier to respond for small/quick devices
* More data is signalled using a `more` attribute, instead of a lack of a `done` attribute.
......@@ -204,6 +204,7 @@ Following is a list of noteable differences:
* The node element is now optional.
* Localization is somewhat simplified.
* Errors can now be embedded with the sensor data, and is not related to the communication pattern.
* Documentation has been simplified.
* Easier to respond for small/quick devices
* more instead of done
......
......@@ -605,18 +605,6 @@
</xs:complexType>
</xs:element>
<xs:element name='cancelled'>
<xs:annotation>
<xs:documentation>Request has been cancelled</xs:documentation>
<xs:documentation>This element is sent in an iq result stanza.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base='reqref'/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name='done'>
<xs:annotation>
<xs:documentation>Request has been completed</xs:documentation>
......
Sensor Data Request/Response communication pattern
========================================================
You can retrieve sensor data from a device, nodes in a device, by sending an request to the device. This document describes this pattern.
Motivation and design goal
----------------------------
The request/response pattern for sensor data described in this document, is designed with the following goals in mind:
* Pattern should allow fast, quick readouts, where possible.
* Pattern should support slow asynchronous processes, with progress updates.
* Pattern should support both small and large data sets.
* Pattern should support both queueing and scheduling of requests.
* Pattern should support secure distributed transactions.
* Pattern should support limitation of requests.
Building the request
-------------------------
The request is sent using an `iq get` stanza with a `req` element to the device. This request may optionally include references to nodes
(if the device supports nodes) and field names the request should be limited to. If no field names are provided, all fields names are implied.
If no node references are provided, only devices not supporting nodes are implied. Concentrators should interpret this as an empty request, readong zero nodes.
The request also contains an **Identity**, that will be used to match response messages to the original request. Field **categories** are also included in the
request. The device filters the response, as to only return fields in these categories. The special `all` attribute can be used, to mean all categories.
**Time intervals** can be defined usign a `from` and a `to` attribute. The readout can also be `scheduled`. Distributed transactions can be executed by the
use of [tokens](#tokens).
![Sensor Data Request](Diagrams/SensorDataRequest.png)
### XML representation
| Entity | Element | Use | Attributes | Type | Use | Description |
|-----------|-----------|----------|------------|---------------|----------|-----------------------------------|
| Request | `req` | Required | `id` | `xs:string` | Required | Request identity. |
| | | | `m` | `xs:boolean` | Optional | Include momentary values. |
| | | | `p` | `xs:boolean` | Optional | Include peak values. |
| | | | `s` | `xs:boolean` | Optional | Include status values. |
| | | | `c` | `xs:boolean` | Optional | Include computed values. |
| | | | `i` | `xs:boolean` | Optional | Include identity values. |
| | | | `h` | `xs:boolean` | Optional | Include historical values. |
| | | | `all` | `xs:boolean` | Optional | Include all categories of fields. |
| Node | `nd` | Optional | `id` | `xs:string` | Required | Node identity. |
| | | | `src` | `xs:string` | Optional | Source identity. |
| | | | `pt` | `xs:string` | Optional | Partition. |
| Field | `f` | Optional | `f` | `xs:string` | Required | Unlocalized field name. |
Responses
------------
When receiving a request, a device can respond in several manners:
* Returning the sensor data immediately.
* Returning a response, letting the client know the readout has commenced, but data is not yet available.
* Returning a response, letting the client know the request has been accepted, but not yet started.
* Returning an error response.
### Returning sensor data immediately
A simple readout just returns the sensor data in a `iq result` stanza with a `resp` element. This is typically the pattern of small devices having
the current values in internal memory.
![Simple Readout](Diagrams/SimpleReadout.png)
### Slow responses
If it takes time to collect the data to return, the device returns a `started` element in an `iq result` stanza immediately to the client. This allows the
client to know the request has been accepted and started, and that data will be sent later. When data is available, it is sent asynchronously to the client,
using the `message` stanza containing a `resp` element.
![Slow Readout](Diagrams/SlowReadout.png)
### Scheduled or queued responses