Untitled
unknown
plain_text
2 years ago
3.7 kB
5
Indexable
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width">
<script src="file:///android_asset/app.js"></script>
<script src="file:///android_asset/Libs/JQuery.js"></script>
<script src="file:///android_asset/Libs/Flot.js"></script>
</head>
<script>
var sampleCount = 100;
var updateInterval = 10;
var sensorData = null;
var plot;
function OnStart() {
app.SetOrientation("Landscape", DrawPage);
sns = app.CreateSensor("Accelerometer", "Fast");
sns.Start();
var lay = app.CreateLayout("linear", "VCenter,FillXY");
var btn = app.CreateButton("Connect", 0.4, 0.15);
btn.SetOnTouch(btn_OnTouch);
lay.AddChild(btn);
app.AddLayout(lay);
var bt = app.CreateBluetoothSerial();
bt.SetOnConnect(bt_OnConnect);
bt.SetOnReceive(bt_OnReceive);
bt.SetSplitMode("End", "\n");
}
function DrawPage() {
var options = {
grid: { color: "#656565", borderWidth: 1 },
series: { shadowSize: 0 },
yaxis: { min: -20, max: 20 },
xaxis: { max: 0, min: -sampleCount, show: false }
};
plot = $.plot("#placeholder", [], options);
Update();
}
function Update() {
var vals = sns.GetValues();
var series = GetSeries(sampleCount, [vals[1], vals[2], vals[3]]);
plot.setData(series);
plot.draw();
setTimeout(Update, updateInterval);
}
function GetSeries(points, funcs) {
if (typeof flt_dataStore == "undefined") flt_dataStore = new Array(funcs.length);
var series = [];
for (var i = 0; i < funcs.length; i++) {
if (!flt_dataStore[i]) flt_dataStore[i] = [];
if (flt_dataStore[i].length > sampleCount)
flt_dataStore[i] = flt_dataStore[i].slice(1);
var val = funcs[i];
flt_dataStore[i].push(val);
var res = [];
var len = flt_dataStore[i].length;
for (var j = 0; j < len; j++)
res.push([j - len, flt_dataStore[i][j]]);
series[i] = res;
}
return series;
}
function btn_OnTouch() {
bt.Connect("ESP32Test");
}
function bt_OnConnect(ok) {
if (ok) bt.Write("digitalWrite(LED1,1)\n");
else app.ShowPopup("Failed to connect!");
}
function bt_OnReceive(data) {
// Assuming received data is a single numeric value.
var receivedValue = parseFloat(data);
if (!isNaN(receivedValue)) {
// Update the graph with the received value.
var series = GetSeries(sampleCount, [receivedValue, 0, 0]);
plot.setData(series);
plot.draw();
}
}
</script>
<style>
body {
font: 1.5em Helvetica, Arial, sans-serif;
vertical-align: middle;
background: #383838;
}
.plot-container {
box-sizing: border-box;
width: 90%;
height: 90%;
padding: 1% 1% 1% 1%;
margin: 2% auto 2% auto;
border: 1px solid #444444;
border-radius: 6px;
background: #101010;
}
.plot-placeholder {
width: 100%;
height: 100%;
font-size: 14;
line-height: 1.2em;
}
.flot-tick-label {
color: #777777;
}
</style>
<body onload="app.Start()">
<div id="content">
<div class="plot-container">
<div id="placeholder" class="plot-placeholder"></div>
</div>
</div>
</body>
</html>
Editor is loading...
Leave a Comment