mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 11:17:08 +00:00
Do not react to events until we have at least two of them.
This is to avoid false positives when restarting the API mid-line.
This commit is contained in:
@@ -3,7 +3,7 @@ const { listen } = require('../ws/db');
|
||||
const { event } = require('../lib/db');
|
||||
|
||||
function start () {
|
||||
let prevPos = {};
|
||||
let prevPos = null;
|
||||
|
||||
listen(["realtime"], function (data) {
|
||||
if (!(data.payload && data.payload.new && data.payload.new.meta)) {
|
||||
@@ -12,37 +12,38 @@ function start () {
|
||||
}
|
||||
|
||||
const pos = data.payload.new.meta;
|
||||
// console.log("POS", pos);
|
||||
// console.log("status (C, P)", pos._sequence, pos._point, pos.lineStatus, prevPos._point, prevPos.lineStatus, pos.tstamp, prevPos.tstamp);
|
||||
if (pos.lineStatus == "online") {
|
||||
if (prevPos.lineStatus != "online") {
|
||||
// FIXME TODO Check if there are already FSP, FGSP events for this sequence
|
||||
// Tag this as FSP/FGSP
|
||||
const remarks = `SEQ ${pos._sequence}, SOL ${pos.lineName}, BSP: ${(pos.speed*3.6/1.852).toFixed(1)} kt, Water depth: ${Number(pos.waterDepth).toFixed(0)} m.`;
|
||||
const payload = {
|
||||
type: "sequence",
|
||||
sequence: pos._sequence,
|
||||
point: pos._point,
|
||||
remarks,
|
||||
labels: [ "FSP", "FGSP" ]
|
||||
|
||||
if (prevPos) {
|
||||
if (pos.lineStatus == "online") {
|
||||
if (prevPos.lineStatus != "online") {
|
||||
// FIXME TODO Check if there are already FSP, FGSP events for this sequence
|
||||
// Tag this as FSP/FGSP
|
||||
const remarks = `SEQ ${pos._sequence}, SOL ${pos.lineName}, BSP: ${(pos.speed*3.6/1.852).toFixed(1)} kt, Water depth: ${Number(pos.waterDepth).toFixed(0)} m.`;
|
||||
const payload = {
|
||||
type: "sequence",
|
||||
sequence: pos._sequence,
|
||||
point: pos._point,
|
||||
remarks,
|
||||
labels: [ "FSP", "FGSP" ]
|
||||
}
|
||||
schema2pid(pos._schema).then(projectId => event.post(projectId, payload));
|
||||
// console.log("post fsp", pos._schema);
|
||||
}
|
||||
schema2pid(pos._schema).then(projectId => event.post(projectId, payload));
|
||||
// console.log("post fsp", pos._schema);
|
||||
}
|
||||
} else {
|
||||
if (prevPos.lineStatus == "online") {
|
||||
// FIXME TODO Check if there are already LSP, LGSP events for this sequence
|
||||
// Tag this as LSP/LGSP
|
||||
const remarks = `SEQ ${prevPos._sequence}, EOL ${prevPos.lineName}, BSP: ${(prevPos.speed*3.6/1.852).toFixed(1)} kt, Water depth: ${Number(prevPos.waterDepth).toFixed(0)} m.`;
|
||||
const payload = {
|
||||
type: "sequence",
|
||||
sequence: prevPos._sequence,
|
||||
point: prevPos._point,
|
||||
remarks,
|
||||
labels: [ "LSP", "LGSP" ]
|
||||
} else {
|
||||
if (prevPos.lineStatus == "online") {
|
||||
// FIXME TODO Check if there are already LSP, LGSP events for this sequence
|
||||
// Tag this as LSP/LGSP
|
||||
const remarks = `SEQ ${prevPos._sequence}, EOL ${prevPos.lineName}, BSP: ${(prevPos.speed*3.6/1.852).toFixed(1)} kt, Water depth: ${Number(prevPos.waterDepth).toFixed(0)} m.`;
|
||||
const payload = {
|
||||
type: "sequence",
|
||||
sequence: prevPos._sequence,
|
||||
point: prevPos._point,
|
||||
remarks,
|
||||
labels: [ "LSP", "LGSP" ]
|
||||
}
|
||||
schema2pid(prevPos._schema).then(projectId => event.post(projectId, payload));
|
||||
// console.log("post lsp", prevPos._schema);
|
||||
}
|
||||
schema2pid(prevPos._schema).then(projectId => event.post(projectId, payload));
|
||||
// console.log("post lsp", prevPos._schema);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user