content/hifi-content/dave/walk-tools/walkTools/walkToolsEEGDisplay.js
2022-02-13 22:49:05 +01:00

80 lines
No EOL
2.3 KiB
JavaScript

//
// walkToolsEEGDisplay.js
// version 0.1
//
// Created by David Wooldridge, Summer 2015
// Copyright © 2015 - 2016 David Wooldridge.
//
// Reads and displays EEG data from MindFlex / Arduino / Processing
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
WalkToolsEEGDisplay = function() {
var that = {};
// web window
var _innerWidth = Window.innerWidth;
var _innerHeight = Window.innerHeight;
const DISPLAY_WIDTH = 688;
const DISPLAY_HEIGHT = 350;
const MARGIN_TOP = 0;
var url = Script.resolvePath('../html/walkToolsEEGDisplay.html');
var webView = new WebWindow('walkToolsEEGDisplay', url, DISPLAY_WIDTH, DISPLAY_HEIGHT, false); // 965 for full range
webView.setPosition((_innerWidth / 2) - (DISPLAY_WIDTH / 2), MARGIN_TOP);
webView.setVisible(true);
const SMOOTHING = 3;
var _alphaValues = [];
var _betaValues = [];
for (i = 0 ; i <= SMOOTHING ; i++) {
_alphaValues.push(0);
_betaValues.push(0);
}
webView.eventBridge.webEventReceived.connect(function(data) {
data = JSON.parse(data);
if (data.type === "action") {
switch (data.action) {
case "walkToolsEEGRawData":
// check for NaN nastyness
for (value in data.values) {
if (isNaN(data.values[value])) {
break;
}
}
_alphaValues.push(data.values[5]);
_alphaValues.shift();
_betaValues.push(data.values[8]);
_betaValues.shift();
var alphaAverage = 0;
var betaAverage = 0;
for (i = 0 ; i < SMOOTHING ; i++) {
alphaAverage += _alphaValues[i];
betaAverage += _betaValues[i];
}
alphaAverage /= SMOOTHING;
betaAverage /= SMOOTHING;
print('alpha val is '+ alphaAverage + ' and beta val is '+betaAverage+ '. Input data was '+data.values[5]+' and '+data.values[8] + ' _alphaValues: '+_alphaValues);
}
}
});
that.setVisible = function(visible) {
webView.setVisible(visible);
if (visible) {
Window.setFocus();
//webView.raise();
}
}
return that;
};
walkToolsEEGDisplay = WalkToolsEEGDisplay();