diff --git a/core/service.go b/core/service.go index 902a4dd..b7b0410 100644 --- a/core/service.go +++ b/core/service.go @@ -108,9 +108,7 @@ func (t *TrackingService) StartLivetracking(cols ...CollectorType) (string, erro return "RECORDING", errors.New(txt) } if t.opMode == REPLAY { - txt := "trackingservice: please stop Replay before resetting pipeline" - logrus.Warn(txt) - return "RECORDING", errors.New(txt) + t.StopAll() } if t.opMode == LIVE { txt := "trackingservice: stop tracking running stream before creating new one" diff --git a/static/scripts/refull.js b/static/scripts/refull.js index 3bcdea4..222ecb2 100644 --- a/static/scripts/refull.js +++ b/static/scripts/refull.js @@ -65,6 +65,7 @@ window.addEventListener("load", function(evt) { trackings = r.data let sel = document.getElementById("meas") sel.innerHTML = '' + r.data.sort((a,b) => new Date(b.TimeCreated).getTime() - new Date(a.TimeCreated).getTime()); r.data.forEach(tracking => { console.log(tracking) var option = document.createElement("option"); diff --git a/static/scripts/websocket.js b/static/scripts/websocket.js index 1ec5041..3a96bc6 100644 --- a/static/scripts/websocket.js +++ b/static/scripts/websocket.js @@ -1,19 +1,34 @@ const GRAPH_RES = 100; var dataSmartphone = []; +var ws; + + window.addEventListener("load", function(evt) { var output = document.getElementById("output"); var checkBoxSmartphone = document.getElementById("checkbox1"); var checkBoxUblox = document.getElementById("checkbox2"); - var ws; - ws = new WebSocket("ws://localhost:3011/ws"); - ws.onopen = function(evt) { - print("OPEN"); - } - ws.onclose = function(evt) { + + const wsOnCloseF = function (evt) { ws = null; print2("CLOSE"); + var intervalId; + intervalId = setInterval(() => { + console.log("reconnect websocket...") + if (ws !== null && ws.CONNECTING) { + return + } + if (ws !== null && ws.OPEN) { + clearInterval(intervalId) + return + } + ws = new WebSocket("ws://localhost:3011/ws"); + ws.onopen = wsOnOpenF + ws.onclose = wsOnCloseF + ws.onmessage = wsOnMessageF + ws.onerror = wsOnErrorF + }, 1000) } - ws.onmessage = function(evt) { + const wsOnMessageF = function (evt) { //print2("RESPONSE: " + evt.data); // let dat = JSON.parse(evt.data)["bmi26x gyroscope"] // let dat = JSON.parse(evt.data)["lsm6dsm gyroscope"] @@ -89,10 +104,20 @@ window.addEventListener("load", function(evt) { console.log("no TCP acc") } } - - ws.onerror = function(evt) { - print("ERROR: " + evt.data); + const wsOnOpenF = function (evt) { + print2("OPEN"); } + const wsOnErrorF = function(evt) { + console.log(evt) + print2("ERROR: " + evt); + } + + + ws = new WebSocket("ws://localhost:3011/ws"); + ws.onopen = wsOnOpenF + ws.onclose = wsOnCloseF + ws.onmessage = wsOnMessageF + ws.onerror = wsOnErrorF @@ -178,7 +203,7 @@ window.addEventListener("load", function(evt) { .then(console.log); checkBoxSmartphone.disabled = false; checkBoxUblox.disabled = false; - document.getElementById("tracking state").innerHTML = "Tracking state: PIPELINE CLOSED" + document.getElementById("tracking state").innerHTML = "Tracking state: CLOSED" //ws.close(); } return false; @@ -194,6 +219,7 @@ window.addEventListener("load", function(evt) { } trackings = r.data let sel = document.getElementById("meas") + r.data.sort((a,b) => new Date(b.TimeCreated).getTime() - new Date(a.TimeCreated).getTime()); r.data.forEach(tracking => { console.log(tracking) var option = document.createElement("option"); diff --git a/templates/index.html b/templates/index.html index 29093bb..0e96382 100644 --- a/templates/index.html +++ b/templates/index.html @@ -40,7 +40,7 @@
.