From 5820933da15b6cec0438e6b6a9ac4b9a68c05251 Mon Sep 17 00:00:00 2001 From: grey Date: Thu, 6 Mar 2025 18:52:49 +0100 Subject: [PATCH] inital commit --- index.html | 47 ++++ nxtRender.js | 341 ++++++++++++++++++++++++++++++ res/images/base_1.jpg | Bin 0 -> 21332 bytes res/images/base_2.jpg | Bin 0 -> 21551 bytes res/images/buttons/Alternate1.png | Bin 0 -> 919 bytes res/images/buttons/Alternate2.png | Bin 0 -> 915 bytes res/images/buttons/Off.png | Bin 0 -> 4381 bytes res/images/buttons/On.png | Bin 0 -> 887 bytes res/images/licht_blau.jpg | Bin 0 -> 23073 bytes res/images/licht_gelb.jpg | Bin 0 -> 23629 bytes res/images/licht_gruen.jpg | Bin 0 -> 23650 bytes res/images/licht_rot.jpg | Bin 0 -> 22877 bytes res/images/licht_summer.jpg | Bin 0 -> 22479 bytes res/images/licht_weiss.jpg | Bin 0 -> 21017 bytes res/images/module_blue.jpg | Bin 0 -> 21932 bytes res/images/module_green.jpg | Bin 0 -> 21273 bytes res/images/module_red.jpg | Bin 0 -> 22813 bytes res/images/module_sounder.jpg | Bin 0 -> 2676 bytes res/images/module_white.jpg | Bin 0 -> 20341 bytes res/images/module_yellow.jpg | Bin 0 -> 20190 bytes res/images/no.png | Bin 0 -> 973 bytes res/images/top.jpg | Bin 0 -> 19586 bytes res/style.css | 72 +++++++ script.js | 76 +++++++ scriptV2.js | 90 ++++++++ v2.html | 112 ++++++++++ 26 files changed, 738 insertions(+) create mode 100644 index.html create mode 100644 nxtRender.js create mode 100644 res/images/base_1.jpg create mode 100644 res/images/base_2.jpg create mode 100644 res/images/buttons/Alternate1.png create mode 100644 res/images/buttons/Alternate2.png create mode 100644 res/images/buttons/Off.png create mode 100644 res/images/buttons/On.png create mode 100644 res/images/licht_blau.jpg create mode 100644 res/images/licht_gelb.jpg create mode 100644 res/images/licht_gruen.jpg create mode 100644 res/images/licht_rot.jpg create mode 100644 res/images/licht_summer.jpg create mode 100644 res/images/licht_weiss.jpg create mode 100644 res/images/module_blue.jpg create mode 100644 res/images/module_green.jpg create mode 100644 res/images/module_red.jpg create mode 100644 res/images/module_sounder.jpg create mode 100644 res/images/module_white.jpg create mode 100644 res/images/module_yellow.jpg create mode 100644 res/images/no.png create mode 100644 res/images/top.jpg create mode 100644 res/style.css create mode 100644 script.js create mode 100644 scriptV2.js create mode 100644 v2.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..6866c00 --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + Werma Signal Controler + + + +

Werma Light Control

+ This is a small web interface to control the lights and buzzer of a Werma signal tower using the 640.840.00 connection module. It assumes that: Ring 1 is green, Ring 2 is yellow, Ring 3 is red, Ring 4 is buzzer. Ring 5 is assumed to be unconnected +
+

Buzzer

+

+ +
+ +
+

+
+

Lights

+ Auto applies changes + Ring 1 - Red:
+ Ring 2 - Yellow:
+ Ring 3 - Green:
+
+

+ 0 - Off
+ 1 - On
+ 2 - Pulse
+ 3 - Pulse (alternate) +

+
+

Connection control

+

