update
Took 32 minutes
This commit is contained in:
parent
03dd0e0fb6
commit
016f4bc3fe
@ -7,6 +7,7 @@
|
|||||||
cursor: none !important;
|
cursor: none !important;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-right: 2%;
|
margin-right: 2%;
|
||||||
|
transition: 0.2s all;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ h1 {
|
|||||||
font-size: 1.74em;
|
font-size: 1.74em;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-bottom: 2%;
|
margin-bottom: 2%;
|
||||||
color: white;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -100,13 +100,22 @@ h1 {
|
|||||||
#overlay #bottom #menuBtn {
|
#overlay #bottom #menuBtn {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 10%;
|
width: 10%;
|
||||||
background-color: blue;
|
background-color: #21212d;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: 0 8px 0 0;
|
border-radius: 0 12px 0 0;
|
||||||
color: white;
|
color: white;
|
||||||
float: left;
|
float: left;
|
||||||
|
transition: all 0.4s;
|
||||||
|
}
|
||||||
|
#menuBtn:hover {
|
||||||
|
background-color: #313147 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menuBtn:disabled {
|
||||||
|
background-color: #777 !important;
|
||||||
|
color: #C1C1C1 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ import {WebSocketPayload} from "./WebSocketPayload";
|
|||||||
import {WebSocketEvent} from "./WebSocketEvent";
|
import {WebSocketEvent} from "./WebSocketEvent";
|
||||||
import {iTender} from "./iTender";
|
import {iTender} from "./iTender";
|
||||||
import {Settings} from "./Settings";
|
import {Settings} from "./Settings";
|
||||||
|
import Container from "./database/Container";
|
||||||
|
|
||||||
export class WebSocketHandler {
|
export class WebSocketHandler {
|
||||||
private static _ws: WebSocket;
|
private static _ws: WebSocket;
|
||||||
@ -40,4 +41,11 @@ export class WebSocketHandler {
|
|||||||
WebSocketHandler.send(payload).then(resolve);
|
WebSocketHandler.send(payload).then(resolve);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static sendContainers() {
|
||||||
|
return new Promise(async resolve => {
|
||||||
|
let payload = new WebSocketPayload(WebSocketEvent.CONTAINERS, false, ( await Container.find() ));
|
||||||
|
WebSocketHandler.send(payload).then(resolve);
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
@ -71,12 +71,20 @@ export class iTender {
|
|||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
for (let c of (await Container.find({enabled: true}))) {
|
for (let c of (await Container.find({enabled: true}))) {
|
||||||
try {
|
try {
|
||||||
|
if( !c.sensorFilledMax || c.sensorFilledMin )
|
||||||
|
{
|
||||||
|
c.enabled = false;
|
||||||
|
await c.save();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
let rand = Math.random() * 5;
|
let rand = Math.random() * 5;
|
||||||
if (c.sensorType == SensorType.ULTRASOUND) {
|
if (c.sensorType == SensorType.ULTRASOUND) {
|
||||||
let sensor = new HCSR04(c.sensorPin1, c.sensorPin2);
|
let sensor = new HCSR04(c.sensorPin1, c.sensorPin2);
|
||||||
|
|
||||||
c.rawData = sensor.distance();
|
c.rawData = sensor.distance();
|
||||||
c.rawData = rand;
|
c.rawData = rand;
|
||||||
|
|
||||||
c.filled = c.rawData * c.sensorFilledMin / 100;
|
c.filled = c.rawData * c.sensorFilledMin / 100;
|
||||||
|
|
||||||
} else if (c.sensorType == SensorType.LOADCELL) {
|
} else if (c.sensorType == SensorType.LOADCELL) {
|
||||||
@ -90,6 +98,7 @@ export class iTender {
|
|||||||
c.filled = -1;
|
c.filled = -1;
|
||||||
c.rawData = 0;
|
c.rawData = 0;
|
||||||
}
|
}
|
||||||
|
console.log(c);
|
||||||
await c.save();
|
await c.save();
|
||||||
}
|
}
|
||||||
log("Containers measured!");
|
log("Containers measured!");
|
||||||
|
@ -23,6 +23,7 @@ router.ws('/', async (ws, req, next) => {
|
|||||||
WebSocketHandler.ws = ws;
|
WebSocketHandler.ws = ws;
|
||||||
|
|
||||||
await WebSocketHandler.sendRunningConfig();
|
await WebSocketHandler.sendRunningConfig();
|
||||||
|
await WebSocketHandler.sendContainers();
|
||||||
await WebSocketHandler.sendStatus();
|
await WebSocketHandler.sendStatus();
|
||||||
|
|
||||||
async function sendWhenReady() {
|
async function sendWhenReady() {
|
||||||
@ -64,20 +65,28 @@ router.ws('/', async (ws, req, next) => {
|
|||||||
}
|
}
|
||||||
case WebSocketEvent.CONTAINERS: {
|
case WebSocketEvent.CONTAINERS: {
|
||||||
let data = msg.data as { pumpPin: number; sensorType: SensorType; sensor1: number; sensor2: number; volume: number; }[];
|
let data = msg.data as { pumpPin: number; sensorType: SensorType; sensor1: number; sensor2: number; volume: number; }[];
|
||||||
await Container.remove({});
|
await Container.deleteMany({});
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
for (let c of data) {
|
for (let c of data) {
|
||||||
let container = new Container();
|
let container = new Container();
|
||||||
container.slot = i;
|
container.slot = i;
|
||||||
container.volume = c.volume;
|
container.volume = c.volume;
|
||||||
|
container.pumpPin = c.pumpPin;
|
||||||
container.sensorType = c.sensorType;
|
container.sensorType = c.sensorType;
|
||||||
container.sensorPin1 = c.sensor1;
|
container.sensorPin1 = c.sensor1;
|
||||||
container.sensorPin2 = c.sensor2;
|
container.sensorPin2 = c.sensor2;
|
||||||
container.enabled = true;
|
container.enabled = true;
|
||||||
container.autoDisabled = true;
|
container.autoDisabled = true;
|
||||||
|
await container.save();
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case WebSocketEvent.CONFIG: {
|
||||||
|
// ToDo
|
||||||
|
// Danach setup modus aus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -3,6 +3,10 @@ import {IDrink} from "../database/IDrink";
|
|||||||
import {Modal} from "./Modal";
|
import {Modal} from "./Modal";
|
||||||
import {ButtonType} from "./ButtonType";
|
import {ButtonType} from "./ButtonType";
|
||||||
import {Pane} from "./Pane";
|
import {Pane} from "./Pane";
|
||||||
|
import {IContainer} from "../database/IContainer";
|
||||||
|
import {Setup} from "./Setup";
|
||||||
|
import * as Events from "events";
|
||||||
|
import {SensorType} from "../SensorType";
|
||||||
|
|
||||||
export class WebHandler {
|
export class WebHandler {
|
||||||
private static containers = [];
|
private static containers = [];
|
||||||
@ -58,6 +62,37 @@ ${ingredients}`*/ //todo
|
|||||||
|
|
||||||
|
|
||||||
public static onContainerUpdate(payload: WebSocketPayload) {
|
public static onContainerUpdate(payload: WebSocketPayload) {
|
||||||
|
let containerDiv = document.getElementById("setupContainers") as HTMLDivElement;
|
||||||
|
containerDiv.innerHTML = "";
|
||||||
|
|
||||||
|
let containers = payload.data as IContainer[];
|
||||||
|
for (let c of containers) {
|
||||||
|
Setup.addSetupContainer();
|
||||||
|
}
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
let list = containerDiv.getElementsByTagName("div");
|
||||||
|
for (let c of containers) {
|
||||||
|
let current = list[i] as HTMLDivElement;
|
||||||
|
let selects = current.getElementsByTagName("select");
|
||||||
|
|
||||||
|
(selects[0] as HTMLSelectElement).value = c.pumpPin.toString();
|
||||||
|
let type;
|
||||||
|
if( c.sensorType == SensorType.NONE )
|
||||||
|
type = "-1";
|
||||||
|
else if( c.sensorType == SensorType.ULTRASOUND )
|
||||||
|
type = "0";
|
||||||
|
else
|
||||||
|
type = "1";
|
||||||
|
(selects[1] as HTMLSelectElement).value = type;
|
||||||
|
(selects[2] as HTMLSelectElement).value = c.sensorPin1.toString();
|
||||||
|
(selects[3] as HTMLSelectElement).value = c.sensorPin2.toString();
|
||||||
|
(selects[4] as HTMLSelectElement).value = c.volume.toString();
|
||||||
|
let event = new Event('change', { bubbles: true });
|
||||||
|
selects[1].dispatchEvent( event );
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,8 @@ block setup
|
|||||||
div#setupContainers
|
div#setupContainers
|
||||||
|
|
||||||
|
|
||||||
button.btn.btn-success#setup_saveBtn(style="grid-row: span 1; grid-column: span 2; border-radius: 15px; font-size: 1.2em;") Speichern
|
button.btn.btn-danger#setup_cancelBtn(style="grid-row: span 1; grid-column: span 1; border-radius: 15px; font-size: 1.2em;" onclick="window.location.reload()") Abbrechen
|
||||||
|
button.btn.btn-success#setup_saveBtn(style="grid-row: span 1; grid-column: span 1; border-radius: 15px; font-size: 1.2em;") Speichern
|
||||||
|
|
||||||
block menu
|
block menu
|
||||||
// Menu
|
// Menu
|
||||||
|
Loading…
x
Reference in New Issue
Block a user