aboutsummaryrefslogtreecommitdiffstats
path: root/python/gui/static/js/odr-predistortion.js
diff options
context:
space:
mode:
Diffstat (limited to 'python/gui/static/js/odr-predistortion.js')
-rw-r--r--python/gui/static/js/odr-predistortion.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/python/gui/static/js/odr-predistortion.js b/python/gui/static/js/odr-predistortion.js
new file mode 100644
index 0000000..7a93b2b
--- /dev/null
+++ b/python/gui/static/js/odr-predistortion.js
@@ -0,0 +1,99 @@
+// Copyright (C) 2018
+// Matthias P. Braendli, matthias.braendli@mpb.li
+//
+// http://www.opendigitalradio.org
+//
+// This file is part of ODR-DabMod.
+//
+// ODR-DabMod is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// ODR-DabMod is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with ODR-DabMod. If not, see <http://www.gnu.org/licenses/>.
+
+function calibraterefresh() {
+ doApiRequestGET("/api/calibrate", function(data) {
+ var text = "Captured TX signal and feedback." +
+ " TX median: " + data['tx_median'] +
+ " RX median: " + data['rx_median'] +
+ " with relative timestamp offset " +
+ (data['tx_ts'] - data['rx_ts']) +
+ " and measured offset " + data['coarse_offset'] +
+ ". Correlation: " + data['correlation'];
+ $('#calibrationresults').text(text);
+ });
+}
+
+$(function(){
+ $('#calibraterefreshbtn').click(calibraterefresh);
+ $('#refreshframesbtn').click(function() {
+ var d = new Date();
+ var n = d.getTime();
+ $('#txframeimg').src = "dpd/txframe.png?cachebreak=" + n;
+ $('#rxframeimg').src = "dpd/rxframe.png?cachebreak=" + n;
+ });
+
+ $('#calibratebtn').click(function() {
+ doApiRequestPOST("/api/calibrate", {}, function(data) {
+ console.log("calibrate succeeded: " + JSON.stringify(data));
+
+ $('#calibrationresults').text("Processing...");
+
+ setTimeout(function() {
+ calibraterefresh();
+ }, 3000);
+ });
+ });
+
+ $('#capturebutton').click(function() {
+ doApiRequestPOST("/api/trigger_capture", {}, function(data) {
+ console.log("trigger_capture succeeded: " + JSON.stringify(data));
+ });
+ });
+
+ $('#dpdstatusbutton').click(function() {
+ doApiRequestGET("/api/dpd_status", function(data) {
+ console.log("dpd_status succeeded: " + JSON.stringify(data));
+ $('#histogram').text(data.histogram);
+ $('#capturestatus').text(data.capture.status);
+ $('#capturelength').text(data.capture.length);
+ $('#tx_median').text(data.capture.tx_median);
+ $('#rx_median').text(data.capture.rx_median);
+ });
+
+ $.ajax({
+ type: "GET",
+ url: "/api/dpd_capture_pointcloud",
+
+ error: function(data) {
+ if (data.status == 500) {
+ var errorWindow = window.open("", "_self");
+ errorWindow.document.write(data.responseText);
+ }
+ else {
+ $.gritter.add({ title: 'API',
+ text: "AJAX failed: " + data.statusText,
+ image: '/fonts/warning.png',
+ sticky: true,
+ });
+ }
+ },
+ success: function(data) {
+ $('#dpd_pointcloud').value(data)
+ }
+ })
+ });
+});
+
+
+// ToolTip init
+$(function(){
+ $('[data-toggle="tooltip"]').tooltip();
+});