+
+ +
+ + + + + \ No newline at end of file diff --git a/nxtRender.js b/nxtRender.js new file mode 100644 index 0000000..8e94560 --- /dev/null +++ b/nxtRender.js @@ -0,0 +1,341 @@ +let lampContainer = document.getElementById("leuchte"); +let fillContainer = document.getElementById("fill"); +let configInput = document.getElementById("config"); +let configLoadError = document.getElementById("config_error"); +let configOutput = document.getElementById("config_out"); +let ctrlPane = document.getElementById("ctrlPane"); +let serialErrorState = document.getElementById("serialState"); + +const warn = document.getElementById("configWarn"); + +// Inputs +let input_setup_top = document.getElementById("setup_top"); + +// Elements +const topElement = document.getElementById("module_top"); + +const config_ring1 = document.getElementById("ring1Confg"); +const config_ring2 = document.getElementById("ring2Confg"); +const config_ring3 = document.getElementById("ring3Confg"); +const config_ring4 = document.getElementById("ring4Confg"); +const config_ring5 = document.getElementById("ring5Confg"); + +const config_ring_list = [config_ring1, config_ring2, config_ring3, config_ring4, config_ring5]; + +// Serial port +let port; +const usbVendorId = 0x0403; + +// URLs + +const urls = { + rings: { + red: "res/images/licht_rot.jpg", + green: "res/images/licht_gruen.jpg", + blue: "res/images/licht_blau.jpg", + yellow: "res/images/licht_gelb.jpg", + white: "res/images/licht_weiss.jpg", + empty: "", + }, + extras: { + top: { + normal: "res/images/top.jpg", + buzzer: "res/images/licht_summer.jpg" + } + }, + selector: { + rings: { + red: "res/images/module_red.jpg", + green: "res/images/module_green.jpg", + blue: "res/images/module_blue.jpg", + yellow: "res/images/module_yellow.jpg", + white: "res/images/module_white.jpg", + empty: "res/images/no.png", + }, + extras: { + top: { + normal: "res/images/no.png", + buzzer: "res/images/module_sounder.jpg" + } + } + }, + ctrls: { + off: "res/images/buttons/Off.png", + on: "res/images/buttons/On.png", + alternate1: "res/images/buttons/Alternate1.png", + alternate2: "res/images/buttons/Alternate2.png" + } +} + +// Attach event listeners +input_setup_top.addEventListener("change", (event) => { + myConfig.extras.top = event.target.value; + applyConfig(); +}); + +let myConfig = { + rings: { + 0: "green", + 1: "yellow", + 2: "red", + 3: "empty", + 4: "empty", + }, + extras: { + top: "buzzer" + }, + states: { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0 + } +} + +function validateConfig() { + // Check if there is a "hole" (empty) in the rings + // We want to detect ELEMENT EMPTY ELEMENT + // If the stack is "openended", thats fine + // Iterate over keys + let wasEmpty = false; + for (let i = 0; i < Object.keys(myConfig.rings).length; i++) { + console.log("Checking ring ", i); + isNowEmpty = myConfig.rings[i] === "empty"; + if (wasEmpty && !isNowEmpty) { + warn.innerText = "Invalid config: Empty ring in the middle of the stack!"; + return false; + } + console.log("Was empty: ", wasEmpty, " is empty: ", isNowEmpty); + wasEmpty = myConfig.rings[i] === "empty"; + + } + + let amountOfPopulatedRings = 0; + for (let i = 0; i < Object.keys(myConfig.rings).length; i++) { + if (myConfig.rings[i] !== "empty") { + amountOfPopulatedRings++; + } + } + if(amountOfPopulatedRings === 0) { + warn.innerText = "Invalid config: No rings selected!"; + return false; + } + + if(amountOfPopulatedRings == 5 && myConfig.extras.top === "buzzer") { + warn.innerText = "Invalid config: Buzzer selected with all rings!"; + return false; + } + + warn.innerText = ""; + return true; +} + +function applyConfig() { + validateConfig(); + // Remove state from output + let configCopy = JSON.parse(JSON.stringify(myConfig)); + delete configCopy.states; + configOutput.innerText = JSON.stringify(configCopy); + topElement.src = urls.extras.top[myConfig.extras.top]; + + // Update radio buttons + for (let i = config_ring_list.length-1; i >= 0; i--) { + let currElm = config_ring_list[i]; + for (let j = currElm.children.length-1; j >= 0; j--) { + const child = currElm.children[j]; + if (child.type === "radio") { + if (child.value === myConfig.rings[i]) { + child.checked = true; + } + } + } + } + + // Populate lamp tower + // Iterate over rings keys + for (let i = Object.keys(myConfig.rings).length - 1; i >= 0; i--) { + const ring = myConfig.rings[i]; + let ringElm = document.getElementById("ring" + (i + 1)); + if (!ringElm) { + ringElm = document.createElement("img"); + ringElm.id = "ring" + (i + 1); + fillContainer.appendChild(ringElm); + } else { + ringElm.src = urls.rings[ring]; + } + + if(myConfig.states[i] == 0) { + ringElm.classList.remove("is-lit"); + ringElm.classList.remove("is-alternating-1"); + ringElm.classList.remove("is-alternating-2"); + } else if(myConfig.states[i] == 2) { + ringElm.classList.add("is-alternating-1"); + ringElm.classList.remove("is-alternating-2"); + ringElm.classList.remove("is-lit"); + }else{ + ringElm.classList.add("is-lit"); + ringElm.classList.remove("is-alternating-1"); + ringElm.classList.remove("is-alternating-2"); + } + } + setTimeout(() => { + // Add divs for the controll elements in the same height as the rings + // But only show for the visible rings + for (let i = 0; i < Object.keys(myConfig.rings).length; i++) { + // Get top and bottom y position of the ring from html element + + const ring = myConfig.rings[i]; + let ringElm = document.getElementById("ring" + (i + 1)); + if (ring === "empty") { + continue; + } + console.log("Ring ", i, " is ", ring); + // output coords + console.log("Ring ", i, " coords: ", ringElm.getBoundingClientRect()); + console.log(ringElm) + let ctrlElm = document.getElementById("ctrl" + (i + 1)); + if (!ctrlElm) { + ctrlElm = document.createElement("div"); + ctrlElm.id = "ctrl" + (i + 1); + ctrlElm.classList.add("ctrl"); + ctrlPane.appendChild(ctrlElm); + } + // Set position by top and bottom of the ring (ignore left and right) + ctrlElm.style.position = "absolute"; + ctrlElm.style.top = ringElm.getBoundingClientRect().top + "px"; + ctrlElm.style.bottom = ringElm.getBoundingClientRect().bottom + "px"; + ctrlElm.style.width = "250px"; + + // Add buttons for the modes (off, on, alternate1, alternate2) + let actionList = ["off", "on", "alternate1", "alternate2"]; + for (let j = 0; j < actionList.length; j++) { + let action = actionList[j]; + let actionElm = document.getElementById("action" + (i + 1) + action); + if (!actionElm) { + actionElm = document.createElement("button"); + actionElm.id = "action" + (i + 1) + action; + // actionElm.innerText = action; + actionElm.style.backgroundImage = `url(${urls.ctrls[action]})`; + actionElm.style.backgroundSize = "contain"; + actionElm.style.backgroundRepeat = "no-repeat"; + actionElm.classList.add("ctrl-action"); + actionElm.addEventListener("click", () => { + writeAction(i, action); + }); + ctrlElm.appendChild(actionElm); + } + } + + + + + // ctrlElm.style.left = "0px"; + // ctrlElm.style.right = "0px"; + } +}, 200); + +} + +function writeAction(ring, state){ + actionToState = { + "off": 0, + "on": 1, + "alternate1": 2, + "alternate2": 3 + } + myConfig.states[ring] = actionToState[state]; + applyConfig(); + serial_send(); +} + +function loadConfig() { + try { + let config = JSON.parse(configInput.value); + // Merge configs, as states is not part of the input + config.states = myConfig.states; + myConfig = config; + applyConfig(); + } catch (error) { + console.error("Error loading config: ", error); + configLoadError.innerText = "Error loading config: " + error; + } finally { + configLoadError.innerText = "Config loaded!"; + } + + input_setup_top.value = myConfig.extras.top; + +} + +function serial_check_env() { + if (!navigator.serial) { + console.error("Serial not supported!"); + serialErrorState.innerText = "Serial not supported in this browser! Try using something chromium based!"; + return false; + } + return true; +} + +async function serial_connect() { + if (!serial_check_env()) { + return; + } + navigator.serial.requestPort({ filters: [{ usbVendorId }] }).then((serialPort) => { + serialPort.open({ baudRate: 9600 }); + port = serialPort; + serialErrorState.innerText = "Connected to serial port!"; + }).catch((error) => { + console.error("Error connecting to serial port: ", error); + serialErrorState.innerText = "Error connecting to serial port: " + error; + }); +} + +async function serial_send() { + if(port && port.writable) { + let data = `WR${myConfig.states[0]}${myConfig.states[1]}${myConfig.states[2]}${myConfig.states[3]}${myConfig.states[4]}\r`; + const encoder = new TextEncoder(); + const writer = port.writable.getWriter(); + await writer.write(encoder.encode(data)); + writer.releaseLock(); + } +} + +// // Populate config section +// // From urls->selector->rings +// // Show as radio buttons +for (let i = config_ring_list.length-1; i >= 0; i--) { + let currElm = config_ring_list[i]; + for (const key in urls.selector.rings) { + if (urls.selector.rings.hasOwnProperty(key)) { + const url = urls.selector.rings[key]; + let radio = document.createElement("input"); + radio.type = "radio"; + radio.name = "ring" + (i + 1); + radio.value = key; + radio.id = "ring" + (i + 1) + key; + radio.addEventListener("change", (event) => { + myConfig.rings[i] = event.target.value; + applyConfig(); + }); + currElm.appendChild(radio); + + let img = document.createElement("img"); + img.src = url; + img.addEventListener("click", () => { + radio.checked = true; + myConfig.rings[i] = key; + applyConfig(); + } + ); + currElm.appendChild(img); + } + } +} + + + +applyConfig(); +setTimeout(() => { + applyConfig(); +} +, 200); diff --git a/res/images/base_1.jpg b/res/images/base_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c062ebd293e56f459e6b9e503132b99fbf22f935 GIT binary patch literal 21332 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 literal 0 HcmV?d00001 diff --git a/res/images/base_2.jpg b/res/images/base_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..689e5e1a978cc5b95ef25be6513d676a26e824f7 GIT binary patch literal 21551 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 literal 0 HcmV?d00001 diff --git a/res/images/buttons/Alternate1.png b/res/images/buttons/Alternate1.png new file mode 100644 index 0000000000000000000000000000000000000000..bc97435d8881928c08b8336e952d89b51dd1a858 GIT binary patch literal 919 zcmeAS@N?(olHy`uVBq!ia0vp^UqP6I4M=uu+?)!eI14-?iy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c?47?^cDT^vIy7~kG8^l}aqaJX10RKTox_y4J& zU5u;KvyzopoZN58UT6IFvC)U_NaM}yCn_WrT(1ZyXLSgg9+|UG`rX_6k}?OQUZh0sdWo{bpzw3YZ_1avpmx=XP@pNTQ zcUzGM4hP;_{94%Io<6vPXZgeU*tqk|^(U8+6l1S{yqhX4Qo literal 0 HcmV?d00001 diff --git a/res/images/buttons/Alternate2.png b/res/images/buttons/Alternate2.png new file mode 100644 index 0000000000000000000000000000000000000000..8842c06c578796c0f4c2b318de7ae6df995b57f5 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^UqP6I4M=uu+?)!eI14-?iy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c?47??FYT^vIy7~kG8%yJ48aJX3Mc!Dix*Z--J zyBJrCzn-BaAoR70Z%^8-^QjNSH>aiXPxxr&(6vI*?TUbMR)=Mc`JLPQjVsu)*Up~l z%WJr(O(M{_2PP|MdZa@t$z>=C%e2W`@2%(AU%qEf`~Ku$lKkW@^zY_od5!{&M;~v3 zLus&v!>{`Kwp!+X^Y$G2bGHFI$Ll;k9t7JFY# f;V@EoeCBjl7kTq*ec}UP9%Arx^>bP0l+XkKbF)f` literal 0 HcmV?d00001 diff --git a/res/images/buttons/Off.png b/res/images/buttons/Off.png new file mode 100644 index 0000000000000000000000000000000000000000..3aea529a7c4dfea5958db1f33ec9211d5534686c GIT binary patch literal 4381 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 literal 0 HcmV?d00001 diff --git a/res/images/buttons/On.png b/res/images/buttons/On.png new file mode 100644 index 0000000000000000000000000000000000000000..84f4d73e1de7b2daf655cda70cae4a8bb0280cad GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^UqP6I4M=uu+?)!eI14-?iy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c?47?^oHT^vIy7~kI5n91xQz z-G;@RlRRe%WmfR(-K_ahU~Qb<(9_Qt5&epB$$$(6$2ss%qZngP2Jhe`~KIpe;-sX8$4k&NL+Fz?*2~OdBtoMwY#g! pH`6%<0WFtQI2_~*Po+QECI0fhyfR^KB`}{bc)I$ztaD0e0sxlZHI)DW literal 0 HcmV?d00001 diff --git a/res/images/licht_blau.jpg b/res/images/licht_blau.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36a6e122791a607ce2f5f481d86f32dbc40d5da4 GIT binary patch literal 23073 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 RRnn)woq)|v*j@4De*l)^84&;g literal 0 HcmV?d00001 diff --git a/res/images/licht_gelb.jpg b/res/images/licht_gelb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77b5e884f372bd5644248258abe021a47fdffe54 GIT binary patch literal 23629 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 literal 0 HcmV?d00001 diff --git a/res/images/licht_gruen.jpg b/res/images/licht_gruen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c801c463cca4fa8c8a114847ad327a63ed8852c3 GIT binary patch literal 23650 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 literal 0 HcmV?d00001 diff --git a/res/images/licht_rot.jpg b/res/images/licht_rot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b89c5868f93af0d2fd245ac2dad43acb904f940d GIT binary patch literal 22877 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 literal 0 HcmV?d00001 diff --git a/res/images/licht_summer.jpg b/res/images/licht_summer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3acf2f442e27300b9416a1229badde23d0f0884c GIT binary patch literal 22479 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 MJT&3kQuO!#1LI8ENHY5>Jflv}EQW0OMWm*w@ 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 vJpat}z?vW1?v6jtCAR@1otxC6ehA#aZWJQgn literal 0 HcmV?d00001 diff --git a/res/images/module_blue.jpg b/res/images/module_blue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b45ec6e8e49108558a54ebaac9287b0802dbee9 GIT binary patch literal 21932 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 AJOBUy literal 0 HcmV?d00001 diff --git a/res/images/module_green.jpg b/res/images/module_green.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c41d6ba710a8226055f7a6d393f7d24af42ca105 GIT binary patch literal 21273 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 literal 0 HcmV?d00001 diff --git a/res/images/module_sounder.jpg b/res/images/module_sounder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..700390294afcfc95715e079ff01d54c9405bcd76 GIT binary patch literal 2676 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 literal 0 HcmV?d00001 diff --git a/res/images/module_yellow.jpg b/res/images/module_yellow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ecc982e29714db49b37751bd32acba828fecbbeb GIT binary patch literal 20190 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 z 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 literal 0 HcmV?d00001 diff --git a/res/images/top.jpg b/res/images/top.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46163b8f96826c86d6a753b58207cf55ba7e151e GIT binary patch literal 19586 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 Su4UDycXi { + lightState.red = event.target.value; + sendLightData(); +}); + +light2Inp.addEventListener("change", (event) => { + lightState.yellow = event.target.value; + sendLightData(); +}); + +light3Inp.addEventListener("change", (event) => { + lightState.green = event.target.value; + sendLightData(); +}); + +async function connectToLight() { + // usbVendorId: 0x0403, usbProductId: 0x6015 + const usbVendorId = 0x0403; + port = await navigator.serial.requestPort({ filters: [{ usbVendorId }] }) + await port.open({ baudRate: 9600 /* pick your baud rate */ }); +} + +function setBuzz(value) { + lightState.buzzer = value; + sendLightData(); +} + +async function sendLightData() { + // WR12345 1: green, 2: yellow, 3: red, 4: buzzer, 5: empty (alsways 0) + let data = `WR${lightState.green}${lightState.yellow}${lightState.red}${lightState.buzzer}0\r`; + console.log("Sending data: ", data); + const encoder = new TextEncoder(); + const writer = port.writable.getWriter(); + await writer.write(encoder.encode(data)); + writer.releaseLock(); + readData(); +} + +async function readData() { + console.log("Reading data"); + while (port.readable) { + const reader = port.readable.getReader(); + try { + while (true) { + const { value, done } = await reader.read(); + if (done) { + // |reader| has been canceled. + break; + } + // Do something with |value|… + // Convert value to string + const decoder = new TextDecoder(); + console.log(decoder.decode(value)); + } + } catch (error) { + // Handle |error|… + } finally { + reader.releaseLock(); + } + } + console.log("Done reading"); +} diff --git a/scriptV2.js b/scriptV2.js new file mode 100644 index 0000000..a9e1934 --- /dev/null +++ b/scriptV2.js @@ -0,0 +1,90 @@ +// Connect to serial port with 9600 baudrate +// everything in the browser + +lightState = { + ring1: 0, + ring2: 0, + ring3: 0, + ring4: 0, + ring5: 0 + }; + + let light1Inp = document.getElementById("light1"); + let light2Inp = document.getElementById("light2"); + let light3Inp = document.getElementById("light3"); + let light4Inp = document.getElementById("light4"); + let light5Inp = document.getElementById("light5"); + + light1Inp.addEventListener("change", (event) => { + lightState.ring1 = event.target.value; + sendLightData(); + }); + + light2Inp.addEventListener("change", (event) => { + lightState.ring2 = event.target.value; + sendLightData(); + }); + + light3Inp.addEventListener("change", (event) => { + lightState.ring3 = event.target.value; + sendLightData(); + }); + + light4Inp.addEventListener("change", (event) => { + lightState.ring4 = event.target.value; + sendLightData(); + }); + + light5Inp.addEventListener("change", (event) => { + lightState.ring5 = event.target.value; + sendLightData(); + }); + + async function connectToLight() { + // usbVendorId: 0x0403, usbProductId: 0x6015 + const usbVendorId = 0x0403; + port = await navigator.serial.requestPort({ filters: [{ usbVendorId }] }) + await port.open({ baudRate: 9600 }); + } + + function setBuzz(value) { + lightState.buzzer = value; + sendLightData(); + } + + async function sendLightData() { + // WR12345 1: green, 2: yellow, 3: red, 4: buzzer, 5: empty (alsways 0) + let data = `WR${lightState.ring1}${lightState.ring2}${lightState.ring3}${lightState.ring4}${lightState.ring5}\r`; + console.log("Sending data: ", data); + const encoder = new TextEncoder(); + const writer = port.writable.getWriter(); + await writer.write(encoder.encode(data)); + writer.releaseLock(); + readData(); + } + + async function readData() { + console.log("Reading data"); + while (port.readable) { + const reader = port.readable.getReader(); + try { + while (true) { + const { value, done } = await reader.read(); + if (done) { + // |reader| has been canceled. + break; + } + // Do something with |value|… + // Convert value to string + const decoder = new TextDecoder(); + console.log(decoder.decode(value)); + } + } catch (error) { + // Handle |error|… + } finally { + reader.releaseLock(); + } + } + console.log("Done reading"); + } + \ No newline at end of file diff --git a/v2.html b/v2.html new file mode 100644 index 0000000..4142614 --- /dev/null +++ b/v2.html @@ -0,0 +1,112 @@ + + + + + + Werma Signal Controller + + + +

