Took 7 hours 48 minutes
This commit is contained in:
2022-11-17 23:29:33 +01:00
parent c81713cd23
commit 03dd0e0fb6
20 changed files with 642 additions and 211 deletions

View File

@ -4,6 +4,8 @@ import {WebSocketHandler} from "../../WebSocketHandler";
import {iTender} from "../../iTender";
import {iTenderStatus} from "../../iTenderStatus";
import {WebSocketEvent} from "../../WebSocketEvent";
import Container from "../../database/Container";
import {SensorType} from "../../SensorType";
const express = require('express');
const router = express.Router();
@ -14,11 +16,13 @@ const log = debug("itender:websocket");
router.ws('/', async (ws, req, next) => {
log("Incoming websocket connection...");
if (WebSocketHandler.ws)
if (WebSocketHandler.ws) {
iTender.toggleTare(false);
WebSocketHandler.ws.close(1001);
}
WebSocketHandler.ws = ws;
await WebSocketHandler.sendRunningConfig();
await WebSocketHandler.sendStatus();
async function sendWhenReady() {
@ -50,7 +54,31 @@ router.ws('/', async (ws, req, next) => {
}
switch (msg.event) {
case WebSocketEvent.TARE: {
if (msg.data["state"] == true) {
iTender.toggleTare(true);
} else {
iTender.toggleTare(false);
}
break;
}
case WebSocketEvent.CONTAINERS: {
let data = msg.data as { pumpPin: number; sensorType: SensorType; sensor1: number; sensor2: number; volume: number; }[];
await Container.remove({});
let i = 0;
for (let c of data) {
let container = new Container();
container.slot = i;
container.volume = c.volume;
container.sensorType = c.sensorType;
container.sensorPin1 = c.sensor1;
container.sensorPin2 = c.sensor2;
container.enabled = true;
container.autoDisabled = true;
i++;
}
}
}
});