From 9e8a1464b351e7da69b66eea244eaaa84a4d47f6 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:22:06 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/ui/cordova/www/js/index.js | 82 +++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 js/ui/cordova/www/js/index.js diff --git a/js/ui/cordova/www/js/index.js b/js/ui/cordova/www/js/index.js new file mode 100644 index 0000000..868519d --- /dev/null +++ b/js/ui/cordova/www/js/index.js @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +var app = { + // Application Constructor + initialize: function() { + this.bindEvents(); + }, + // Bind Event Listeners + // + // Bind any events that are required on startup. Common events are: + // 'load', 'deviceready', 'offline', and 'online'. + bindEvents: function() { + document.addEventListener('deviceready', this.onDeviceReady, false); + }, + // deviceready Event Handler + // + // The scope of 'this' is the event. In order to call the 'receivedEvent' + // function, we must explicitly call 'app.receivedEvent(...);' + onDeviceReady: function() { + app.receivedEvent('deviceready'); + }, + // Update DOM on a Received Event + receivedEvent: function(id) { + var parentElement = document.getElementById(id); + var listeningElement = parentElement.querySelector('.listening'); + var receivedElement = parentElement.querySelector('.received'); + + listeningElement.setAttribute('style', 'display:none;'); + receivedElement.setAttribute('style', 'display:block;'); + + // Sensors + document.getElementById("myState").innerHTML="Ready. Starting..."; + + function listener1(event) { + // event.values[] + document.getElementById("mySensor1").innerHTML="Light: "+(Number(event.values[0])|0)+""; + } + sensors.addSensorListener("LIGHT", "GAME", listener1, function(error) { + if (error) document.getElementById("mySensor1").innerHTML="Could not listen to sensor LIGHT"; + else document.getElementById("mySensor1").innerHTML="LIGHT enabled."; + }); + + function listener2(event) { + // event.values[] + document.getElementById("mySensor2").innerHTML="Sensor 2: "+(event.values.map(function (v) { + return Number(v)|0}).join(','))+""; + } + sensors.addSensorListener("MAGNETIC_FIELD", "GAME", listener2, function(error) { + if (error) document.getElementById("mySensor2").innerHTML="Could not listen to sensor 2"; + else document.getElementById("mySensor2").innerHTML="Sensor 2 enabled."; + }); + + document.getElementById("myState").innerHTML="Ready. Started "+jamConfig.version+""; + + var i=0; + setInterval(function () { + document.getElementById("myState").innerHTML="Ready. "+jamConfig.version+" Checkpoint "+i+"."; + i++; + },1000); + + console.log('Received Event: ' + id); + + } +}; + +app.initialize();