summaryrefslogtreecommitdiffstats
path: root/app/voice
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-12-30 18:44:05 -0500
committerScott Murray <scott.murray@konsulko.com>2019-12-30 23:40:38 +0000
commit8170c9280b57c8da5d1d6045e16d5ac14bc5220d (patch)
treef501f7c1f752e704bf08f5c8ce7e5424257d4ce9 /app/voice
parent7f14e2db1011a4ac4e81ad8dcd3a3b2459411a99 (diff)
Enhance voice configurationicefish_8.99.5icefish/8.99.58.99.5
Various tweaks to the new voice configuration support: - Moved "Version" choice on the main menu back down to the last choice, since it's less likely to be used. - Pull in qt-qrcode library's quickitem support and use it to display a QR code when Alexa authorization is required. - Reworked layout of voice configuration dialog to tighten up spacing and make more room for the QR code. - Tweaked voice configuration dialog logic to only show the login prompting when in not-authorized state. Ideally, a deauth button would be shown in the authorized state, but the voiceagent API currently does not enable that AFAICT. - Replace voiceagent ID with vendor in voiceagent configuration dialog, as the ID is more of an internal thing that's not useful to users. - Tweaked some text colors in voiceagent configuration dialog for better consistency with the other settings pages. - Switched voiceagent configuration dialog positioning to center it on-screen, as that seems more consistent with the look of the other settings pages. - Made the previous two changes to the wired settings configuration dialog as well for consistency. - Updated the voice settings icon with a microphone icon to match the default icon shown for the homescreen PTT button. - Updated the wired settings icon with a more typical network icon to avoid confusion. Bug-AGL: SPEC-2981 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I75560e3cab393e6efdfb1310f266e5b6bb0534d6
Diffstat (limited to 'app/voice')
-rw-r--r--app/voice/ConfigDialog.qml206
-rw-r--r--app/voice/Voice.qml53
-rw-r--r--app/voice/images/HMI_Settings_VoiceIcon.svg424
3 files changed, 422 insertions, 261 deletions
diff --git a/app/voice/ConfigDialog.qml b/app/voice/ConfigDialog.qml
index dd939d2..9767804 100644
--- a/app/voice/ConfigDialog.qml
+++ b/app/voice/ConfigDialog.qml
@@ -18,9 +18,9 @@
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
+import QtQrCode.Component 1.0
import AGL.Demo.Controls 1.0
-
Dialog {
id: root
property alias xpos: root.x
@@ -30,6 +30,7 @@ Dialog {
property string thisAgentName: undefined
property string thisAgentId: undefined
+ property string thisAgentVendor: undefined
property string thisAgentWuW: undefined
property string thisAgentAuthState: undefined
property string thisAgentConnState: undefined
@@ -44,7 +45,7 @@ Dialog {
visible: false
z: 1
focus: true
- modal: false
+ modal: true
footer: DialogButtonBox {
Button { text: "CLOSE"
DialogButtonBox.buttonRole: DialogButtonBox.RejectRole
@@ -60,7 +61,8 @@ Dialog {
background: Rectangle {
border.color : '#00ADDC'
- color: 'transparent'
+ color: 'black'
+ opacity: 0.5
}
onReset: refreshToken()
@@ -74,161 +76,189 @@ Dialog {
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
+ spacing: 0
+
RowLayout {
- Layout.fillHeight: true
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- spacing: 32
- visible: true
- Label {
- id: voiceLabel
- font.pixelSize: 28
- color: '#080C0F'
- text: "Voice Agent:"
- Layout.preferredWidth: 200
- }
- Label {
- id: idLabel
- font.pixelSize: 28
- color: '#66FF99'
- text: thisAgentId
- }
- }
- RowLayout {
- Layout.fillHeight: true
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- spacing: 32
- visible: true
- Label {
- id: namelabel
- font.pixelSize: 28
- color: '#080C0F'
- text: "Assistant Name:"
- Layout.preferredWidth: 200
- }
- Label {
- id: aNamelabel
- font.pixelSize: 28
- color: '#66FF99'
- text: thisAgentName
- }
- }
- RowLayout {
- Layout.fillHeight: true
+ Layout.fillHeight: false
Layout.fillWidth: true
- Layout.alignment: Qt.AlignLeft
- spacing: 32
- visible: true
- Label {
- id: wuwlabel
- font.pixelSize: 28
- color: '#080C0F'
- text: "Wake Up Word:"
- Layout.preferredWidth: 200
- }
- Label {
- id: thiswuwlabel
- font.pixelSize: 28
- color: '#848286'
- text: thisAgentWuW
- }
- }
- RowLayout {
- Layout.fillHeight: true
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignHCenter
+ Layout.alignment: Qt.AlignLeft | Qt.AlignTop
spacing: 16
- visible: true
+
+ /* Labels */
ColumnLayout {
Layout.fillWidth: true
Label {
+ id: nameLabel
+ font.pixelSize: 28
+ color: 'white'
+ text: "Voice Agent:"
+ Layout.preferredWidth: 200
+ }
+ Label {
+ id: vendorLabel
+ font.pixelSize: 28
+ color: 'white'
+ text: "Vendor:"
+ Layout.preferredWidth: 200
+ }
+ Label {
+ id: wuwLabel
+ font.pixelSize: 28
+ color: 'white'
+ text: "Wake Up Word:"
+ Layout.preferredWidth: 200
+ }
+ Label {
id: authLabel
font.pixelSize: 28
- color: '#080C0F'
+ color: 'white'
text: "Authorization status:"
}
Label {
- id: connlabel
+ id: connLabel
font.pixelSize: 28
- color: '#080C0F'
+ color: 'white'
text: "Connection status:"
}
Label {
id: dialogLabel
font.pixelSize: 28
- color: '#080C0F'
+ color: 'white'
text: "Dialog status:"
}
}
+
+ /* Values */
ColumnLayout {
Layout.fillWidth: true
Label {
- id: authsLabel
+ id: nameValue
+ font.pixelSize: 28
+ color: '#66FF99'
+ text: thisAgentName
+ }
+ Label {
+ id: vendorValue
+ font.pixelSize: 28
+ color: '#66FF99'
+ text: thisAgentVendor
+ }
+ Label {
+ id: wuwValue
+ font.pixelSize: 28
+ color: '#66FF99'
+ text: thisAgentWuW
+ }
+ Label {
+ id: authValue
font.pixelSize: 28
color: (thisAgentAuthState == "UNINITIALIZED")? '#00ADDC' : '#848286'
text: thisAgentAuthState
}
Label {
- id: connslabel
+ id: connValue
font.pixelSize: 28
color: (thisAgentConnState == "DISCONNECTED")? '#00ADDC' : '#848286'
text: thisAgentConnState
}
Label {
- id: dialogsLabel
+ id: dialogValue
font.pixelSize: 28
color: (thisAgentDialogState == "MICROPHONEOFF")? '#00ADDC' : '#848286'
text: thisAgentDialogState
- }
+ }
}
}
RowLayout {
Layout.fillHeight: true
Layout.fillWidth: true
- Layout.alignment: Qt.AlignHCenter
+ Layout.alignment: Qt.AlignLeft
+ Layout.topMargin: 32
spacing: 16
- visible: true
+ visible: root.thisAgentAuthState !== "REFRESHED"
ColumnLayout {
Layout.fillWidth: true
Label {
- id: loginurlLabel
+ id: loginUrlLabel
font.pixelSize: 28
- color: '#080C0F'
+ color: 'white'
text: "Login url:"
}
Label {
- id: logincodeLabel
+ id: loginCodeLabel
font.pixelSize: 28
- color: '#080C0F'
+ color: 'white'
text: "Login code:"
}
}
ColumnLayout {
Layout.fillWidth: true
Label {
- id: urlLabel
+ id: loginUrlValue
font.pixelSize: 28
color: root.tokenValid? '#848286':'#0DF9FF'
text: thisAgentLoginUrl
}
Label {
- id: codeLabel
+ id: loginCodeValue
font.pixelSize: 28
color: root.tokenValid? '#848286':'#0DF9FF'
text: thisAgentLoginCode
}
}
}
- Label {
- font.pixelSize: 18
- visible: root.tokenValid
- text: "You can use the supplied login data to enable "+thisAgentName+"."
+ RowLayout {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignHCenter
+ Layout.topMargin: 8
+ Layout.bottomMargin: 8
+
+ QtQrCode {
+ /*
+ * FIXME: Generated URL is currently Alexa-specific, work around for
+ * now by checking agent name and only displaying for Alexa.
+ */
+ data: root.thisAgentLoginUrl + '?cbl-code=' + root.thisAgentLoginCode
+ visible: root.thisAgentName === "Alexa" && root.thisAgentAuthState !== "REFRESHED" && root.tokenValid
+ background: 'white'
+ margin: 16
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
}
Label {
+ id: instructions
font.pixelSize: 18
- visible: !root.tokenValid
- text: "The current login data is not valid. Press 'UPDATE' to refresh."
+
+ states: [
+ State {
+ name: "HAVE_TOKEN"
+ when: root.thisAgentAuthState !== "REFRESHED" && root.tokenValid
+ PropertyChanges {
+ target: instructions
+ text: "You can use the supplied login data to enable "+thisAgentName+"."
+ visible: true
+ }
+ },
+ State {
+ name: "NEED_TOKEN"
+ when: root.thisAgentAuthState !== "REFRESHED" && !root.tokenValid
+ PropertyChanges {
+ target: instructions
+ text: "The current login data is not valid. Press 'UPDATE' to refresh."
+ visible: true
+ }
+ },
+ State {
+ name: "AUTHORIZED"
+ when: root.thisAgentAuthState === "REFRESHED"
+ PropertyChanges {
+ target: instructions
+ visible: false
+ }
+ }
+ ]
}
}
}
diff --git a/app/voice/Voice.qml b/app/voice/Voice.qml
index b316132..4de43b6 100644
--- a/app/voice/Voice.qml
+++ b/app/voice/Voice.qml
@@ -27,62 +27,12 @@ SettingPage {
title: 'Voice'
readonly property bool isVoice: true
- Rectangle {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.top
- anchors.margins: 80
- width: 110
- color: "#222"
- border.color: "white"
-
- Button {
- id: buttonScan
- anchors.centerIn: parent
- anchors.margins: 10
- text: enabled? "SCAN" : "PROCESSING"
- visible: true
- enabled: true
-
- Timer {
- id: scanAnimationTimer
- interval: 3000
- running: false
- repeat: false
- onTriggered: {
- buttonScan.enabled = true
- }
- }
- MouseArea {
- anchors.fill: parent
-
- onClicked: {
- voice.scan()
- buttonScan.enabled = false
- scanAnimationTimer.start()
- }
- }
- }
- }
-
Component {
id: voiceAgent
MouseArea {
height: 120
width: ListView.view.width
Column {
- anchors.left: parent.left
- anchors.leftMargin: 5
- id: agentId
- Label {
- id: agentIdText
- text: id
- color: '#66FF99'
- font.pixelSize: 38
- font.bold: active === "active"
- }
- }
- Column {
- anchors.left: agentId.right
anchors.leftMargin: 100
id: agentName
Label {
@@ -112,10 +62,11 @@ SettingPage {
maxpwidth: 744
maxpheight: 744
xpos: (parent.width - maxpwidth)/2
- ypos: (parent.height - maxpheight)
+ ypos: (parent.height - maxpheight)/2
thisAgentName: name
thisAgentId: id
thisAgentWuW: wuw
+ thisAgentVendor: vendor
thisAgentAuthState: authstate
thisAgentConnState: connstate
thisAgentDialogState: dialogstate
diff --git a/app/voice/images/HMI_Settings_VoiceIcon.svg b/app/voice/images/HMI_Settings_VoiceIcon.svg
index edc87a7..7e6f8f6 100644
--- a/app/voice/images/HMI_Settings_VoiceIcon.svg
+++ b/app/voice/images/HMI_Settings_VoiceIcon.svg
@@ -1,54 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
- xmlns:ns0="&amp;#38;#38;ns_ai;"
+ xmlns:i="&amp;#38;ns_ai;"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
- id="Layer_1"
+ id="Radio_Inactive"
x="0px"
y="0px"
- viewBox="0 0 100 100"
- style="enable-background:new 0 0 100 100;"
+ viewBox="0 0 300 300"
xml:space="preserve"
inkscape:version="0.92.4 (unknown)"
- sodipodi:docname="HMI_Settings_VoiceIcon.svg"><metadata
- id="metadata20"><rdf:RDF><cc:Work
+ sodipodi:docname="foo.svg"
+ width="300"
+ height="300"><metadata
+ id="metadata5319"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
- id="defs18"><symbol
- id="CommunicationLink"><title
- id="title9930">Communication Link</title><desc
- id="desc9932">Transcommunication link.</desc><path
- d="m 65,25 0,60 20,-20 0,60"
- style="fill:none;stroke-width:2"
- id="path9934" /></symbol><symbol
- id="Connector"><title
- id="title9909">Connector</title><desc
- id="desc9911">Exit to or entry from another part of chart.</desc><circle
- cx="75"
- cy="75"
- r="20"
- style="stroke-width:2"
- id="circle9913" /></symbol><symbol
- id="MagneticTape"><title
- id="title9830">Magnetic Tape</title><desc
- id="desc9832">Magnetic tape storage</desc><circle
- cx="75"
- cy="75"
- r="40"
- style="stroke-width:2"
- id="circle9834" /><path
- d="m 75,115 40,0"
- style="stroke-width:2"
- id="path9836" /></symbol></defs><sodipodi:namedview
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs5317" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
@@ -57,95 +32,300 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:window-width="1853"
- inkscape:window-height="1145"
- id="namedview16"
+ inkscape:window-width="1858"
+ inkscape:window-height="808"
+ id="namedview5315"
showgrid="false"
- inkscape:zoom="2.36"
- inkscape:cx="-109.74576"
- inkscape:cy="50"
- inkscape:window-x="67"
+ inkscape:zoom="0.78666667"
+ inkscape:cx="-417.39185"
+ inkscape:cy="81.68331"
+ inkscape:window-x="0"
inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="Layer_1"
- inkscape:snap-text-baseline="true" /><style
+ inkscape:window-maximized="0"
+ inkscape:current-layer="g5196" /><style
type="text/css"
- id="style3">
+ id="style5192">
.st0{fill:#FFFFFF;}
+ .st1{font-family:'Roboto-Regular';}
+ .st2{font-size:25px;}
+ .st3{letter-spacing:6;}
+ .st4{fill:url(#SVGID_1_);}
+ .st5{fill:url(#SVGID_2_);}
+ .st6{fill:url(#SVGID_3_);}
+ .st7{fill:url(#SVGID_4_);}
+ .st8{fill:url(#SVGID_5_);}
+ .st9{fill:url(#SVGID_6_);}
+ .st10{fill:url(#SVGID_7_);}
+ .st11{fill:url(#SVGID_8_);}
+ .st12{fill:url(#SVGID_9_);}
+ .st13{fill:url(#SVGID_10_);}
+ .st14{fill:url(#SVGID_11_);}
+ .st15{fill:url(#SVGID_12_);}
+ .st16{fill:url(#SVGID_13_);}
</style><switch
- id="switch5"
- transform="matrix(0,0.56574372,-0.57641502,0,88.324883,33.229197)"><g
- ns0:extraneous="self"
- id="g7"><g
- id="Wifi_Icon"><path
- class="st0"
- d="m 49.6,32.8 c 10.8,-0.2 21.2,4.3 31,13.4 l 1.6,-1.6 C 72,35 61,30.2 49.6,30.5 34.4,30.9 22.7,39.9 17.8,44.4 l 1.6,1.6 c 4.7,-4.3 16,-12.9 30.2,-13.2 z"
- id="path10"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" /><path
- class="st0"
- d="m 29,55.8 1.6,1.6 c 2.9,-2.7 10.1,-8.2 19.1,-8.4 6.9,-0.2 13.4,2.7 19.6,8.5 L 71,56 C 64.3,49.7 57.1,46.6 49.7,46.8 39.7,47 32.1,52.9 29,55.8 Z"
- id="path12"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" /><path
- class="st0"
- d="m 49.8,63.5 c -4.7,0.1 -8.2,3.3 -9,4.2 l 1.6,1.6 c 0.7,-0.7 3.6,-3.4 7.5,-3.5 2.6,0 5.3,1.2 7.7,3.7 l 1.6,-1.6 c -2.9,-3 -6,-4.4 -9.4,-4.4 z"
- id="path14"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" /></g></g></switch><path
- style="fill:none"
- id="path5225"
- d="M 8.1860187,53.118056 C 7.9703975,50.541587 7.493591,47.999332 7.1519746,45.438887 6.7407211,42.965153 6.4221499,40.482093 6.2491503,37.980559 6.1330427,36.418293 6.1789087,34.851503 6.0023065,33.294322 5.9002972,32.472077 5.761593,31.654855 5.7015255,30.828017 5.6554512,29.917996 5.6825124,29.006285 5.686799,28.095617 5.6780582,26.64811 5.6826641,25.207011 5.8134216,23.764908 6.0582015,22.171895 6.2731171,20.574196 6.5428765,18.98507 6.8237445,17.655635 7.0677339,16.315862 7.4768847,15.018431 7.7104162,14.322745 7.9530839,13.676731 8.6299512,13.287204 14.501513,9.9082155 12.695965,10.628918 15.90588,9.4646217 19.458992,8.3280731 23.085737,7.442252 26.6986,6.5200878 c 2.151703,-0.4063341 4.183211,-1.4804334 6.363189,-1.7589783 0.897932,-0.1147326 1.298629,-0.011232 2.174248,0.097794 1.852329,0.3792485 3.636295,1.1678732 5.323045,2.0166162 1.350742,0.5955636 2.653871,1.2830422 3.968071,1.9522725 0.956685,0.610079 1.804514,1.4004878 2.624816,2.1823948 0.948111,0.983066 1.862026,2.003167 2.757821,3.035383 0.656471,0.730292 1.320834,1.443049 1.839535,2.280118 0.384308,0.527542 0.710582,1.091459 1.111546,1.607287 0.395319,0.597314 0.682338,1.25926 1.073466,1.858897 0.55726,0.616019 0.89149,1.365877 1.306613,2.072596 0.384159,0.626591 0.453798,1.33486 0.501875,2.051177 0.03774,0.84548 0.03043,1.69216 0.02841,2.538246 0.0035,0.693275 0.0028,1.386567 0.003,2.079847 -0.0026,0.644818 1.78e-4,1.289588 -0.0027,1.934413 0.0056,0.667985 -4.82e-4,1.33601 -0.0029,2.004001 0.0084,0.686716 -0.0024,1.373464 0.0034,2.060181 0.0011,0.714685 -0.0029,1.429367 -0.0047,2.144049 -0.0064,0.704667 0.0061,1.40927 0.0079,2.113907 0.0011,0.518225 4.25e-4,1.036499 0.0053,1.554708 -0.0091,0.510046 0.01497,1.020328 -0.02392,1.529125 -0.132028,0.457616 -0.222628,0.940697 -0.416788,1.3767 -0.186692,0.476674 -0.490605,0.883161 -0.678536,1.358248 -0.227606,0.355822 -0.369182,0.756426 -0.571478,1.124607 -0.282205,0.281102 -0.301543,0.670174 -0.464467,1.009803 -0.201596,0.432244 -0.498488,0.800628 -0.694263,1.234855 -0.278643,0.446739 -0.39963,0.954733 -0.483873,1.46754 -0.06438,0.576969 -0.03737,1.152969 -0.160693,1.722178 -0.141854,0.569271 -0.229906,1.14733 -0.290469,1.730043 -0.003,0.499389 -0.08111,1.010845 -0.01658,1.508615 0.09019,0.308069 0.268203,0.637103 0.54129,0.820335 0.400749,0.03147 0.7053,0.282742 1.070318,0.410173 0.403219,0.27607 0.719527,0.64704 1.055264,0.996437 0.422707,0.484016 0.565862,1.058841 0.655246,1.677885 0.01101,0.524347 -0.101969,1.091209 -0.340202,1.561579 -0.202111,0.393532 -0.515304,0.731066 -0.841182,1.029401 -0.395096,0.295421 -0.787523,0.571065 -1.142998,0.916841 -0.431838,0.614192 -0.669862,1.337859 -1.038942,1.991607 -0.386963,0.543488 -0.772704,1.085875 -1.174589,1.618274 -1.742189,2.270016 -2.677288,1.525507 -6.319725,4.170622 -1.623902,1.179267 3.475087,-2.008651 5.21263,-3.012977 -0.444883,0.2688 -0.78167,0.66896 -1.190878,0.983434 -0.458444,0.337664 -0.917528,0.672387 -1.346474,1.047356 -0.370803,0.319398 -0.748567,0.637734 -1.168764,0.893248 -0.622384,0.46474 -1.2451,0.929314 -1.887603,1.366694 -2.460122,1.908887 -5.319394,3.139923 -8.100728,4.457021 -1.234317,0.583927 -2.476789,0.529322 -3.804172,0.461994 -2.241697,-0.12864 -4.486117,-0.193448 -6.731145,-0.219829 -1.497026,-0.213573 -3.024119,-0.596211 -4.327172,-1.387405 -0.506821,-0.403131 -0.259874,-0.212125 -0.739766,-0.574405 0,0 5.311447,-3.35265 5.311447,-3.35265 v 0 c 0.453798,0.351238 0.224702,0.179426 0.687231,0.515514 1.24674,0.694552 2.660102,1.058795 4.077561,1.175462 2.247975,0.0681 4.496127,0.130206 6.743562,0.215265 1.297656,0.0038 2.514332,-0.121136 3.685217,-0.728731 0.502697,-0.223194 0.993727,-0.457577 1.484789,-0.70503 0.160311,-0.08078 0.637377,-0.32987 0.482823,-0.238555 -4.552904,2.690002 -6.746047,3.788226 -4.608412,2.708666 0.585549,-0.496254 1.285165,-0.849412 1.851571,-1.372012 0.24153,-0.202261 0.541309,-0.312883 0.782748,-0.510763 0.07097,-0.05817 0.115421,-0.145093 0.188424,-0.200684 0.06895,-0.0525 0.154149,-0.07925 0.231224,-0.118876 0.423522,-0.395169 0.848636,-0.788579 1.336084,-1.105733 0.419551,-0.305758 0.819802,-0.601008 1.163636,-0.997755 1.860227,-1.089292 3.674198,-2.261732 5.58068,-3.267875 1.775379,-0.936954 -3.45557,2.044138 -5.186956,3.060088 -0.06567,0.03854 0.127526,-0.08333 0.189458,-0.127634 0.26031,-0.186212 0.416842,-0.429399 0.60166,-0.689217 0.478632,-0.459737 0.805831,-1.030486 1.195614,-1.564363 0.527789,-0.550988 0.740021,-1.308599 1.02582,-2.001201 0.265506,-0.456526 0.623858,-0.788678 1.061063,-1.059514 0.365638,-0.237233 0.619311,-0.51992 0.957153,-0.785841 0.06796,-0.123559 0.181055,-0.2191 0.245483,-0.344537 0.136546,-0.265844 0.09625,-0.619982 0.268556,-0.877609 -0.0449,-0.48982 -0.103326,-0.946301 -0.45561,-1.320856 -0.278755,-0.288004 -0.556559,-0.607998 -0.926339,-0.778054 -0.397984,-0.195228 -0.835114,-0.305428 -1.187378,-0.584352 -0.316127,-0.330058 -0.596792,-0.69874 -0.72607,-1.143399 -0.168871,-0.542833 -0.04765,-1.128846 -0.05907,-1.691547 0.01727,-0.612463 0.107498,-1.220462 0.253351,-1.815714 0.03889,-0.180906 0.118961,-0.352379 0.147141,-0.535259 0.05658,-0.367172 -0.03908,-0.760921 0.02751,-1.129698 0.04847,-0.573845 0.155717,-1.146876 0.377953,-1.680601 0.256463,-0.387432 0.355335,-0.865281 0.704749,-1.202725 0.05119,-0.108017 0.152262,-0.187747 0.201335,-0.296741 0.111513,-0.247671 -0.01464,-0.589279 0.22629,-0.787209 0.259266,-0.336741 0.384157,-0.715518 0.609416,-1.073091 0.162738,-0.240171 0.18145,-0.489177 0.320512,-0.739494 0.0076,-0.01371 0.267736,-0.367385 0.275356,-0.380356 0.03782,-0.06439 0.06227,-0.135748 0.09341,-0.203622 0.05844,-0.13073 0.161531,-0.239137 0.214693,-0.372102 0.11096,-0.27752 0.08096,-0.623975 0.260563,-0.882585 0.184147,-0.434331 0.03474,-0.948527 0.07745,-1.410912 0.0048,-0.519994 0.0042,-1.040052 0.0053,-1.560062 0.0019,-0.707331 0.01425,-1.414629 0.0079,-2.121991 -0.0018,-0.713077 -0.0059,-1.426154 -0.0047,-2.139233 0.0058,-0.687875 -0.005,-1.375779 0.0034,-2.063652 -0.0025,-0.667 -0.0086,-1.334033 -0.003,-2.001026 -0.0028,-0.644475 -3.7e-5,-1.288888 -0.0013,-1.933359 0.0021,-0.69647 0.0049,-1.392987 0.01385,-2.089408 0.0026,-0.833747 0.0099,-1.667821 -0.01621,-2.501289 -0.03062,-0.620598 -0.05072,-1.242255 -0.371661,-1.793743 C 49.395885,24.301652 49.056374,23.570949 48.509294,22.96287 48.128148,22.376549 47.82193,21.746096 47.445548,21.158255 47.032532,20.623819 46.706004,20.035072 46.31668,19.484049 45.818735,18.676319 45.175591,17.984776 44.551238,17.274059 43.681016,16.252175 42.806387,15.226917 41.846231,14.2887 41.03837,13.559092 40.22463,12.806819 39.276801,12.262187 38.007178,11.551488 36.716097,10.884634 35.390474,10.28299 33.736499,9.4990487 32.024306,8.7150302 30.202158,8.4442769 29.876492,8.4239624 29.551403,8.3773026 29.22516,8.3833332 c -2.444497,0.045187 -4.905242,1.3516906 -7.288638,1.7813558 -3.650421,0.926779 -7.314552,1.840354 -10.869417,3.094058 -2.8533014,1.154891 -1.012413,0.476369 3.378326,-2.229777 0.184856,-0.113932 -0.401718,0.167552 -0.591145,0.273711 -0.454642,0.254789 -0.32568,0.203362 -0.51565,0.647835 -0.06011,0.140644 -0.126832,0.278371 -0.190248,0.417556 -0.49638,1.249961 -0.702409,2.583135 -1.014281,3.886473 -0.271934,1.576571 -0.484833,3.15996 -0.758247,4.736717 -0.118432,1.421434 -0.164324,2.839173 -0.119482,4.266383 0.0046,0.891825 0.01515,1.783812 0.04206,2.675265 0.04086,0.824885 0.137067,1.644861 0.236542,2.464489 0.173419,1.579118 0.134322,3.161066 0.196151,4.747384 0.134623,2.499423 0.410051,4.985256 0.810564,7.456686 0.343603,2.543932 0.796189,5.071876 1.204816,7.605428 0,0 -5.5604903,2.911159 -5.5604903,2.911159 z"
- inkscape:connector-curvature="0" /><path
- style="fill:none"
- id="path5227"
- d="m 24.485013,44.66292 c 1.359909,-0.82284 2.520233,-1.904259 3.62995,-3.031218 0.677715,-0.712758 0.35662,-0.369753 0.964652,-1.027735 0,0 5.759358,-2.410173 5.759358,-2.410173 v 0 c -0.630626,0.674203 -0.300589,0.322706 -0.990485,1.054136 -1.084555,1.12558 -2.17328,2.296542 -3.522213,3.107721 0,0 -5.841262,2.307269 -5.841262,2.307269 z"
- inkscape:connector-curvature="0" /><path
- style="fill:none;stroke-width:1.38337505"
- id="path5229"
- d="m 13.458322,29.690015 c 2.561575,-1.722524 5.192379,-3.055439 7.799819,-4.506591 1.667405,-1.110112 3.080853,-1.969808 4.835155,-1.022021 0.470137,0.253999 1.673682,1.246314 2.132631,1.613436 1.545355,1.092565 2.760099,3.177951 4.087998,4.93834 0.996277,1.544921 1.69777,3.635137 2.463728,5.574231 0.649106,1.878032 1.424323,3.570049 2.163422,5.316728 0.476674,1.495824 0.857344,3.09934 1.271452,4.661461 0.422975,1.84617 0.847858,3.687992 1.16792,5.610185 0.201079,0.997694 0.108777,2.026328 -0.03392,3.023611 0,0 -5.695669,5.241074 -5.695669,5.241074 v 0 c 0.08649,-0.831594 0.345152,-1.64666 0.207613,-2.495528 -0.261799,-1.884664 -0.663213,-3.668152 -1.083394,-5.44151 -0.402366,-1.491811 -0.793688,-2.994917 -1.239441,-4.441788 -0.69417,-1.81302 -1.460379,-3.518374 -2.122323,-5.377391 -0.729428,-1.850463 -1.412693,-3.828511 -2.385734,-5.252083 -1.241499,-1.812147 -2.435068,-3.739635 -3.925517,-4.798984 -0.623543,-0.476916 -1.386003,-1.121649 -2.049441,-1.383898 -1.598517,-0.631876 -3.107366,0.457549 -4.615322,1.342787 -2.662367,1.469107 -5.339066,2.883111 -7.932442,4.762582 0,0 4.953462,-7.364641 4.953462,-7.364641 z"
- inkscape:connector-curvature="0" /><path
- style="fill:none;stroke-width:2.21237707"
- id="path5239"
- sodipodi:type="arc"
- sodipodi:cx="32.427959"
- sodipodi:cy="41.441784"
- sodipodi:rx="10.46186"
- sodipodi:ry="6.0740414"
- sodipodi:start="0"
- sodipodi:end="4.3327517"
- d="m 42.889819,41.441784 a 10.46186,6.0740414 0 0 1 -9.141486,6.025472 10.46186,6.0740414 0 0 1 -11.448949,-4.504543 10.46186,6.0740414 0 0 1 6.251582,-7.162493 l 3.876993,5.641564 z" /><path
- style="display:inline;fill:none"
- id="path5241"
- sodipodi:type="arc"
- sodipodi:cx="17.09322"
- sodipodi:cy="28.508474"
- sodipodi:rx="3.6016948"
- sodipodi:ry="5.5084743"
- sodipodi:start="0"
- sodipodi:end="4.332745"
- d="m 20.694915,28.508474 a 3.6016948,5.5084743 0 0 1 -3.147124,5.464426 3.6016948,5.5084743 0 0 1 -3.941523,-4.08509 3.6016948,5.5084743 0 0 1 2.1522,-6.495588 l 1.334752,5.116252 z" /><use
- id="use12005"
- style="fill:#ffffff;stroke:#ffffff;fill-opacity:1"
- xlink:href="#CommunicationLink"
- x="0"
- y="0"
- width="100%"
- height="100%"
- transform="matrix(-0.52556122,0,0,0.57327377,73.752319,3.3411719)" /><use
- id="use12047"
- style="fill:none;stroke:#ffffff"
- xlink:href="#Connector"
- x="0"
- y="0"
- width="100%"
- height="100%"
- transform="matrix(1.7438377,0,0,1.8645613,-79.21155,-91.630241)" /><use
- id="use13420"
- style="fill:#ffffff;stroke:#000000"
- xlink:href="#MagneticTape"
- x="0"
- y="0"
- width="100%"
- height="100%"
- transform="matrix(0.05946552,0,0,0.06476213,27.854011,23.265534)" /></svg> \ No newline at end of file
+ id="switch5194"
+ transform="matrix(1.3307804,0,0,1.3314313,-62.924861,-27.94579)"><g
+ i:extraneous="self"
+ id="g5196"><g
+ id="g5198"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"
+ transform="matrix(1.44,0,0,1.44,-70.444,-60.28)"><linearGradient
+ id="SVGID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="4.0481"
+ y1="287.94919"
+ x2="320.4859"
+ y2="-15.4029"
+ gradientTransform="matrix(1,0.00546456,-0.00546456,1,-2.0192,-3.0212)"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5201" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5203" /></linearGradient><g
+ id="g5207"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="-11.0561"
+ y1="273.63409"
+ x2="354.8013"
+ y2="-51.979"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5210" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5212" /></linearGradient><path
+ class="st5"
+ d="m 168.2,162.4 -1.2,-3.5 c 7.9,-2.6 13.3,-9.6 13.3,-17.3 v -40.5 c 0,-10.2 -9.1,-18.4 -20.2,-18.4 -11.1,0 -20.2,8.3 -20.2,18.4 v 40.5 c 0,7.7 5.3,14.6 13.2,17.3 l -1.2,3.5 c -9.4,-3.2 -15.7,-11.5 -15.7,-20.8 v -40.5 c 0,-12.2 10.7,-22.1 23.9,-22.1 13.2,0 23.9,9.9 23.9,22.1 v 40.5 c 0,9.3 -6.4,17.6 -15.8,20.8 z"
+ id="path5214"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" /></g><g
+ id="g5216"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="3.6219001"
+ y1="290.12631"
+ x2="369.4794"
+ y2="-35.486801"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5219" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5221" /></linearGradient><path
+ class="st6"
+ d="m 160,172.9 c -18.3,0 -33.1,-12.2 -33.1,-27.3 h 3.7 c 0,13 13.2,23.6 29.5,23.6 16.3,0 29.5,-10.6 29.5,-23.6 h 3.7 c -0.2,15.1 -15,27.3 -33.3,27.3 z"
+ id="path5223"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" /></g><g
+ id="g5225"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="19.325199"
+ y1="307.77039"
+ x2="385.18259"
+ y2="-17.8428"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5228" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5230" /></linearGradient><rect
+ x="158.2"
+ y="178.5"
+ class="st7"
+ width="3.7"
+ height="8"
+ id="rect5232"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5234"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_5_"
+ gradientUnits="userSpaceOnUse"
+ x1="-22.1502"
+ y1="261.16879"
+ x2="343.70721"
+ y2="-64.444397"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5237" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5239" /></linearGradient><rect
+ x="138.10001"
+ y="110.3"
+ class="st8"
+ width="14.3"
+ height="3.7"
+ id="rect5241"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5243"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_6_"
+ gradientUnits="userSpaceOnUse"
+ x1="-27.6269"
+ y1="255.0152"
+ x2="338.23059"
+ y2="-70.5979"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5246" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5248" /></linearGradient><rect
+ x="138.10001"
+ y="99.300003"
+ class="st9"
+ width="14.3"
+ height="3.7"
+ id="rect5250"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5252"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="-16.6164"
+ y1="267.3866"
+ x2="349.241"
+ y2="-58.226601"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5255" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5257" /></linearGradient><rect
+ x="138.10001"
+ y="121.4"
+ class="st10"
+ width="14.3"
+ height="3.7"
+ id="rect5259"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5261"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_8_"
+ gradientUnits="userSpaceOnUse"
+ x1="-11.1393"
+ y1="273.54059"
+ x2="354.71811"
+ y2="-52.072498"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5264" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5266" /></linearGradient><rect
+ x="138.10001"
+ y="132.5"
+ class="st11"
+ width="14.3"
+ height="3.7"
+ id="rect5268"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5270"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_9_"
+ gradientUnits="userSpaceOnUse"
+ x1="-9.1322002"
+ y1="275.7959"
+ x2="356.72531"
+ y2="-49.817299"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5273" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5275" /></linearGradient><rect
+ x="167.60001"
+ y="110.3"
+ class="st12"
+ width="14.3"
+ height="3.7"
+ id="rect5277"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5279"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_10_"
+ gradientUnits="userSpaceOnUse"
+ x1="-14.6088"
+ y1="269.6423"
+ x2="351.2486"
+ y2="-55.970798"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5282" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5284" /></linearGradient><rect
+ x="167.60001"
+ y="99.300003"
+ class="st13"
+ width="14.3"
+ height="3.7"
+ id="rect5286"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5288"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_11_"
+ gradientUnits="userSpaceOnUse"
+ x1="-3.5984001"
+ y1="282.01361"
+ x2="362.25909"
+ y2="-43.599499"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5291" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5293" /></linearGradient><rect
+ x="167.60001"
+ y="121.4"
+ class="st14"
+ width="14.3"
+ height="3.7"
+ id="rect5295"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5297"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_12_"
+ gradientUnits="userSpaceOnUse"
+ x1="1.8788"
+ y1="288.16769"
+ x2="367.73621"
+ y2="-37.445499"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5300" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5302" /></linearGradient><rect
+ x="167.60001"
+ y="132.5"
+ class="st15"
+ width="14.3"
+ height="3.7"
+ id="rect5304"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" /></g><g
+ id="g5306"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"><linearGradient
+ id="SVGID_13_"
+ gradientUnits="userSpaceOnUse"
+ x1="24.376101"
+ y1="313.44559"
+ x2="390.23361"
+ y2="-12.1676"><stop
+ offset="0"
+ style="stop-color:#00ADDC"
+ id="stop5309" /><stop
+ offset="1"
+ style="stop-color:#6BFBFF"
+ id="stop5311" /></linearGradient><path
+ class="st16"
+ d="m 182.1,195 h -3.7 c 0,-4.6 -2.3,-5.4 -8.8,-5.4 h -19.2 c -6.5,0 -8.8,0.8 -8.8,5.4 h -3.7 c 0,-9.1 7.8,-9.1 12.5,-9.1 h 19.2 c 4.7,0 12.5,0 12.5,9.1 z"
+ id="path5313"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" /></g></g></g></switch></svg> \ No newline at end of file