diff --git a/breath_plot.html b/breath_plot.html index 84dd9902c424ea23aadaa4a9148798471d24178b..893ce319f877947e54af2872e8fc10f5c2ad712b 100644 --- a/breath_plot.html +++ b/breath_plot.html @@ -185,7 +185,7 @@ an interactive or static analysis of a respiration. It's primary purpose is <span class="input-group-text" for="samples_to_plot">Number of Samples (~10s per 15000 samples):</span> </div> <input type="text" class="form-control" id="samples_to_plot" aria-describedby="samples_to_plot"> - </div> + </div> <div> <label for="livetoggle">Plot Live:</label> <label class="switch"> @@ -1414,7 +1414,7 @@ $( document ).ready(function() { else DSERVER_URL = "http://localhost"; - + // CONTROL PANEL INIT START $("#control-slot button").click(function() { var lh = $("#dserverurl").val(); @@ -1427,12 +1427,19 @@ $( document ).ready(function() { $("#control-start").click(function(event) { // Send a command to a connected device via serial port console.log("Sending PIRCS..."); + //Note: PIRCS uses specific units, + // which are designed to provide the right + // amount of precision without using + // floating point numbers. + // Often this means multiplying the + // common medical units by 10 to be the + // PIRCS units. var dict = { M: $("#control-mode").val(), - B: $("#control-rr").val(), + B: $("#control-rr").val()*10, I: $("#control-ie").val(), - P: $("#control-pinsp").val(), - E: $("#control-peep").val() + P: $("#control-pinsp").val()*10, + E: $("#control-peep").val()*10, } for (var k in dict){ @@ -1441,14 +1448,14 @@ $( document ).ready(function() { type: 'GET', url: 'http://localhost:5000/api/pircs/', dataType: 'json', - data: { com: "C", par: k, int: "T", mod: 0, val: dict[k] } + data: { com: "C", par: k, int: "T", mod: "A", val: dict[k] } }).done(function(result) { console.log("result: " + JSON.stringify(result)); }).fail(function(xhr, ajaxOptions, thrownError) { console.log("Error! " + xhr.status); console.log(thrownError); }) - + } }); @@ -1483,9 +1490,9 @@ $( document ).ready(function() { console.log("Couldn't open control panel!"); }); }); - - + + // CONTROL PANEL INIT END diff --git a/node_modules/.bin/detect-libc b/node_modules/.bin/detect-libc deleted file mode 100644 index 4509242c08048389976a9cffb0ce953e8db29716..0000000000000000000000000000000000000000 --- a/node_modules/.bin/detect-libc +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../detect-libc/bin/detect-libc.js" "$@" - ret=$? -else - node "$basedir/../detect-libc/bin/detect-libc.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/detect-libc b/node_modules/.bin/detect-libc new file mode 120000 index 0000000000000000000000000000000000000000..b4c4b767414a7d0f63ba613d14bdbde5f38f4a75 --- /dev/null +++ b/node_modules/.bin/detect-libc @@ -0,0 +1 @@ +../detect-libc/bin/detect-libc.js \ No newline at end of file diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime deleted file mode 100644 index 91e5e16a66055a1401acf400ed105c5f86bba148..0000000000000000000000000000000000000000 --- a/node_modules/.bin/mime +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../mime/cli.js" "$@" - ret=$? -else - node "$basedir/../mime/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 120000 index 0000000000000000000000000000000000000000..fbb7ee0eed8d1dd0fe3b5a9d6ff41d1c4f044675 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1 @@ +../mime/cli.js \ No newline at end of file diff --git a/node_modules/.bin/prebuild-install b/node_modules/.bin/prebuild-install deleted file mode 100644 index 510e616cf2af14382c74818a3829831cf8ca33c7..0000000000000000000000000000000000000000 --- a/node_modules/.bin/prebuild-install +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../prebuild-install/bin.js" "$@" - ret=$? -else - node "$basedir/../prebuild-install/bin.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/prebuild-install b/node_modules/.bin/prebuild-install new file mode 120000 index 0000000000000000000000000000000000000000..12a458dddebaf2269786fbe704ed7535fda71a3f --- /dev/null +++ b/node_modules/.bin/prebuild-install @@ -0,0 +1 @@ +../prebuild-install/bin.js \ No newline at end of file diff --git a/node_modules/.bin/rc b/node_modules/.bin/rc deleted file mode 100644 index 9e0162675561b0f872efbe30dfda9aec95dafec4..0000000000000000000000000000000000000000 --- a/node_modules/.bin/rc +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../rc/cli.js" "$@" - ret=$? -else - node "$basedir/../rc/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/rc b/node_modules/.bin/rc new file mode 120000 index 0000000000000000000000000000000000000000..48b3cda7431661e242957057dcaf9a119d3c5a5a --- /dev/null +++ b/node_modules/.bin/rc @@ -0,0 +1 @@ +../rc/cli.js \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver deleted file mode 100644 index 10497aa88061152a3492ce2ad5b0ff6cc5e22355..0000000000000000000000000000000000000000 --- a/node_modules/.bin/semver +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../semver/bin/semver" "$@" - ret=$? -else - node "$basedir/../semver/bin/semver" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 120000 index 0000000000000000000000000000000000000000..317eb293d8e125968256d4819f26caf2343475c4 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1 @@ +../semver/bin/semver \ No newline at end of file diff --git a/node_modules/@serialport/bindings/build/Release/bindings.node b/node_modules/@serialport/bindings/build/Release/bindings.node old mode 100644 new mode 100755 index 6c831c28e428b51a67c8487ee59cec5df1a88783..39bf8d4022b7bcd4b02aca29aa55228e808d17c6 Binary files a/node_modules/@serialport/bindings/build/Release/bindings.node and b/node_modules/@serialport/bindings/build/Release/bindings.node differ diff --git a/node_modules/detect-libc/bin/detect-libc.js b/node_modules/detect-libc/bin/detect-libc.js old mode 100644 new mode 100755 diff --git a/node_modules/mime/cli.js b/node_modules/mime/cli.js old mode 100644 new mode 100755 diff --git a/node_modules/prebuild-install/bin.js b/node_modules/prebuild-install/bin.js old mode 100644 new mode 100755 diff --git a/node_modules/rc/cli.js b/node_modules/rc/cli.js old mode 100644 new mode 100755 diff --git a/node_modules/semver/bin/semver b/node_modules/semver/bin/semver old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json index e462cc1e01a52a86434eab15e0b7af8821fbfdf7..da32872fb7b4873f3290a324911c8a015a4a074f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -230,6 +230,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", diff --git a/server.js b/server.js index 25bf8b42416c41c72a815112c3aea22e33cd46ac..1b9378e72f4b15fc83a25b0e0923cf5a87b093eb 100644 --- a/server.js +++ b/server.js @@ -5,9 +5,13 @@ app.use(cors()); const SerialPort = require('serialport'); //https://serialport.io/docs/guide-usage const Readline = require('@serialport/parser-readline'); -const port = new SerialPort('COM4', { baudRate: 9600 }); +// const port = new SerialPort('/dev/cu.usbmodem142401', { baudRate: 19200 }); +const port = new SerialPort('/dev/cu.usbserial-01D9677E', { baudRate: 19200 }); +// const port = new SerialPort('COM4', { baudRate: 9600 }); const parser = port.pipe(new Readline());// Read the port data - + + + port.on("open", () => { console.log('serial port open'); }); @@ -21,6 +25,9 @@ parser.on('data', data =>{ console.log(data); }); + +// parser.on('data', console.log) + app.get('/', function(req, res) { res.send('Hello world'); port.write('hello world\n', (err) => { @@ -36,7 +43,7 @@ app.get('/api/set', function(req, res) { x += '{"rr":"' + req.query.rr + '"}\n'; } res.send(x); - + port.write(x, (err) => { //console.log('wrote to port ' + x); if (err) { @@ -82,11 +89,13 @@ app.get('/api/pircs', function(req, res) { res.setHeader('Access-Control-Allow-Origin', '*'); res.status(400).send(err); } else { - + res.setHeader("Content-Type", "application/json"); res.setHeader('Access-Control-Allow-Origin', '*'); res.status(200).send(x); - + console.log("About to write:"); + console.log(x); + console.log("done"); port.write(x, (err) => { if (err) { return console.log('Error on write: ', err.message); @@ -122,4 +131,4 @@ var server = app.listen(5000, function () { var host = server.address().address; var port = server.address().port; console.log("Node.js server running on port %s", port); -}) \ No newline at end of file +}) diff --git a/vent.html b/vent.html index b74eacdf717662dafe73afceac515a05648eb4f8..74cbfc06e7c74c37e78a70e7534532a4423b38cc 100644 --- a/vent.html +++ b/vent.html @@ -2,36 +2,36 @@ <div class="col-6"> <div class="control-wrapper row"> <label class="col-2" for="control-mode">Mode:</label> - <input class="col-9" type="range" id="control-mode" name="control-mode" min="0" max="2" value="0"/> + <input class="col-9" type="range" id="control-mode" name="control-mode" min="0" max="2" value="0"/> <label class="col-1" id="control-mode-val">PCV</label> </div> <div class="control-wrapper row"> <label class="col-2" for="control-rr">RR:</label> - <input class="col-9" type="range" id="control-rr" name="control-rr" min="1" max="10" value="8"/> - <label class="col-1" id="control-rr-val">8</label> + <input class="col-9" type="range" id="control-rr" name="control-rr" min="1" max="30" value="12"/> + <label class="col-1" id="control-rr-val">12</label> </div> <div class="control-wrapper row"> - <label class="col-2" for="control-ie">EI:</label> - <input class="col-9" type="range" id="control-ie" name="control-ie" min="1" max="4" step="0.1" value="3"/> - <label class="col-1" id="control-ie-val">3</label> + <label class="col-2" for="control-ie">EI (x10) :</label> + <input class="col-9" type="range" id="control-ie" name="control-ie" min="5" max="50" step="1" value="30"/> + <label class="col-1" id="control-ie-val">30</label> </div> <div class="control-wrapper row"> - <label class="col-2" for="control-pinsp">Pinsp:</label> - <input class="col-9" type="range" id="control-pinsp" name="control-pinsp" min="10" max="50" value="35"/> + <label class="col-2" for="control-pinsp">Pinsp (cmH20):</label> + <input class="col-9" type="range" id="control-pinsp" name="control-pinsp" min="10" max="50" value="35"/> <label class="col-1" id="control-pinsp-val">35</label> </div> <div class="control-wrapper row"> <label class="col-2" for="control-vinsp">Vinsp:</label> - <input class="col-9" type="range" id="control-vinsp" name="control-vinsp" min="200" max="800" step="50" value="500"/> + <input class="col-9" type="range" id="control-vinsp" name="control-vinsp" min="200" max="800" step="20" value="500"/> <label class="col-1" id="control-vinsp-val">500</label> </div> <div class="control-wrapper row"> - <label class="col-2" for="control-peep">PEEP:</label> - <input class="col-9" type="range" id="control-peep" name="control-peep" min="0" max="15" value="5"/> + <label class="col-2" for="control-peep">PEEP (cmH20):</label> + <input class="col-9" type="range" id="control-peep" name="control-peep" min="0" max="15" value="5"/> <label class="col-1" id="control-peep-val">5</label> </div> - - + + <button id="control-start" type="button" class="btn btn-primary">START</button> </div> @@ -43,4 +43,4 @@ <b>Log:</b> some log info </div> </div> -</div> \ No newline at end of file +</div>