Took 5 hours 35 minutes
This commit is contained in:
2022-11-23 18:39:47 +01:00
parent c933b9943d
commit 7307505175
17 changed files with 290 additions and 648 deletions

View File

@ -9,7 +9,7 @@ import {SensorType} from "../../SensorType";
import {Settings} from "../../Settings";
import Ingredient from "../../database/Ingredient";
import {RequestType} from "../../RequestType";
import {IDrink} from "../../database/IDrink";
import {IJob} from "../../database/IJob";
const express = require('express');
const router = express.Router();
@ -32,7 +32,6 @@ router.ws('/', async (ws, req, next) => {
await WebSocketHandler.sendDrinks();
ws.on('message', async (raw, bool) => {
let msg = WebSocketPayload.parseFromBase64Json(raw);
// If message is null, close the socket because it could not be decompiled
@ -41,14 +40,9 @@ router.ws('/', async (ws, req, next) => {
return;
}
log(msg);
switch (msg.event) {
case WebSocketEvent.FILL : {
iTender.startFill(msg.data as { drink: IDrink, ingredients?: { id: String, amount: number }[], amount?: number });
break;
}
case WebSocketEvent.TARE: {
if (msg.data["state"] == true) {
iTender.toggleTare(true);
@ -71,7 +65,6 @@ router.ws('/', async (ws, req, next) => {
container.sensorPin1 = c.sensor1;
container.sensorPin2 = c.sensor2;
container.enabled = true;
container.autoDisabled = true;
await container.save();
i++;
}
@ -89,7 +82,7 @@ router.ws('/', async (ws, req, next) => {
ingredient = undefined;
}
container.volume = parseInt(msg.data["volume"]);
container.filled = parseInt(msg.data["filled"]);
container.content = ingredient;
await container.save();
@ -101,7 +94,7 @@ router.ws('/', async (ws, req, next) => {
case WebSocketEvent.CONFIG: {
// ToDo
console.log("New Settings:", msg.data);
// Danach setup modus aus
// Danach setup modus us
for (const [key, value] of Object.entries(msg.data)) {
Settings.set(key, value);
}
@ -138,6 +131,20 @@ router.ws('/', async (ws, req, next) => {
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, (await Ingredient.find().sort({"name": 1})));
break;
}
case RequestType.STARTFILL: {
let job: IJob | null = null;
try {
job = await iTender.onReceiveFill(msg.data["content"]);
} catch (e: any) {
console.error(e);
}
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, {success: (!!job), job: job});
break;
}
case RequestType.JOB: {
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, iTender.currentJob);
break;
}
}
break;