Warning, /education/gcompris/src/activities/analog_electricity/components/Switch1.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - Switch1.qml 0002 * 0003 * SPDX-FileCopyrightText: 2020 Aiswarya Kaitheri Kandoth <aiswaryakk29@gmail.com> 0004 * 0005 * Authors: 0006 * Bruno Coudoin <bruno.coudoin@gcompris.net> (GTK+ version) 0007 * Aiswarya Kaitheri Kandoth <aiswaryakk29@gmail.com> (Qt Quick port) 0008 * 0009 * SPDX-License-Identifier: GPL-3.0-or-later 0010 */ 0011 import QtQuick 2.12 0012 import GCompris 1.0 0013 import "../analog_electricity.js" as Activity 0014 0015 ElectricalComponent { 0016 id: switch1 // A resistor 0017 terminalSize: 0.2 0018 noOfConnectionPoints: 2 0019 information: qsTr("Switch can connect or disconnect the conducting path in an electrical circuit.") 0020 source: Activity.url + "switch_off.svg" 0021 0022 property double componentVoltage: 0 0023 property double current: 0 0024 property bool switchOn: false 0025 property alias connectionPoints: connectionPoints 0026 property var connectionPointPosX: [0.1, 0.9] 0027 property string componentName: "Switch1" 0028 property var externalNetlistIndex: [0, 0] 0029 property var netlistModel: 0030 [ 0031 "r", 0032 [ 0033 ], 0034 { 0035 "name": componentName, 0036 "r": "0", 0037 "_json_": 0 0038 }, 0039 [ 0040 0, 0041 0 0042 ] 0043 ] 0044 0045 Repeater { 0046 id: connectionPoints 0047 model: 2 0048 delegate: connectionPoint 0049 Component { 0050 id: connectionPoint 0051 TerminalPoint { 0052 posX: connectionPointPosX[index] 0053 posY: 0.75 0054 } 0055 } 0056 } 0057 0058 MouseArea { 0059 id: clickArea 0060 height: parent.height * 0.5 0061 width: parent.width * 0.25 0062 anchors.horizontalCenter: parent.horizontalCenter 0063 anchors.top: parent.top 0064 onClicked: { 0065 if(switch1.source == Activity.url + "switch_off.svg") { 0066 switch1.source = Activity.url + "switch_on.svg"; 0067 switchOn = true; 0068 } else { 0069 switch1.source = Activity.url + "switch_off.svg"; 0070 switchOn = false; 0071 } 0072 Activity.restartTimer(); 0073 } 0074 } 0075 0076 function checkConnections() { 0077 terminalConnected = 0; 0078 for(var i = 0; i < noOfConnectionPoints; i++) { 0079 if(connectionPoints.itemAt(i).wires.length > 0) 0080 terminalConnected += 1; 0081 } 0082 } 0083 0084 function updateValues() { 0085 return; 0086 } 0087 0088 function initConnections() { 0089 var connectionIndex = Activity.connectionCount; 0090 switch1.externalNetlistIndex[0] = ++connectionIndex; 0091 connectionPoints.itemAt(0).updateNetlistIndex(connectionIndex); 0092 switch1.externalNetlistIndex[1] = ++connectionIndex; 0093 connectionPoints.itemAt(1).updateNetlistIndex(connectionIndex); 0094 Activity.connectionCount = connectionIndex; 0095 } 0096 0097 function addToNetlist() { 0098 if(switchOn) { 0099 var netlistItem = switch1.netlistModel; 0100 Activity.netlistComponents.push(switch1); 0101 Activity.vSourcesList.push(switch1); 0102 netlistItem[2].name = componentName; 0103 netlistItem[2]._json = Activity.netlist.length; 0104 netlistItem[3][0] = switch1.externalNetlistIndex[0]; 0105 netlistItem[3][1] = switch1.externalNetlistIndex[1]; 0106 Activity.netlist.push(netlistItem); 0107 } 0108 } 0109 0110 function checkComponentAnswer() { 0111 if(switch1.source == Activity.url + "switch_off.svg" && terminalConnected >= 2) { 0112 switch1.source = Activity.url + "switch_on.svg"; 0113 switchOn = true; 0114 Activity.createNetlist(); 0115 0116 if(current != 0) 0117 return "switch1In"; 0118 } else if(switch1.source == Activity.url + "switch_on.svg" && terminalConnected >= 2 && current != 0) { 0119 return "switch1In"; 0120 } else 0121 return ""; 0122 } 0123 } 0124