ESP8266 part of the f105-motor-demo project (see f105-motor-demo_stm32)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
f105-motor-demo_esp/html_src/js-src/page_waveform.js

138 lines
2.6 KiB

var page_waveform = (function () {
var wfm = {};
var zoomResetFn;
8 years ago
function buildChart(obj, xlabel, ylabel) {
var points = [];
obj.samples.forEach(function (a, i) {
points.push({x: i, y: a});
});
// Build the chart
var plugins = [];
var mql = window.matchMedia('screen and (min-width: 544px)');
var isPhone = !mql.matches;
if (!isPhone) {
// larger than phone
plugins.push(
Chartist.plugins.ctAxisTitle({
axisX: {
axisTitle: xlabel,
offset: {
x: 0,
y: 55
}
},
axisY: {
axisTitle: ylabel,
flipText: true,
offset: {
x: 0,
y: 15
}
}
})
);
}
// zoom
plugins.push(Chartist.plugins.zoom({
resetOnRightMouseBtn:true,
onZoom: function(chart, reset) {
zoomResetFn = reset;
}
}));
8 years ago
var peak = obj.stats.peak;
new Chartist.Line('#chart', {
series: [
{
name: 'a',
8 years ago
data: points
},
]
}, {
showPoint: false,
// showArea: true,
fullWidth: true,
chartPadding: (isPhone ? {right: 20, bottom: 5, left: 0} : {right: 25, bottom: 30, left: 25}),
series: {
'a': {
lineSmooth: Chartist.Interpolation.monotoneCubic()
}
},
axisX: {
type: Chartist.AutoScaleAxis,
onlyInteger: true
},
axisY: {
type: Chartist.AutoScaleAxis,
//onlyInteger: true
8 years ago
high: peak,
low: -peak,
},
plugins: plugins
});
}
function onRxData(resp, status) {
if (status != 200) {
// bad response
alert("Request failed.");
return;
}
8 years ago
var j = JSON.parse(resp);
if (!j.success) {
alert("Sampling failed.");
return;
}
8 years ago
j.stats.peak = Math.max(-j.stats.min, j.stats.max);
buildChart(j, 'Sample number', 'Current - mA');
$('#stat-count').html(j.stats.count);
$('#stat-f-s').html(j.stats.freq);
$('#stat-i-peak').html(j.stats.peak);
$('#stat-i-rms').html(j.stats.rms);
$('.stats').removeClass('invis');
}
wfm.init = function() {
8 years ago
// var resp = {
// "samples": [1878, 1883, 1887, 1897, 1906, 1915, 1926, 1940, 1955, 1970, 1982, 1996, 2012, 2026, 2038, 2049],
// "success": true
// };
8 years ago
function loadBtnClick() {
var samples = $('#count').val();
var freq = $('#freq').val();
//http://192.168.1.13
$().get('/api/raw.json?n='+samples+'&fs='+freq, onRxData, true, true);
}
8 years ago
$('#load').on('click', loadBtnClick);
$('#count,#freq').on('keyup', function(e) {
if (e.which == 13) {
8 years ago
loadBtnClick();
}
});
8 years ago
// chart zooming
$('#chart').on('contextmenu', function(e) {
zoomResetFn && zoomResetFn();
zoomResetFn = null;
e.preventDefault();
return false;
});
};
return wfm;
})();