From 2a8a23d8ce653d518450f57b8420268ff7ffd1c6 Mon Sep 17 00:00:00 2001 From: Peter Akers Date: Thu, 25 Jan 2024 17:58:34 +1000 Subject: [PATCH] basic fix to the received commands --- .github/workflows/new-items.yml | 2 +- README.md | 10 +++--- css/layout.css | 8 ++--- css/throttle.css | 8 ++--- images/product-logo-ex-webthrottle.png | Bin 0 -> 25605 bytes index.html | 10 +++--- js/commandController.js | 41 +++++++++++++++++++++---- js/emulator.js | 2 +- js/exwebthrottle.js | 8 ++--- js/storageController.js | 2 +- manifest.json | 2 +- 11 files changed, 61 insertions(+), 32 deletions(-) create mode 100644 images/product-logo-ex-webthrottle.png diff --git a/.github/workflows/new-items.yml b/.github/workflows/new-items.yml index 1718730..8587d0c 100644 --- a/.github/workflows/new-items.yml +++ b/.github/workflows/new-items.yml @@ -1,4 +1,4 @@ -# This workflow is to be used for all repositories to integrate with the DCC++ EX Beta Project. +# This workflow is to be used for all repositories to integrate with the DCC-EX Beta Project. # It will add all issues and pull requests for a repository to the project, and put in the correct status. # # Ensure "REPO_LABEL" is updated with the correct label for the repo stream of work. diff --git a/README.md b/README.md index 89aa703..24c19b4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# DCC++ EX Web Throttle +# DCC-EX-WebThrottle -This is a prototype for a new DCC++ EX Throttle/Controller that can connect to the DCC++ EX Commmand Station directly through the USB port of a computer. +This is a prototype for a new DCC-EX Throttle/Controller that can connect to the DCCEX EX-CommmandStation directly through the USB port of a computer. ## What you need to setup the project @@ -25,18 +25,18 @@ NOTE: If you don't have your hardware yet or just want to play with the throttle To get started, connect your Command Station to a computer that has a USB port and have a compatible browser installed. Use a USB serial cable from your computer to the serial connector on the Arduino. Visit DCC-EX.github.io/WebThrottle-EX/ to start using the software. -Alternativly, you can download the zip file found in the releases section and extract it. Click on the "index.html" or "exwebthrotle.html" file to load the webpage. This method is only recommended if you need a specific version as it won't be auto-updated. +Alternatively, you can download the zip file found in the releases section and extract it. Click on the "index.html" or "exwebthrotle.html" file to load the webpage. This method is only recommended if you need a specific version as it won't be auto-updated. ## Operation -To use the program, you can either click on the "serial" dropodown button and select "emulator" to run in emulator mode or after making sure your hardware is properly connected, make sure "serial" is selected and click on the "Connect DCC++ EX" button. +To use the program, you can either click on the "serial" dropdown button and select "emulator" to run in emulator mode or after making sure your hardware is properly connected, make sure "serial" is selected and click on the "Connect DCC-EX" button. If the program finds a compatible device, it will popup a window showing you a selection. It may show a line at the top such as "Arduino Mega 2560 (COM3)". Your com port may vary. Click on your board to select it and then click the "connect" button. You should then be connected to the Command Station (CS) and should see the response from the CS on the web page under the buttons. Make sure your debug console is open. If it isn't, use the slider button in the lower left to open it. You can also open the DevTools window in your browser to see more developer logging. -Once you are connected, you can enter the ```` command in the "direct command" textbox to get status information from your Command Station, just enter "s" (without the quotes) and press the SEND button. You can send any DCC++ API command in this way. You should see returned in the log window with your version, type of arduino, type of motor shield, and some other information. +Once you are connected, you can enter the ```` command in the "direct command" textbox to get status information from your Command Station, just enter "s" (without the quotes) and press the SEND button. You can send any DCC++ command in this way. You should see returned in the log window with your version, type of arduino, type of motor shield, and some other information. Now you are ready to run trains! Place your loco on the track and click the power slider button to turn on power to your track. You should see lights on an Arduino Motor Board light and an indication that your loco has power. diff --git a/css/layout.css b/css/layout.css index 0eaa855..801ff27 100644 --- a/css/layout.css +++ b/css/layout.css @@ -36,7 +36,7 @@ hr{ .column-5 { float: left; width: 50%; - padding: 5px 15px; + padding: 0px 15px; } .column-6{ float: left; @@ -75,9 +75,9 @@ hr{ display: inline-block; } .throttle-heading .wt-logo{ - height: 48px; - width: 142px; - background: url(../images/WebThrottle.png); + height: 40px; + width: 200px; + background: url(../images/product-logo-ex-webthrottle.png); display: inline-block; background-size: 100%; box-shadow: 0 0 3px #989898; diff --git a/css/throttle.css b/css/throttle.css index 4f53060..bfb9bfa 100644 --- a/css/throttle.css +++ b/css/throttle.css @@ -95,7 +95,7 @@ label.formbuilder-file-label { } .fn-button.field-button-fn{ text-align: center; - padding: 8px; + padding: 5px; display: flex; justify-content: center; } @@ -210,7 +210,7 @@ label.formbuilder-file-label { text-align: center; } .rendered-form div.throttle-container{ - min-height: 360px; + min-height: 280px; display: flex; align-items: center; justify-content: right; @@ -425,10 +425,10 @@ label.formbuilder-file-label { box-shadow: 0px 0px 1px 1px #e2e2e2; } .power-slider .slider{ - background-color: #00a349; + background-color: #ff0000; } input:checked + .slider { - background-color: #ff0000; + background-color: #00a349; box-shadow: 1px 1px rgba(255,255,255,0.8); } diff --git a/images/product-logo-ex-webthrottle.png b/images/product-logo-ex-webthrottle.png new file mode 100644 index 0000000000000000000000000000000000000000..5b816a3c340b132eacdb5e7da391d88f75dd0bfa GIT binary patch literal 25605 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 56b4058..3d0800f 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,7 @@ Fred Decker Matt - This file is part of the DCC++ EX Project for model railroading and more. + This file is part of the DCC-EX Project for model railroading and more. For more information, visit use at dcc-ex.com --> @@ -59,8 +59,8 @@ --> - DCC++ EX Web Throttle - + DCC-EX Web Throttle + @@ -124,7 +124,7 @@ @@ -192,7 +192,7 @@ - Power Off + Track Power is Off
diff --git a/js/commandController.js b/js/commandController.js index 881b571..a938427 100644 --- a/js/commandController.js +++ b/js/commandController.js @@ -1,4 +1,4 @@ -/* This is part of the DCC++ EX Project for model railroading and more. +/* This is part of the DCC-EX Project for model railroading and more. For licence information, please see index.html For more information, see us at dcc-ex.com. @@ -7,6 +7,8 @@ Open a serial port and create a stream to read and write data While there is data, we read the results in loop function */ +let commandString = ""; + $(document).ready(function(){ console.log("Command Controller loaded"); uiDisable(true) @@ -68,7 +70,7 @@ async function connectServer() { emulatorMode = true; // Displays dummy hardware message displayLog("\n[CONNECTION] Emulator connected") - displayLog("[RECEIVE] DCC++ EX COMMAND STATION FOR EMULATOR / EMULATOR MOTOR SHIELD: V-1.0.0 / Feb 30 2020 13:10:04") + displayLog("[RECEIVE] DCC-EX EXCOMMANDSTATION FOR EMULATOR / EMULATOR MOTOR SHIELD: V-1.0.0 / Feb 30 2020 13:10:04") uiDisable(false) return true; } @@ -82,9 +84,36 @@ async function readLoop() { const { value, done } = await reader.read(); // if (value && value.button) { // alternate check and calling a function // buttonPushed(value); + + let thisCommandString = ""; + if (value) { - displayLog('[RECEIVE] '+value); - console.log('[RECEIVE] '+value); + // displayLog('[RECEIVE] '+ value); + // console.log('[RECEIVE] '+ value); + + commandString = commandString + value; + + let start = -1; + let end = -1; + for (i=0; i') { + end = i; + break; + } + } + if ((start>=0) && (end>start)) { + thisCommandString = commandString.substring(start+1,end); + if (end>0) commandString = commandString.substring(end); + displayLog('[RECEIVE] <'+ thisCommandString +">"); + console.log('[RECEIVE] <'+ thisCommandString +">"); + } + } if (done) { console.log('[readLoop] DONE'+done.toString()); @@ -202,7 +231,7 @@ async function toggleServer(btn) { if (port || emulatorMode) { await disconnectServer(); btn.attr('aria-state','Disconnected'); - btn.html('Connect DCC++ EX'); //Connect DCC++ EX + btn.html('Connect DCC-EX'); //Connect DCC-EX return; } @@ -211,7 +240,7 @@ async function toggleServer(btn) { // Checks if the port was opened successfully if (success) { btn.attr('aria-state','Connected'); - btn.html('Disconnect DCC++ EX'); + btn.html('Disconnect DCC-EX'); } else { selectMethod.disabled = false; } diff --git a/js/emulator.js b/js/emulator.js index b9245b4..fa08028 100644 --- a/js/emulator.js +++ b/js/emulator.js @@ -1,4 +1,4 @@ -/* This is part of the DCC++ EX Project for model railroading and more. +/* This is part of the DCC-EX Project for model railroading and more. For licence information, please see index.html. For more information, see us at dcc-ex.com. diff --git a/js/exwebthrottle.js b/js/exwebthrottle.js index 6f0ec81..3409789 100644 --- a/js/exwebthrottle.js +++ b/js/exwebthrottle.js @@ -16,7 +16,7 @@ Mani Kumar Matt - This is part of the DCC++ EX Project for model railroading and more. + This is part of the DCC-EX Project for model railroading and more. For more information, see us at dcc-ex.com. */ window.cv=0; @@ -421,7 +421,7 @@ $(document).ready(function(){ $("#info-tooltip").tooltip({ content: - "

DCC++ EX Web Throttle
(WebThrottle-EX)


Version: "+version+"

Credits
Fred Decker
Mani Kumar
Matt H

", + "

DCC-EX EX-WebThrottle
(WebThrottle-EX)


Version: "+version+"

Credits
Fred Decker
Mani Kumar
Matt H

", show: { effect: "slideDown", delay: 100, @@ -500,10 +500,10 @@ $(document).ready(function(){ if (pb == true) { writeToStream("1"); - $("#power-status").html("On"); + $("#power-status").html("is On"); } else { writeToStream("0"); - $("#power-status").html("Off"); + $("#power-status").html("is Off"); } }); //////////////////////////////////// diff --git a/js/storageController.js b/js/storageController.js index 28c5cb9..77f4ae2 100644 --- a/js/storageController.js +++ b/js/storageController.js @@ -1,4 +1,4 @@ -/* This is part of the DCC++ EX Project for model railroading and more. +/* This is part of the DCC-EX Project for model railroading and more. For licence information, please see index.html. For more information, see us at dcc-ex.com. diff --git a/manifest.json b/manifest.json index cea84a8..69dc35f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "short_name": "WebThrottle-EX", - "name": "DCC++ EX Web Throttle", + "name": "DCC-EX EX-WebThrottle", "icons": [ { "src": "images/full-logo.png",