Werma Light Control

+ This is a small web interface which allows you to controll a Werma signal tower using the
640.840.00 connection module. + You can configure the web interface to match your tower's configuration. The default configuration is: Ring 1 is green, Ring 2 is yellow, Ring 3 is red, Ring 4 is buzzer. Ring 5 is assumed to be unconnected.
+ All "product photos" are the property of Werma, I did not take them myself. If you are Werma and want me to take down the images, reach out to me via the contact mail in the legal notes on my main domain. + +
Currently unsupported features
+
    +
  • Buzzers (somewhat, you cannot currently controll them)
  • +
  • Persistant configuration ("startup settings")
  • +
  • Any bidirectional communication (getting SW version, etc.)
  • +
+ + + +
+
+

Preview

+ +
+ +
+ +
+ + +
+
+ +
+

Control

+
+ +
+ + +
+
+
+ +
+
+

Serial

+ + + +
+
+

Setup

+ +
+ Load config from string + + +
+ +
+
+
+ Export current config + +
+
+
+				
+
+

Configure light

+ + + +
+
+ +
Ring 5
+
+ +
+
Ring 4
+
+ +
+
Ring 3
+
+ +
+
Ring 2
+
+ +
+
Ring 1
+
+ +
+
+ +
+
+
+ + + \ No newline at end of file