From 0d05b1868227a28f168b07ca0f3478001314ff6c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 22 Aug 2017 00:30:17 -0400 Subject: [PATCH 01/62] Add startFrame variable for tracking length of frames --- lib/intval/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/intval/index.js b/lib/intval/index.js index fc2d553..3cb32c9 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -5,6 +5,7 @@ const gpio = require('gpio') class Intval { constructor () { this._pin = {} + this._startFrame = 0 this._declarePins() } _declarePins () { -- 2.40.1 From 9902702f84088f0d9e919b8a07ecaf4d29169be4 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 22 Aug 2017 00:38:53 -0400 Subject: [PATCH 02/62] Caught misnamed files from original project --- scripts/{blootstrap-deps.sh => intval3-deps.sh} | 4 ++-- .../{blootstrap-install.sh => intval3-install.sh} | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) rename scripts/{blootstrap-deps.sh => intval3-deps.sh} (77%) rename scripts/{blootstrap-install.sh => intval3-install.sh} (65%) diff --git a/scripts/blootstrap-deps.sh b/scripts/intval3-deps.sh similarity index 77% rename from scripts/blootstrap-deps.sh rename to scripts/intval3-deps.sh index 90a92f3..3b1c923 100644 --- a/scripts/blootstrap-deps.sh +++ b/scripts/intval3-deps.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo "Running blootstrap install script" +echo "Running intval3 install script" apt-get update apt-get install git ufw nginx -y @@ -14,4 +14,4 @@ npm install -g pm2 echo "Installing bluetooth dependencies..." apt-get install bluetooth bluez libbluetooth-dev libudev-dev -y -echo "Finished installing blootstrap dependencies" \ No newline at end of file +echo "Finished installing intval3 dependencies" \ No newline at end of file diff --git a/scripts/blootstrap-install.sh b/scripts/intval3-install.sh similarity index 65% rename from scripts/blootstrap-install.sh rename to scripts/intval3-install.sh index 8e3258b..ae311a6 100644 --- a/scripts/blootstrap-install.sh +++ b/scripts/intval3-install.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo "Running blootstrap install script" +echo "Running intval3 install script" apt-get update apt-get install git ufw nginx -y @@ -13,6 +13,8 @@ npm install -g pm2 echo "Installing bluetooth dependencies..." apt-get install bluetooth bluez libbluetooth-dev libudev-dev -y +systemctl disable bluetooth +hciconfig hci0 up echo "Configuring ufw (firewall)..." ufw default deny incoming @@ -22,13 +24,13 @@ ufw allow http ufw allow https ufw enable -echo "Installing blootstrap project..." -wget https://github.com/mattmcw/blootstrap/archive/master.zip -unzip master.zip -d blootstrap/ +echo "Installing intval3 project..." +wget https://github.com/sixteenmillimeter/intval3/archive/master.zip +unzip master.zip -d intval3/ rm master.zip -cd blootstrap +cd intval3 npm install pm2 start process.json -echo "Finished installing blootstrap" \ No newline at end of file +echo "Finished installing intval3" \ No newline at end of file -- 2.40.1 From 77a10fa80a19a844c3ba3584d3a5958de3db629c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 22 Aug 2017 00:49:08 -0400 Subject: [PATCH 03/62] Add stubb functionality for starting and stopping motor via hbridge --- lib/intval/index.js | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 3cb32c9..57f9c82 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -9,13 +9,46 @@ class Intval { this._declarePins() } _declarePins () { - this._pin.four = gpio.export(4, { + this._pin.fwd = gpio.export(4, { direction: 'out', interval: 100, ready : () => { console.info(`Set pin 4 to OUTPUT`) } }) + this._pin.bwd = gpio.export(5, { + direction: 'out', + interval: 100, + ready : () => { + console.info(`Set pin 5 to OUTPUT`) + } + }) + } + _startFwd () { + this._pin.fwd.set(1) + this._pin.bwd.set(0) + } + _startBwd () { + this._pin.fwd.set(0) + this._pin.bwd.set(1) + } + frame (dir = true, time = 0, delay = 0) { + if (delay !== 0) { + setTimeout(function () { + if (dir) { + this._startFwd() + } else { + this._startBwd() + } + + }, delay) + } else { + if (dir) { + this._startFwd() + } else { + this._startBwd() + } + } } status () { return {} -- 2.40.1 From 524aba90d81d0938e7f1e005085e12f61d986829 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 22 Aug 2017 01:31:27 -0400 Subject: [PATCH 04/62] Install onoff for better button watching --- lib/intval/index.js | 40 +++++++++++++++++++++++++--------------- package-lock.json | 25 +++++++++++++++++++++++-- package.json | 1 + 3 files changed, 49 insertions(+), 17 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 57f9c82..05d3a19 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,6 +1,26 @@ 'use strict' -const gpio = require('gpio') +const Gpio = require('onoff') +const PINS = { + fwd : { + pin : 4, + dir : 'out' + }, + bwd : { + pin : 5, + dir : 'out' + }, + micro : { + pin : 6, + dir : 'in', + edge : 'rising' + }, + release : { + pin : 7, + dir : 'in', + edge : 'both' + } +} class Intval { constructor () { @@ -9,20 +29,10 @@ class Intval { this._declarePins() } _declarePins () { - this._pin.fwd = gpio.export(4, { - direction: 'out', - interval: 100, - ready : () => { - console.info(`Set pin 4 to OUTPUT`) - } - }) - this._pin.bwd = gpio.export(5, { - direction: 'out', - interval: 100, - ready : () => { - console.info(`Set pin 5 to OUTPUT`) - } - }) + this._pin.fwd = Gpio(4, 'out') + this._pin.bwd = Gpio(5, 'out') + this._pin.micro = Gpio(6, 'in', 'rising') + this._pin.release = Gpio(7, 'in', 'both') } _startFwd () { this._pin.fwd.set(1) diff --git a/package-lock.json b/package-lock.json index b93b75d..e401bc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,11 @@ "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" } }, + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=" + }, "bleno": { "version": "https://registry.npmjs.org/bleno/-/bleno-0.4.2.tgz", "integrity": "sha1-IesK10O850eU45L0ph4TsHOT26o=", @@ -161,6 +166,15 @@ "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" } }, + "epoll": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/epoll/-/epoll-0.1.22.tgz", + "integrity": "sha1-GrmmN8/xGiCXDIiLHKIXi2TPUpE=", + "requires": { + "bindings": "1.2.1", + "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz" + } + }, "escape-regexp-component": { "version": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" @@ -371,8 +385,7 @@ }, "nan": { "version": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "optional": true + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" }, "ncp": { "version": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", @@ -403,6 +416,14 @@ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" } }, + "onoff": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/onoff/-/onoff-1.1.5.tgz", + "integrity": "sha1-tkT9pSe4eJ60ZDwD9YIqqVclCu4=", + "requires": { + "epoll": "0.1.22" + } + }, "path-is-absolute": { "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", diff --git a/package.json b/package.json index 8b065f7..3389645 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "cron": "^1.2.1", "gpio": "^0.2.7", "node-ipc": "^9.1.0", + "onoff": "^1.1.5", "restify": "^5.2.0", "uuid": "^3.1.0", "winston": "^2.3.1" -- 2.40.1 From 90210e02f3cf1d4f9062677d15b62127b6b104c1 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 26 Aug 2017 19:06:43 -0400 Subject: [PATCH 05/62] Dump contents of the onoff to console --- lib/intval/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/intval/index.js b/lib/intval/index.js index 05d3a19..2855880 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,6 +1,7 @@ 'use strict' const Gpio = require('onoff') +console.dir(Gpio) const PINS = { fwd : { pin : 4, -- 2.40.1 From 760c6c72aba2bdd100dead82fdd1731a80eaea8e Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 26 Aug 2017 19:08:39 -0400 Subject: [PATCH 06/62] Require specifically the Gpio function --- lib/intval/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 2855880..9dbc72a 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,6 +1,6 @@ 'use strict' -const Gpio = require('onoff') +const Gpio = require('onoff').Gpio console.dir(Gpio) const PINS = { fwd : { -- 2.40.1 From 40cfda8d9012ebb0433663bf3a9c7e920407d97c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 26 Aug 2017 19:26:30 -0400 Subject: [PATCH 07/62] Remove logging. --- lib/intval/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 9dbc72a..bd96a15 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,7 +1,7 @@ 'use strict' const Gpio = require('onoff').Gpio -console.dir(Gpio) + const PINS = { fwd : { pin : 4, -- 2.40.1 From 9eac1e0193d6cc0ca5c111fb52b16565a7db515b Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 28 Aug 2017 08:49:47 -0400 Subject: [PATCH 08/62] Install with latest node.js and latest npm Create a sim library as a fallback for the on off module, for development --- index.js | 17 +- lib/intval/index.js | 17 +- lib/onoffsim/index.js | 25 ++ package-lock.json | 531 ++++++++++++++++++++---------------- package.json | 2 +- services/bluetooth/index.js | 1 + tests/index.js | 3 + 7 files changed, 360 insertions(+), 236 deletions(-) create mode 100644 lib/onoffsim/index.js create mode 100644 tests/index.js diff --git a/index.js b/index.js index f1c5f69..77d6ca8 100644 --- a/index.js +++ b/index.js @@ -1,16 +1,16 @@ 'use strict' -const ble = require('./lib/blootstrap') -const intval = require('./lib/intval') const restify = require('restify') const logger = require('winston') const fs = require('fs') -const pin = {} + +const ble = require('./lib/blootstrap') +const intval = require('./lib/intval') const PACKAGE = require('./package.json') const PORT = process.env.PORT || 6699 const APPNAME = PACKAGE.name -const INDEX = fs.readFileSync('./app/www/index.html', 'utf8') +const INDEXPATH = './app/www/index.html' let app = restify.createServer({ name: APPNAME, @@ -41,8 +41,13 @@ function rStatus (req, res, next) { } function index (req, res, next) { - res.end(INDEX) - return next() + fs.readFile(INDEXPATH, (err, data) => { + if (err) { + return next(err) + } + res.end(data) + next() + }, 'utf8') } diff --git a/lib/intval/index.js b/lib/intval/index.js index bd96a15..3b291fb 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,6 +1,13 @@ 'use strict' -const Gpio = require('onoff').Gpio +let Gpio +try { + Gpio = require('onoff').Gpio +} catch (e) { + console.warn('Failed including Gpio, using sim') + Gpio = require('../../lib/onoffsim').Gpio +} + const PINS = { fwd : { @@ -34,15 +41,23 @@ class Intval { this._pin.bwd = Gpio(5, 'out') this._pin.micro = Gpio(6, 'in', 'rising') this._pin.release = Gpio(7, 'in', 'both') + + this._pin.release.watch(this._watchRelease) } _startFwd () { this._pin.fwd.set(1) this._pin.bwd.set(0) + //start high-cpu watch } _startBwd () { this._pin.fwd.set(0) this._pin.bwd.set(1) } + _watchRelease (err, val) { + if (err) { + console.error(err); + } + } frame (dir = true, time = 0, delay = 0) { if (delay !== 0) { setTimeout(function () { diff --git a/lib/onoffsim/index.js b/lib/onoffsim/index.js new file mode 100644 index 0000000..b45bb01 --- /dev/null +++ b/lib/onoffsim/index.js @@ -0,0 +1,25 @@ +'use strict' + +const onoffsim = { + Gpio : function (no, dir = 'in', additional = 'none') { + // + return { + no : no, + dir : dir, + additional : additional, + val : null, + watchFunc : null, + set : function (val) { + console.log(`onoffsim set ${this.no} to ${val}`) + }, + get : function () { + return this.val + }, + watch : function (cb) { + this.watchFunc = cb + } + } + } +} + +module.exports = onoffsim \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e401bc6..9335397 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,11 +5,13 @@ "requires": true, "dependencies": { "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "async": { @@ -18,16 +20,18 @@ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "optional": true }, "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "tweetnacl": "0.14.5" } }, "bindings": { @@ -36,44 +40,49 @@ "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=" }, "bleno": { - "version": "https://registry.npmjs.org/bleno/-/bleno-0.4.2.tgz", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/bleno/-/bleno-0.4.2.tgz", "integrity": "sha1-IesK10O850eU45L0ph4TsHOT26o=", "requires": { - "bplist-parser": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "xpc-connection": "https://registry.npmjs.org/xpc-connection/-/xpc-connection-0.1.4.tgz" + "bplist-parser": "0.0.6", + "debug": "2.6.8", + "xpc-connection": "0.1.4" } }, "bplist-parser": { - "version": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=", "optional": true }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "optional": true, "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "balanced-match": "1.0.0", + "concat-map": "0.0.1" } }, "bunyan": { - "version": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "requires": { - "dtrace-provider": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", - "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "mv": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "safe-json-stringify": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz" + "dtrace-provider": "0.8.5", + "moment": "2.18.1", + "mv": "2.1.1", + "safe-json-stringify": "1.0.4" } }, "clone-regexp": { - "version": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", "requires": { - "is-regexp": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "is-supported-regexp-flag": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz" + "is-regexp": "1.0.0", + "is-supported-regexp-flag": "1.0.0" } }, "colors": { @@ -82,12 +91,14 @@ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "optional": true }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cron": { @@ -99,28 +110,32 @@ } }, "csv": { - "version": "https://registry.npmjs.org/csv/-/csv-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csv/-/csv-1.1.1.tgz", "integrity": "sha1-2ZUtWbH5ZKevvN2ATWgYpzGZpHc=", "requires": { - "csv-generate": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.0.0.tgz", - "csv-parse": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.1.tgz", - "csv-stringify": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.0.4.tgz", - "stream-transform": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz" + "csv-generate": "1.0.0", + "csv-parse": "1.2.1", + "csv-stringify": "1.0.4", + "stream-transform": "0.1.2" } }, "csv-generate": { - "version": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.0.0.tgz", "integrity": "sha1-vVKIaFnQySXz5R9g86vtJi+hXK8=" }, "csv-parse": { - "version": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.1.tgz", "integrity": "sha1-kZnCPySQ2YxNmrKgFnsGknSYyd8=" }, "csv-stringify": { - "version": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.0.4.tgz", "integrity": "sha1-vBi6ua1M7zGV/SV5gLWLR5xC0+U=", "requires": { - "lodash.get": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + "lodash.get": "4.4.2" } }, "cycle": { @@ -129,41 +144,47 @@ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" } }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "detect-node": { - "version": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" }, "dtrace-provider": { - "version": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", "integrity": "sha1-mOu6Ihr6xG4cOf02hY2Pk2dSS5I=", "optional": true, "requires": { - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz" + "nan": "2.6.2" } }, "easy-stack": { - "version": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz", "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=" }, "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "0.1.1" } }, "epoll": { @@ -172,19 +193,22 @@ "integrity": "sha1-GrmmN8/xGiCXDIiLHKIXi2TPUpE=", "requires": { "bindings": "1.2.1", - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz" + "nan": "2.6.2" } }, "escape-regexp-component": { - "version": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" }, "event-pubsub": { - "version": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.2.4.tgz", - "integrity": "sha1-Y0+2l/5AFNxQBHIthZQyuqISMlc=" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==" }, "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "eyes": { @@ -193,88 +217,95 @@ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "formidable": { - "version": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" }, "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" } }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "optional": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "gpio": { - "version": "https://registry.npmjs.org/gpio/-/gpio-0.2.7.tgz", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/gpio/-/gpio-0.2.7.tgz", "integrity": "sha1-vzhsiJYe/QpPag/3FnrA/zmX6rk=" }, "handle-thing": { - "version": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" }, "hpack.js": { - "version": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "obuf": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "wbuf": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz" + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" } }, "http-deceiver": { - "version": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - } + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" } }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "is-regexp": { - "version": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" }, "is-supported-regexp-flag": { - "version": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=" }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { @@ -283,82 +314,96 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-message": { - "version": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=" }, "js-queue": { - "version": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz", "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", "requires": { - "easy-stack": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz" + "easy-stack": "1.0.0" } }, "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "lodash.get": { - "version": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "yallist": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=" }, "minimalistic-assert": { - "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "optional": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" + "brace-expansion": "1.1.8" } }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "optional": true }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "optional": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" } }, "moment": { - "version": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" }, "moment-timezone": { @@ -366,198 +411,215 @@ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz", "integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=", "requires": { - "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz" + "moment": "2.18.1" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mv": { - "version": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", "optional": true, "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "ncp": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" } }, "nan": { - "version": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" }, "ncp": { - "version": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", "optional": true }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "node-ipc": { - "version": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.0.tgz", - "integrity": "sha1-rZd4NmcWX1lE6kHPBmGPHEvheSo=", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz", + "integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==", "requires": { - "event-pubsub": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.2.4.tgz", - "js-message": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", - "js-queue": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz" + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" } }, "obuf": { - "version": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=" }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1.0.2" } }, "onoff": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/onoff/-/onoff-1.1.5.tgz", - "integrity": "sha1-tkT9pSe4eJ60ZDwD9YIqqVclCu4=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/onoff/-/onoff-1.1.7.tgz", + "integrity": "sha1-kZKHlby16QL+dVG9e7JVHZunZII=", "requires": { "epoll": "0.1.22" } }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "pseudomap": { - "version": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", - "integrity": "sha1-jQSVTTZN7z78VbWgeT4eLIsebkk=" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", + "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==" }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "restify": { - "version": "https://registry.npmjs.org/restify/-/restify-5.2.0.tgz", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/restify/-/restify-5.2.0.tgz", "integrity": "sha1-9xMxAu85WKVtpC92BBURKnigGCI=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bunyan": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", - "clone-regexp": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", - "csv": "https://registry.npmjs.org/csv/-/csv-1.1.1.tgz", - "dtrace-provider": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", - "escape-regexp-component": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", - "formidable": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", - "restify-errors": "https://registry.npmjs.org/restify-errors/-/restify-errors-4.3.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "spdy": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "vasync": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - }, - "dependencies": { - "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" - } + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "clone-regexp": "1.0.0", + "csv": "1.1.1", + "dtrace-provider": "0.8.5", + "escape-regexp-component": "1.0.2", + "formidable": "1.1.1", + "http-signature": "1.2.0", + "lodash": "4.17.4", + "lru-cache": "4.1.1", + "mime": "1.3.6", + "negotiator": "0.6.1", + "once": "1.4.0", + "qs": "6.5.0", + "restify-errors": "4.3.0", + "semver": "5.4.1", + "spdy": "3.4.7", + "uuid": "3.1.0", + "vasync": "1.6.4", + "verror": "1.10.0" } }, "restify-errors": { - "version": "https://registry.npmjs.org/restify-errors/-/restify-errors-4.3.0.tgz", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-4.3.0.tgz", "integrity": "sha1-7JDzCTTX8xGRNRgd/DA+ML5gGr4=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "safe-json-stringify": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "assert-plus": "1.0.0", + "lodash": "4.17.4", + "safe-json-stringify": "1.0.4", + "verror": "1.10.0" } }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", "optional": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" + "glob": "6.0.4" } }, "safe-buffer": { - "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-json-stringify": { - "version": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", "integrity": "sha1-gaCY9Efku8P/MxKiQ1IbwGDvWRE=", "optional": true }, "select-hose": { - "version": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=" + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "spdy": { - "version": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "handle-thing": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "http-deceiver": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "select-hose": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "spdy-transport": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz" + "debug": "2.6.8", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" } }, "spdy-transport": { - "version": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "detect-node": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "hpack.js": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "obuf": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "wbuf": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz" + "debug": "2.6.8", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" } }, "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" } }, "stack-trace": { @@ -566,63 +628,73 @@ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, "stream-transform": { - "version": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", "integrity": "sha1-fY5rTgOsR4F3j4x5UXUBv7B2Kp8=" }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "safe-buffer": "5.1.1" } }, "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, "vasync": { - "version": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", "requires": { - "verror": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz" + "verror": "1.6.0" }, "dependencies": { "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz" + "extsprintf": "1.2.0" } } } }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" } }, "wbuf": { - "version": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", "requires": { - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "minimalistic-assert": "1.0.0" } }, "winston": { @@ -639,19 +711,22 @@ } }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "xpc-connection": { - "version": "https://registry.npmjs.org/xpc-connection/-/xpc-connection-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xpc-connection/-/xpc-connection-0.1.4.tgz", "integrity": "sha1-3Nf6oq7Gt6bhjMXdrQQvejTHcVY=", "optional": true, "requires": { - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz" + "nan": "2.6.2" } }, "yallist": { - "version": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } diff --git a/package.json b/package.json index 3389645..f91c06d 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Intervalometer for the Bolex", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "mocha tests" }, "repository": { "type": "git", diff --git a/services/bluetooth/index.js b/services/bluetooth/index.js index 8fbe53a..82d42a6 100644 --- a/services/bluetooth/index.js +++ b/services/bluetooth/index.js @@ -4,6 +4,7 @@ const ipc = require('node-ipc') const os = require('os') const bleno = require('bleno') const util = require('util') + const wifi = require('../../lib/wifi') const BLENO_DEVICE_NAME = process.env.BLENO_DEVICE_NAME || 'my_project' diff --git a/tests/index.js b/tests/index.js new file mode 100644 index 0000000..e09e086 --- /dev/null +++ b/tests/index.js @@ -0,0 +1,3 @@ +'use strict' + +const intval = require('../lib/intval') \ No newline at end of file -- 2.40.1 From 399b623db49959d094f66620e0546840412439b6 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 07:35:23 -0400 Subject: [PATCH 09/62] Only use a 5 gzip --- nginx.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nginx.conf b/nginx.conf index a89f37d..0d6c299 100644 --- a/nginx.conf +++ b/nginx.conf @@ -30,7 +30,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; gzip on; - gzip_comp_level 9; + gzip_comp_level 5; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; } #uncomment for static file servers @@ -40,7 +40,7 @@ server { #access_log off; #add_header Cache-Control "public"; #gzip on; - #gzip_comp_level 9; + #gzip_comp_level 5; #gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; #alias /var/node/blootstrap/static/; #} -- 2.40.1 From ef514f7b0ab1c96e14121288cb9242ee5fe60597 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 08:17:29 -0400 Subject: [PATCH 10/62] Install jq as a dep for json manipulation in bash --- scripts/intval3-deps.sh | 2 +- scripts/intval3-install.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/intval3-deps.sh b/scripts/intval3-deps.sh index 3b1c923..70475af 100644 --- a/scripts/intval3-deps.sh +++ b/scripts/intval3-deps.sh @@ -2,7 +2,7 @@ echo "Running intval3 install script" apt-get update -apt-get install git ufw nginx -y +apt-get install git ufw nginx jq -y echo "Installing node.js dependencies.." apt-get install nodejs npm -y diff --git a/scripts/intval3-install.sh b/scripts/intval3-install.sh index ae311a6..4882762 100644 --- a/scripts/intval3-install.sh +++ b/scripts/intval3-install.sh @@ -2,7 +2,7 @@ echo "Running intval3 install script" apt-get update -apt-get install git ufw nginx -y +apt-get install git ufw nginx jq -y echo "Installing node.js dependencies.." apt-get install nodejs npm -y -- 2.40.1 From acabe0e80aeddd4bd97a59163df3f723296d8c80 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 08:23:18 -0400 Subject: [PATCH 11/62] Add dev script for incorporating process env variables --- dev.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 dev.sh diff --git a/dev.sh b/dev.sh new file mode 100644 index 0000000..50f3152 --- /dev/null +++ b/dev.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +echo "Starting in dev mode" + +rm run_dev.sh +jq -r ".apps[0].env | keys[]" ./process.json | while read key ; do + echo -n "$key=\"">> run_dev.sh + echo -n "$(jq ".apps[0].env.$key" ./process.json)" >> run_dev.sh + echo -n "\" ">> run_dev.sh +done +echo -n " node services/bluetooth" >> run_dev.sh + +#cat run_dev.sh +sh run_dev.sh \ No newline at end of file -- 2.40.1 From e264dc8343be52ff9a1fc2b30212a925372862e4 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 08:23:32 -0400 Subject: [PATCH 12/62] Ignore generated .sh --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b512c09..947371b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +run_dev.sh \ No newline at end of file -- 2.40.1 From ddf89cf6aade6bab62ea8540b64f94624c93c7b8 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 08:23:52 -0400 Subject: [PATCH 13/62] Start intval logic in module --- lib/intval/index.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 3b291fb..2d1f7dc 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -33,7 +33,11 @@ const PINS = { class Intval { constructor () { this._pin = {} - this._startFrame = 0 + this._state = { + dir : true, //forward + running : false, + startFrame : 0 + } this._declarePins() } _declarePins () { @@ -53,12 +57,25 @@ class Intval { this._pin.fwd.set(0) this._pin.bwd.set(1) } - _watchRelease (err, val) { + _watchMicro (err, val) { if (err) { - console.error(err); + console.error(err) } } + _watchRelease (err, val) { + if (err) { + console.error(err) + } + } + setDir (val = true) { + if (typeof val !== 'boolean') { + return console.warn('Direction must be represented as either true or false') + } + this._state.dir = val + } frame (dir = true, time = 0, delay = 0) { + this._state.running = true + this._pin.micro.watch(this._watchMicro) if (delay !== 0) { setTimeout(function () { if (dir) { @@ -76,8 +93,14 @@ class Intval { } } } + _stop () { + this._pin.fwd.set(0) + this._pin.bwd.set(0) + this._pin.micro.unwatch() + this._state.running = false + } status () { - return {} + return this._state } } -- 2.40.1 From cf537af849897f496d0afc24e5b056158aec6148 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 22:27:37 -0400 Subject: [PATCH 14/62] Add intval3 index to process file, for pm2 --- process.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/process.json b/process.json index ca00b64..a98129b 100644 --- a/process.json +++ b/process.json @@ -12,6 +12,12 @@ "WIFI_ID" : "3fe7d9cf-7bd2-4ff0-97c5-ebe87288c2cc", "PORT" : 6699 } + }, + { + "name" : "intval3", + "script" : "./index.js", + "watch" : false, + "env" : {} } ] } \ No newline at end of file -- 2.40.1 From c87d425c57e896dc183d7c053d53ca67529da17a Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 29 Aug 2017 22:27:56 -0400 Subject: [PATCH 15/62] Add better state object structure And use in preliminary logic --- lib/intval/index.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 2d1f7dc..4ea39a4 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -35,8 +35,12 @@ class Intval { this._pin = {} this._state = { dir : true, //forward - running : false, - startFrame : 0 + frame : { + start : 0, + active : false, + val : 0, + expected : 0 + } } this._declarePins() } @@ -61,6 +65,8 @@ class Intval { if (err) { console.error(err) } + this._state.frame.val = val + //determine when to stop } _watchRelease (err, val) { if (err) { @@ -74,7 +80,8 @@ class Intval { this._state.dir = val } frame (dir = true, time = 0, delay = 0) { - this._state.running = true + this._state.frame.start = +new Date() + this._state.frame.active = true this._pin.micro.watch(this._watchMicro) if (delay !== 0) { setTimeout(function () { @@ -96,8 +103,13 @@ class Intval { _stop () { this._pin.fwd.set(0) this._pin.bwd.set(0) + + let len = (+new Date()) - this._state.frame.start + + console.log(`Frame stopped`, { ms : len }) + this._pin.micro.unwatch() - this._state.running = false + this._state.frame.active = false } status () { return this._state -- 2.40.1 From a0729ff9d9d81512df3dffebeedef3ae40e4bb46 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Wed, 30 Aug 2017 08:59:27 -0400 Subject: [PATCH 16/62] Write using template string, not object --- lib/intval/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 4ea39a4..8c7c6e1 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -72,6 +72,7 @@ class Intval { if (err) { console.error(err) } + console.log(`Release switch val: ${val}`) } setDir (val = true) { if (typeof val !== 'boolean') { @@ -106,7 +107,7 @@ class Intval { let len = (+new Date()) - this._state.frame.start - console.log(`Frame stopped`, { ms : len }) + console.log(`Frame stopped ${len}ms`) this._pin.micro.unwatch() this._state.frame.active = false -- 2.40.1 From 32625bbbde0607f30295fdb23cbadca7f787f4c8 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 13:35:39 -0400 Subject: [PATCH 17/62] Unexport buttons on uncaught exception --- lib/intval/index.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 8c7c6e1..cbf2e44 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -43,6 +43,9 @@ class Intval { } } this._declarePins() + process.on('SIGINT', () => { + this._undeclarePins() + }) } _declarePins () { this._pin.fwd = Gpio(4, 'out') @@ -52,7 +55,13 @@ class Intval { this._pin.release.watch(this._watchRelease) } - _startFwd () { + _undeclarePins () { + this._pin.fwd.unexport() + this._pin.bwd.unexport() + this._pin.micro.unexport() + this._pin.release.unexport() + } + _startFwd () { this._pin.fwd.set(1) this._pin.bwd.set(0) //start high-cpu watch -- 2.40.1 From 996e0ca81a04240d074b12aeea71f2a789ff6d35 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 14:47:33 -0400 Subject: [PATCH 18/62] Add gpio.js test file --- tests/gpio.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/gpio.js diff --git a/tests/gpio.js b/tests/gpio.js new file mode 100644 index 0000000..e87745c --- /dev/null +++ b/tests/gpio.js @@ -0,0 +1,13 @@ +'use strict' + +const Gpio = require('onoff').Gpio + +const btn = Gpio(18, 'in', 'both') + +console.log('Watching input on button 18') +btn.watch((err, val) => { + if (err) { + return console.error(err) + } + console.log(val) +}) \ No newline at end of file -- 2.40.1 From c8f9236a9dcf63a136068578821d0d72cb3355c8 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 14:51:37 -0400 Subject: [PATCH 19/62] Pin 12 not GPIO 18? --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index e87745c..e452b42 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -2,7 +2,7 @@ const Gpio = require('onoff').Gpio -const btn = Gpio(18, 'in', 'both') +const btn = Gpio(12, 'in', 'both') console.log('Watching input on button 18') btn.watch((err, val) => { -- 2.40.1 From 47abb3b8e5cb8f769ce71af9f6989114fb9ac647 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 14:54:40 -0400 Subject: [PATCH 20/62] Watch not responding to shorts, use set interval with a readSync() --- tests/gpio.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index e452b42..88d655a 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -2,12 +2,17 @@ const Gpio = require('onoff').Gpio -const btn = Gpio(12, 'in', 'both') +const btn = Gpio(18, 'in', 'both') console.log('Watching input on button 18') -btn.watch((err, val) => { + +/*btn.watch((err, val) => { if (err) { return console.error(err) } console.log(val) -}) \ No newline at end of file +})*/ + +setInterval(() => { + console.log(btn.readSync()) +}, 1000) \ No newline at end of file -- 2.40.1 From 28810e761dd0541a7bcf8c51770fcf37bbc958af Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 15:07:34 -0400 Subject: [PATCH 21/62] Try gpio05 --- tests/gpio.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 88d655a..5638932 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -2,9 +2,9 @@ const Gpio = require('onoff').Gpio -const btn = Gpio(18, 'in', 'both') +const btn = Gpio(5, 'in', 'both') -console.log('Watching input on button 18') +console.log('Watching input on GPIO 05') /*btn.watch((err, val) => { if (err) { -- 2.40.1 From d2e5c0f99812aa8bd32f9a98e0e6d285aaae104c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Sep 2017 15:09:29 -0400 Subject: [PATCH 22/62] GPIO 05 works with pulldown resistor Now try with built in watch command --- tests/gpio.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 5638932..56d4a76 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -6,13 +6,13 @@ const btn = Gpio(5, 'in', 'both') console.log('Watching input on GPIO 05') -/*btn.watch((err, val) => { +btn.watch((err, val) => { if (err) { return console.error(err) } console.log(val) -})*/ +}) -setInterval(() => { +/*setInterval(() => { console.log(btn.readSync()) -}, 1000) \ No newline at end of file +}, 1000)*/ \ No newline at end of file -- 2.40.1 From 9f308f035f58977b167004eab6c9904e1991c7d0 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 15:13:40 -0400 Subject: [PATCH 23/62] Install jsdoc-to-markdown for documentation For adding documentation to libraries --- docs.sh | 8 + lib/blootstrap/Readme.md | 0 lib/intval/Readme.md | 0 lib/onoffsim/Readme.md | 0 lib/wifi/Readme.md | 0 package-lock.json | 750 ++++++++++++++++++++++++++++++++++++++- package.json | 6 +- 7 files changed, 751 insertions(+), 13 deletions(-) create mode 100644 docs.sh create mode 100644 lib/blootstrap/Readme.md create mode 100644 lib/intval/Readme.md create mode 100644 lib/onoffsim/Readme.md create mode 100644 lib/wifi/Readme.md diff --git a/docs.sh b/docs.sh new file mode 100644 index 0000000..a4c254c --- /dev/null +++ b/docs.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +libs="./lib/*" +for l in $libs +do + echo "Generating documentation for $l" + ./node_modules/.bin/jsdoc2md $l/index.js > $l/Readme.md +done \ No newline at end of file diff --git a/lib/blootstrap/Readme.md b/lib/blootstrap/Readme.md new file mode 100644 index 0000000..e69de29 diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md new file mode 100644 index 0000000..e69de29 diff --git a/lib/onoffsim/Readme.md b/lib/onoffsim/Readme.md new file mode 100644 index 0000000..e69de29 diff --git a/lib/wifi/Readme.md b/lib/wifi/Readme.md new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json index 9335397..d134ef3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,57 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escape-sequences": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-3.0.0.tgz", + "integrity": "sha1-HBg5S2r5t2/5pjUJ+kl2af0s5T4=", + "dev": true, + "requires": { + "array-back": "1.0.4" + } + }, + "app-usage-stats": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/app-usage-stats/-/app-usage-stats-0.5.1.tgz", + "integrity": "sha1-ZUfF25urCqX1ssVg6syK8g0KsTs=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "home-path": "1.0.5", + "test-value": "2.1.0", + "usage-stats": "0.9.4" + } + }, + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "2.6.1" + } + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -22,8 +73,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "optional": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -49,6 +99,12 @@ "xpc-connection": "0.1.4" } }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", + "dev": true + }, "bplist-parser": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", @@ -59,7 +115,6 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "optional": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -76,6 +131,37 @@ "safe-json-stringify": "1.0.4" } }, + "cache-point": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-0.4.1.tgz", + "integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "fs-then-native": "2.0.0", + "mkdirp2": "1.0.3" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, + "catharsis": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", + "dev": true, + "requires": { + "underscore-contrib": "0.3.0" + } + }, "clone-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", @@ -85,16 +171,107 @@ "is-supported-regexp-flag": "1.0.0" } }, + "collect-all": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz", + "integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==", + "dev": true, + "requires": { + "stream-connect": "1.0.2", + "stream-via": "1.0.4" + } + }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, + "command-line-args": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", + "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "find-replace": "1.0.3", + "typical": "2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, + "command-line-tool": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.7.0.tgz", + "integrity": "sha1-yoB5KuIGnPfKpWLAy8LNEYERIqA=", + "dev": true, + "requires": { + "ansi-escape-sequences": "3.0.0", + "array-back": "1.0.4", + "command-line-args": "4.0.7", + "command-line-usage": "4.0.1", + "typical": "2.6.1" + } + }, + "command-line-usage": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.0.1.tgz", + "integrity": "sha512-IqYzZuXizukrdhnbdUj2hh4iceycow+Jn10mER4lwU4IapYvl5ZzoRPsj5Yraew5oRk4yfFKMuULGvAfb5o29w==", + "dev": true, + "requires": { + "ansi-escape-sequences": "4.0.0", + "array-back": "2.0.0", + "table-layout": "0.4.2", + "typical": "2.6.1" + }, + "dependencies": { + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "2.0.0" + } + }, + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, + "common-sequence": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz", + "integrity": "sha1-MOB/P49vf5s97oVPILLTnu4Ibeg=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "optional": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "dev": true, + "requires": { + "walk-back": "2.0.1" + } }, "core-util-is": { "version": "1.0.2", @@ -159,11 +336,51 @@ "ms": "2.0.0" } }, + "deep-extend": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", + "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "dev": true + }, + "defer-promise": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defer-promise/-/defer-promise-1.0.1.tgz", + "integrity": "sha1-HKb/7dvO8XFd16riXHYW+a4iky8=", + "dev": true + }, "detect-node": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" }, + "dmd": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-3.0.6.tgz", + "integrity": "sha1-lMDg+4jRy2uCg3WVBT3nkZx1PCU=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "cache-point": "0.4.1", + "common-sequence": "1.0.2", + "file-set": "1.1.1", + "handlebars": "3.0.3", + "marked": "0.3.6", + "object-get": "2.1.0", + "reduce-flatten": "1.0.1", + "reduce-unique": "1.0.0", + "reduce-without": "1.0.1", + "test-value": "2.1.0", + "walk-back": "3.0.0" + }, + "dependencies": { + "walk-back": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.0.tgz", + "integrity": "sha1-I1h4ejXakQMtrV6S+AsSNw2HlcU=", + "dev": true + } + } + }, "dtrace-provider": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", @@ -201,6 +418,22 @@ "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "espree": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.7.tgz", + "integrity": "sha1-/V3ux2qXpRIKnNOnyxF3oJI7EdI=", + "dev": true, + "requires": { + "acorn": "3.3.0", + "acorn-jsx": "3.0.1" + } + }, "event-pubsub": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", @@ -216,11 +449,59 @@ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, + "file-set": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-1.1.1.tgz", + "integrity": "sha1-0+xwwIDsjxjyBLod4QZ4DJBWkms=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "glob": "7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "find-replace": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", + "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "test-value": "2.1.0" + } + }, "formidable": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -247,11 +528,35 @@ "resolved": "https://registry.npmjs.org/gpio/-/gpio-0.2.7.tgz", "integrity": "sha1-vzhsiJYe/QpPag/3FnrA/zmX6rk=" }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" }, + "handlebars": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-3.0.3.tgz", + "integrity": "sha1-DgllGi8Ps8lJFgWDcQ1VH5Lm0q0=", + "dev": true, + "requires": { + "optimist": "0.6.1", + "source-map": "0.1.43", + "uglify-js": "2.3.6" + } + }, + "home-path": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", + "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "dev": true + }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -282,7 +587,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -326,12 +630,94 @@ "easy-stack": "1.0.0" } }, + "js2xmlparser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-1.0.0.tgz", + "integrity": "sha1-WhcPLo1kds5FQF4EgjJCUTeC/jA=", + "dev": true + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, + "jsdoc-75lb": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jsdoc-75lb/-/jsdoc-75lb-3.6.0.tgz", + "integrity": "sha1-qAcRlSi0AJzLyrSbdSL2P+xs0L0=", + "dev": true, + "requires": { + "bluebird": "3.4.7", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "espree": "3.1.7", + "js2xmlparser": "1.0.0", + "klaw": "1.3.1", + "marked": "0.3.6", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", + "taffydb": "2.6.2", + "underscore": "1.8.3" + } + }, + "jsdoc-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-3.0.0.tgz", + "integrity": "sha1-DVJwAjX4Zb1Ki61evB77Vi/IrSo=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "cache-point": "0.4.1", + "collect-all": "1.0.3", + "file-set": "1.1.1", + "fs-then-native": "2.0.0", + "jsdoc-75lb": "3.6.0", + "object-to-spawn-args": "1.1.1", + "temp-path": "1.0.0", + "walk-back": "2.0.1" + } + }, + "jsdoc-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.0.tgz", + "integrity": "sha1-JxUx2I8Z3yUgsWMqf2yYlEGof94=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "lodash.omit": "4.5.0", + "lodash.pick": "4.4.0", + "reduce-extract": "1.0.0", + "sort-array": "1.1.2", + "test-value": "2.1.0" + } + }, + "jsdoc-to-markdown": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-3.0.0.tgz", + "integrity": "sha1-zIqU8fQSrB2kusFldHWwl17oFho=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "command-line-tool": "0.7.0", + "config-master": "3.1.0", + "dmd": "3.0.6", + "jsdoc-api": "3.0.0", + "jsdoc-parse": "3.0.0", + "jsdoc2md-stats": "2.0.1", + "walk-back": "2.0.1" + } + }, + "jsdoc2md-stats": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsdoc2md-stats/-/jsdoc2md-stats-2.0.1.tgz", + "integrity": "sha1-vYNDc0z+aeqAUKF5MSUSk/DZBHs=", + "dev": true, + "requires": { + "app-usage-stats": "0.5.1" + } + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -348,6 +734,15 @@ "verror": "1.10.0" } }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", @@ -358,6 +753,24 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, "lru-cache": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", @@ -367,6 +780,12 @@ "yallist": "2.1.2" } }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", + "dev": true + }, "mime": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", @@ -381,7 +800,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "optional": true, "requires": { "brace-expansion": "1.1.8" } @@ -389,18 +807,22 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "optional": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "optional": true, "requires": { "minimist": "0.0.8" } }, + "mkdirp2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.3.tgz", + "integrity": "sha1-zI3YJl8fBuLY9bELblL04FC+0hs=", + "dev": true + }, "moment": { "version": "2.18.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", @@ -456,6 +878,18 @@ "js-queue": "2.0.0" } }, + "object-get": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz", + "integrity": "sha1-ciu9tgA576R8rTxtws5RqFwCxa4=", + "dev": true + }, + "object-to-spawn-args": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", + "integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=", + "dev": true + }, "obuf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", @@ -477,11 +911,20 @@ "epoll": "0.1.22" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "process-nextick-args": { "version": "1.0.7", @@ -512,6 +955,89 @@ "util-deprecate": "1.0.2" } }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "dev": true, + "requires": { + "test-value": "1.1.0" + }, + "dependencies": { + "test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "typical": "2.6.1" + } + } + } + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "reduce-unique": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz", + "integrity": "sha1-flhrz4ek4ytter2Cd/rWzeyfSAM=", + "dev": true + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "dev": true, + "requires": { + "test-value": "2.1.0" + } + }, + "req-then": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/req-then/-/req-then-0.6.4.tgz", + "integrity": "sha512-Uf7xsK1qPqPUetESHemNQ7nGtgOxngSFtlcAOOkx0lDAo+XRZpEA9QDrGBdyOfGq4b+a0z/D5gR2VJ+pp/dzBA==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "defer-promise": "1.0.1", + "lodash.pick": "4.4.0", + "stream-read-all": "0.1.2", + "typical": "2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "requires": { + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, "restify": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/restify/-/restify-5.2.0.tgz", @@ -580,6 +1106,26 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, + "sort-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-1.1.2.tgz", + "integrity": "sha1-uImGBTwBcKf53mPxiknsecJMPmQ=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "object-get": "2.1.0", + "typical": "2.6.1" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, "spdy": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", @@ -627,11 +1173,32 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "dev": true, + "requires": { + "array-back": "1.0.4" + } + }, + "stream-read-all": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-0.1.2.tgz", + "integrity": "sha512-KX42xBg853m+KnwRtwCKT95ShopAbY/MNKs2dBQ0WkNeuJdqgQYRtGRbTlxdx0L6t979h3z/wMq2eMSAu7Tygw==", + "dev": true + }, "stream-transform": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", "integrity": "sha1-fY5rTgOsR4F3j4x5UXUBv7B2Kp8=" }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -640,12 +1207,149 @@ "safe-buffer": "5.1.1" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "table-layout": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz", + "integrity": "sha512-tygyl5+eSHj4chpq5Zfy6cpc7MOUBClAW9ozghFH7hg9bAUzShOYn+/vUzTRkKOSLJWKfgYtP2tAU2c0oAD8eg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "deep-extend": "0.5.0", + "lodash.padend": "4.6.1", + "typical": "2.6.1", + "wordwrapjs": "3.0.0" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", + "dev": true + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "dev": true, + "requires": { + "array-back": "1.0.4", + "typical": "2.6.1" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "uglify-js": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", + "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", + "dev": true, + "optional": true, + "requires": { + "async": "0.2.10", + "optimist": "0.3.7", + "source-map": "0.1.43" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true, + "optional": true + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "optional": true, + "requires": { + "wordwrap": "0.0.3" + } + } + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "requires": { + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "usage-stats": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/usage-stats/-/usage-stats-0.9.4.tgz", + "integrity": "sha512-u94pT+UDv+ZcjA5PT4KuMR67JL6VqeaQU6RN83Gf7yTqGrD/WqgCwhaj1DAKETR/KrteWXL0XZwlkDJuLJdtkg==", + "dev": true, + "requires": { + "array-back": "2.0.0", + "home-path": "1.0.5", + "mkdirp2": "1.0.3", + "req-then": "0.6.4", + "typical": "2.6.1", + "uuid": "3.1.0" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "2.6.1" + } + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -689,6 +1393,12 @@ "extsprintf": "1.3.0" } }, + "walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", + "dev": true + }, "wbuf": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", @@ -710,6 +1420,22 @@ "stack-trace": "0.0.10" } }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "1.0.1", + "typical": "2.6.1" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index f91c06d..d895785 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Intervalometer for the Bolex", "main": "index.js", "scripts": { - "test": "mocha tests" + "test": "mocha tests", + "docs" : "sh docs.sh" }, "repository": { "type": "git", @@ -31,5 +32,8 @@ "restify": "^5.2.0", "uuid": "^3.1.0", "winston": "^2.3.1" + }, + "devDependencies": { + "jsdoc-to-markdown": "^3.0.0" } } -- 2.40.1 From e3393e6e7d24f0837d23562ca300e38218ba6a21 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 15:20:38 -0400 Subject: [PATCH 24/62] Add documentation to onoffsim --- lib/onoffsim/Readme.md | 21 +++++++++++++++++++++ lib/onoffsim/index.js | 10 ++++++++++ 2 files changed, 31 insertions(+) diff --git a/lib/onoffsim/Readme.md b/lib/onoffsim/Readme.md index e69de29..1825111 100644 --- a/lib/onoffsim/Readme.md +++ b/lib/onoffsim/Readme.md @@ -0,0 +1,21 @@ + + +## onoffsim +Object representing a fake onoff Gpio class + +**Kind**: global constant + + +### onoffsim.Gpio(no, dir, additional) ⇒ object +Gpio() - +Create's a Gpio class in the case of running on a dev machine + +**Kind**: static method of [onoffsim](#onoffsim) +**Returns**: object - Fake Gpio object + +| Param | Type | Description | +| --- | --- | --- | +| no | integer | Number of the GPIO pin | +| dir | string | Dirction of the pin, 'input' or 'output' | +| additional | string | Additional instructions for the GPIO pin, for 'input' type | + diff --git a/lib/onoffsim/index.js b/lib/onoffsim/index.js index b45bb01..cd3ca77 100644 --- a/lib/onoffsim/index.js +++ b/lib/onoffsim/index.js @@ -1,6 +1,16 @@ 'use strict' +/** Object representing a fake onoff Gpio class */ const onoffsim = { + /** + * Gpio() - + * Returns a Gpio class in the case of running on a dev machine + * + * @param {integer} no Number of the GPIO pin + * @param {string} dir Dirction of the pin, 'input' or 'output' + * @param {string} additional Additional instructions for the GPIO pin, for 'input' type + * @returns {object} Fake Gpio object + */ Gpio : function (no, dir = 'in', additional = 'none') { // return { -- 2.40.1 From b60334d4b790d057fe8a0ed58ad4e661c2a973ce Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 15:50:14 -0400 Subject: [PATCH 25/62] Add documentation to wifi library --- lib/onoffsim/Readme.md | 2 +- lib/onoffsim/index.js | 1 - lib/wifi/Readme.md | 109 +++++++++++++++++++++++++++++++++++++++++ lib/wifi/index.js | 56 ++++++++++++++++++++- 4 files changed, 164 insertions(+), 4 deletions(-) diff --git a/lib/onoffsim/Readme.md b/lib/onoffsim/Readme.md index 1825111..b2bc825 100644 --- a/lib/onoffsim/Readme.md +++ b/lib/onoffsim/Readme.md @@ -8,7 +8,7 @@ Object representing a fake onoff Gpio class ### onoffsim.Gpio(no, dir, additional) ⇒ object Gpio() - -Create's a Gpio class in the case of running on a dev machine +Returns a Gpio class in the case of running on a dev machine **Kind**: static method of [onoffsim](#onoffsim) **Returns**: object - Fake Gpio object diff --git a/lib/onoffsim/index.js b/lib/onoffsim/index.js index cd3ca77..dba05d1 100644 --- a/lib/onoffsim/index.js +++ b/lib/onoffsim/index.js @@ -12,7 +12,6 @@ const onoffsim = { * @returns {object} Fake Gpio object */ Gpio : function (no, dir = 'in', additional = 'none') { - // return { no : no, dir : dir, diff --git a/lib/wifi/Readme.md b/lib/wifi/Readme.md index e69de29..7d4ef84 100644 --- a/lib/wifi/Readme.md +++ b/lib/wifi/Readme.md @@ -0,0 +1,109 @@ + + +## Wifi +Class representing the wifi features + +**Kind**: global class + +* [Wifi](#Wifi) + * [.list(callback)](#Wifi+list) + * [._readConfigCb(err, data)](#Wifi+_readConfigCb) + * [._writeConfigCb(err)](#Wifi+_writeConfigCb) + * [._reconfigureCb(err, stdout, stderr)](#Wifi+_reconfigureCb) + * [._refreshCb(err, stdout, stderr)](#Wifi+_refreshCb) + * [.setNetwork(ssid, pwd, callback)](#Wifi+setNetwork) + * [.getNetwork(callback)](#Wifi+getNetwork) + + + +### wifi.list(callback) +Wifi.list() - +List available wifi access points + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | Function which gets invoked after list is returned | + + + +### wifi._readConfigCb(err, data) +Wifi._readConfigCb() - +(internal function) Invoked after config file is read, +then invokes file write on the config file + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | (optional) Error object only present if problem reading config file | +| data | string | Contents of the config file | + + + +### wifi._writeConfigCb(err) +Wifi._writeConfigCb() - +(internal function) Invoked after config file is written, +then executes reconfiguration command + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | (optional) Error object only present if problem writing config file | + + + +### wifi._reconfigureCb(err, stdout, stderr) +Wifi._reconfigureCb() - +(internal function) Invoked after reconfiguration command is complete + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | (optional) Error object only present if configuration command fails | +| stdout | string | Standard output from reconfiguration command | +| stderr | string | Error output from command if fails | + + + +### wifi._refreshCb(err, stdout, stderr) +Wifi._refreshCb() - +(internal function) Invoked after wifi refresh command is complete + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | (optional) Error object only present if refresh command fails | +| stdout | string | Standard output from refresh command | +| stderr | string | Error output from command if fails | + + + +### wifi.setNetwork(ssid, pwd, callback) +Wifi.setNetwork() - +Function which initializes the processes for adding a wifi access point authentication + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| ssid | string | SSID of network to configure | +| pwd | string | Password of access point, plaintext | +| callback | function | Function invoked after process is complete, or fails | + + + +### wifi.getNetwork(callback) +Wifi.getNetwork() - +Executes command which gets the currently connected network + +**Kind**: instance method of [Wifi](#Wifi) + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | Function which is invoked after command is completed | + diff --git a/lib/wifi/index.js b/lib/wifi/index.js index f330df4..22096b6 100644 --- a/lib/wifi/index.js +++ b/lib/wifi/index.js @@ -12,12 +12,19 @@ const iwgetid = '/sbin/iwgetid' const exec = require('child_process').exec const fs = require('fs') -class wifi { +/** Class representing the wifi features */ +class Wifi { constructor () { this._callback = () => {} this._entry = null this._ssid = null } + /** + * Wifi.list() - + * List available wifi access points + * + * @param {function} callback Function which gets invoked after list is returned + */ list (callback) { exec(iwlist, (err, stdout, stderr) => { if (err) { @@ -37,6 +44,14 @@ class wifi { return callback(null, output) }) } + /** + * Wifi._readConfigCb() - + * (internal function) Invoked after config file is read, + * then invokes file write on the config file + * + * @param {object} err (optional) Error object only present if problem reading config file + * @param {string} data Contents of the config file + */ _readConfigCb (err, data) { if (err) { console.error(err) @@ -50,6 +65,13 @@ class wifi { this._entry = null fs.writeFile(filePath, data, 'utf8', this._writeConfigCb) } + /** + * Wifi._writeConfigCb() - + * (internal function) Invoked after config file is written, + * then executes reconfiguration command + * + * @param {object} err (optional) Error object only present if problem writing config file + */ _writeConfigCb (err) { if (err) { console.error(err) @@ -57,6 +79,14 @@ class wifi { } exec(reconfigure, this._reconfigureCb) } + /** + * Wifi._reconfigureCb() - + * (internal function) Invoked after reconfiguration command is complete + * + * @param {object} err (optional) Error object only present if configuration command fails + * @param {string} stdout Standard output from reconfiguration command + * @param {string} stderr Error output from command if fails + */ _reconfigureCb (err, stdout, stderr) { if (err) { console.error(err) @@ -65,6 +95,14 @@ class wifi { console.log('Wifi reconfigured') exec(refresh, this._refreshCb) } + /** + * Wifi._refreshCb() - + * (internal function) Invoked after wifi refresh command is complete + * + * @param {object} err (optional) Error object only present if refresh command fails + * @param {string} stdout Standard output from refresh command + * @param {string} stderr Error output from command if fails + */ _refreshCb (err, stdout, stderr) { if (err) { console.error(err) @@ -74,12 +112,26 @@ class wifi { //this._callback(null, { ssid : ssid, pwd : pwd.length }) this._callback = () => {} } + /** + * Wifi.setNetwork() - + * Function which initializes the processes for adding a wifi access point authentication + * + * @param {string} ssid SSID of network to configure + * @param {string} pwd Password of access point, plaintext + * @param {function} callback Function invoked after process is complete, or fails + */ setNetwork (ssid, pwd, callback) { this._entry = `network={\n\tssid="${ssid}"\n\tpsk="${pwd}"\n}\n` this._callback = callback this._ssid = ssid fs.readFile(filePath, 'utf8', this._readConfigCb) } + /** + * Wifi.getNetwork() - + * Executes command which gets the currently connected network + * + * @param {function} callback Function which is invoked after command is completed + */ getNetwork (callback) { exec(iwgetid, (err, stdout, stderr) => { if (err) { @@ -90,4 +142,4 @@ class wifi { } } -module.exports = new wifi() \ No newline at end of file +module.exports = new Wifi() \ No newline at end of file -- 2.40.1 From c49c6a5b8dcece4c33be5e3ed0204f2fb312370c Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 17:54:07 -0400 Subject: [PATCH 26/62] Documentation for blootstrap --- lib/blootstrap/Readme.md | 6 ++++++ lib/blootstrap/index.js | 8 ++++++++ lib/intval/Readme.md | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/lib/blootstrap/Readme.md b/lib/blootstrap/Readme.md index e69de29..017bab5 100644 --- a/lib/blootstrap/Readme.md +++ b/lib/blootstrap/Readme.md @@ -0,0 +1,6 @@ + + +## Blootstrap +Class representing the bluetooth interface + +**Kind**: global class diff --git a/lib/blootstrap/index.js b/lib/blootstrap/index.js index 33d9da0..445086b 100644 --- a/lib/blootstrap/index.js +++ b/lib/blootstrap/index.js @@ -6,6 +6,7 @@ function capitalize (s) { return s[0].toUpperCase() + s.slice(1) } +/** Class representing the bluetooth interface */ class Blootstrap { constructor () { this._onData = () => {} @@ -24,6 +25,13 @@ class Blootstrap { }) }) } + /** + * Blootstrap.on() - + * Binds functions to events that are triggered by BLE messages + * + * @param {string} eventName Name of the event to to bind + * @param {function} callback Invoked when the event is triggered + */ on (eventName, callback) { this[`_on${capitalize(eventName)}`] = callback } diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index e69de29..07e7198 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -0,0 +1,6 @@ + + +## Intval +Class representing the intval3 features + +**Kind**: global class -- 2.40.1 From 418d33c8f721fa53a872acd1ec8a0c0b496df2ba Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 19:51:33 -0400 Subject: [PATCH 27/62] Updated default behavior of frame Also added a parallel example of the logic to gpio.js --- lib/blootstrap/Readme.md | 13 ++++++ lib/intval/Readme.md | 35 ++++++++++++++++ lib/intval/index.js | 89 +++++++++++++++++++++++++++++++++++----- tests/gpio.js | 23 ++++++++++- 4 files changed, 149 insertions(+), 11 deletions(-) diff --git a/lib/blootstrap/Readme.md b/lib/blootstrap/Readme.md index 017bab5..e1b720a 100644 --- a/lib/blootstrap/Readme.md +++ b/lib/blootstrap/Readme.md @@ -4,3 +4,16 @@ Class representing the bluetooth interface **Kind**: global class + + +### blootstrap.on(eventName, callback) +Blootstrap.on() - +Binds functions to events that are triggered by BLE messages + +**Kind**: instance method of [Blootstrap](#Blootstrap) + +| Param | Type | Description | +| --- | --- | --- | +| eventName | string | Name of the event to to bind | +| callback | function | Invoked when the event is triggered | + diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index 07e7198..176e2b7 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -4,3 +4,38 @@ Class representing the intval3 features **Kind**: global class + +* [Intval](#Intval) + * [._declarePins()](#Intval+_declarePins) + * [._undeclarePins()](#Intval+_undeclarePins) + * [.frame(dir, time, delay)](#Intval+frame) + + + +### intval._declarePins() +Intval._declarePins() - +(internal function) Declares all Gpio pins that will be used + +**Kind**: instance method of [Intval](#Intval) + + +### intval._undeclarePins() +Intval._undeclarePins() - +(internal function) Undeclares all Gpio in event of uncaught error +that interupts the node process + +**Kind**: instance method of [Intval](#Intval) + + +### intval.frame(dir, time, delay) +Intval.frame() - +Begin a single frame with set variables or defaults + +**Kind**: instance method of [Intval](#Intval) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| dir | boolean | | (optional) Direction of the frame | +| time | integer | | (optional) Exposure time, 0 = minimum | +| delay | delay | | (optional) Delay after frame before another can be started | + diff --git a/lib/intval/index.js b/lib/intval/index.js index cbf2e44..5be37e6 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -30,6 +30,7 @@ const PINS = { } } +/** Class representing the intval3 features */ class Intval { constructor () { this._pin = {} @@ -38,23 +39,38 @@ class Intval { frame : { start : 0, active : false, + time : 0, + delay : 0, val : 0, expected : 0 + }, + release : { + time: 0, + active : false } } this._declarePins() - process.on('SIGINT', () => { - this._undeclarePins() - }) + process.on('SIGINT', this._undeclarePins) } + /** + * Intval._declarePins() - + * (internal function) Declares all Gpio pins that will be used + * + */ _declarePins () { - this._pin.fwd = Gpio(4, 'out') - this._pin.bwd = Gpio(5, 'out') - this._pin.micro = Gpio(6, 'in', 'rising') - this._pin.release = Gpio(7, 'in', 'both') + this._pin.fwd = Gpio(13, 'out') + this._pin.bwd = Gpio(19, 'out') + this._pin.micro = Gpio(5, 'in', 'rising') // + this._pin.release = Gpio(6, 'in', 'both') this._pin.release.watch(this._watchRelease) } + /** + * Intval._undeclarePins() - + * (internal function) Undeclares all Gpio in event of uncaught error + * that interupts the node process + * + */ _undeclarePins () { this._pin.fwd.unexport() this._pin.bwd.unexport() @@ -71,6 +87,9 @@ class Intval { this._pin.bwd.set(1) } _watchMicro (err, val) { + /* Microswitch + 10K ohm resistor */ + /* 1 = open */ + /* 0 = closed */ if (err) { console.error(err) } @@ -78,10 +97,29 @@ class Intval { //determine when to stop } _watchRelease (err, val) { + const NOW = +new Date() + /* Button + 10K ohm resistor */ + /* 1 = open */ + /* 0 = closed */ if (err) { - console.error(err) + return console.error(err) } console.log(`Release switch val: ${val}`) + if (val === 0) { + if (this._state.release.time === 0) { + this._state.release.time = NOW + this._state.release.active = true //maybe unncecessary + } else if (this._state.release.active) { + if (NOW - this._state.release.time > 100) { + this.frame() + } else if (NOW - this._state.release.time > 1000) { + this.sequence() + } + console.log(`Release closed for ${NOW - this._state.release.time}`) + this._state.release.time = 0 + this._state.release.active = false + } + } } setDir (val = true) { if (typeof val !== 'boolean') { @@ -89,10 +127,38 @@ class Intval { } this._state.dir = val } - frame (dir = true, time = 0, delay = 0) { + /** + * Intval.frame() - + * Begin a single frame with set variables or defaults + * + * @param {boolean} dir (optional) Direction of the frame + * @param {integer} time (optional) Exposure time, 0 = minimum + * @param {delay} delay (optional) Delay after frame before another can be started + * + */ + frame (dir = null, time = null, delay = null) { //may be overloaded, delay is suspect + if (dir === true || (dir === null && this._state.dir === true) ) { + dir = true + } else { + dir = false + } + + if (time === null && this._state.time !== 0) { + time = this._state.time + } else { + time = 0 + } + + if (delay === null && this._state.delay !== 0) { + delay = this._state.delay + } else { + delay = 0 + } + this._state.frame.start = +new Date() this._state.frame.active = true this._pin.micro.watch(this._watchMicro) + if (delay !== 0) { setTimeout(function () { if (dir) { @@ -110,7 +176,10 @@ class Intval { } } } - _stop () { + sequence () { + console.log(`Started sequence`) + } + _stop () { this._pin.fwd.set(0) this._pin.bwd.set(0) diff --git a/tests/gpio.js b/tests/gpio.js index 56d4a76..ccdd1c5 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -6,11 +6,32 @@ const btn = Gpio(5, 'in', 'both') console.log('Watching input on GPIO 05') +let saveTime = 0 +let active = false btn.watch((err, val) => { + const NOW = +new Date() + /* Button + 10K ohm resistor */ + /* 1 = open */ + /* 0 = closed */ if (err) { return console.error(err) } - console.log(val) + console.log(`Release switch val: ${val}`) + if (val === 0) { + if (saveTime === 0) { + saveTime = NOW + active = true //maybe unncecessary + } else if (active) { + if (NOW - saveTime > 100) { + console.log('Started Frame') + } else if (NOW - saveTime > 1000) { + console.log('Started Sequence') + } + console.log(`Release closed for ${NOW - saveTime}`) + saveTime = 0 + active = false + } + } }) /*setInterval(() => { -- 2.40.1 From 4cb28c024d65b3969c5d491a3f86f00d3a0adcb3 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 19:55:35 -0400 Subject: [PATCH 28/62] Caught major oversight. 1 = open Therefore frame event needs to be determined on open, after started when closed --- tests/gpio.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index ccdd1c5..9b81e9f 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -17,11 +17,18 @@ btn.watch((err, val) => { return console.error(err) } console.log(`Release switch val: ${val}`) + if (val === 1) { + console.log('open') + } else if (val === 0) { + console.log('closed') + } if (val === 0) { if (saveTime === 0) { saveTime = NOW active = true //maybe unncecessary - } else if (active) { + } + } else if (val === 1) { + if (active) { if (NOW - saveTime > 100) { console.log('Started Frame') } else if (NOW - saveTime > 1000) { -- 2.40.1 From f13d609fce053dd6fa4082b89f10b7196e335c30 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 19:57:38 -0400 Subject: [PATCH 29/62] Fixed over 1000ms sequence logic --- tests/gpio.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 9b81e9f..2d4b00c 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -29,9 +29,9 @@ btn.watch((err, val) => { } } else if (val === 1) { if (active) { - if (NOW - saveTime > 100) { + if (NOW - saveTime > 50 && NOW - saveTime < 1000) { console.log('Started Frame') - } else if (NOW - saveTime > 1000) { + } else if (NOW - saveTime >= 1000) { console.log('Started Sequence') } console.log(`Release closed for ${NOW - saveTime}`) -- 2.40.1 From 2d0aaaca8c4d1471d76623b374c440f244334549 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 20:00:26 -0400 Subject: [PATCH 30/62] Remove extra log events Test running test for extended length of time to test whether or not errant 0 change events trigger frames --- tests/gpio.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 2d4b00c..a42c06d 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -16,16 +16,19 @@ btn.watch((err, val) => { if (err) { return console.error(err) } - console.log(`Release switch val: ${val}`) + //console.log(`Release switch val: ${val}`) if (val === 1) { - console.log('open') + //console.log('open') } else if (val === 0) { - console.log('closed') + //console.log('closed') } if (val === 0) { if (saveTime === 0) { saveTime = NOW active = true //maybe unncecessary + } else { + //saveTime = 0 + //active = false } } else if (val === 1) { if (active) { -- 2.40.1 From 78135c4e778bf32e7de922667d24d73e4960dcb6 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 20:25:21 -0400 Subject: [PATCH 31/62] More complex logic to prevent errant closed events from breaking --- lib/intval/index.js | 17 ++++++++++++----- tests/gpio.js | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 5be37e6..5450bc8 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -49,6 +49,8 @@ class Intval { active : false } } + this._releaseMin = 50 + this._releaseSequence = 1000 this._declarePins() process.on('SIGINT', this._undeclarePins) } @@ -98,6 +100,7 @@ class Intval { } _watchRelease (err, val) { const NOW = +new Date() + let press = 0 /* Button + 10K ohm resistor */ /* 1 = open */ /* 0 = closed */ @@ -106,16 +109,20 @@ class Intval { } console.log(`Release switch val: ${val}`) if (val === 0) { - if (this._state.release.time === 0) { + if ((!this._state.release.active && this._state.release.time === 0) || (this._state.release.active && (NOW - this._state.release.time) > (this._releaseSequence * 10)) + ) { this._state.release.time = NOW this._state.release.active = true //maybe unncecessary - } else if (this._state.release.active) { - if (NOW - this._state.release.time > 100) { + } + } else if (val === 1) { + if (this._state.release.active) { + press = NOW - this._state.release.time + if (press > this._releaseMin && press < this._releaseSequence) { this.frame() - } else if (NOW - this._state.release.time > 1000) { + } else if (press >= this._releaseSequence) { this.sequence() } - console.log(`Release closed for ${NOW - this._state.release.time}`) + console.log(`Release closed for ${press}`) this._state.release.time = 0 this._state.release.active = false } diff --git a/tests/gpio.js b/tests/gpio.js index a42c06d..26ef56c 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -23,7 +23,7 @@ btn.watch((err, val) => { //console.log('closed') } if (val === 0) { - if (saveTime === 0) { + if ((!active && saveTime === 0) || (active && NOW - saveTime > 10 * 1000)) { saveTime = NOW active = true //maybe unncecessary } else { -- 2.40.1 From 0fc4200f6da85355dae91bb49c54d42bc3487292 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 17 Sep 2017 20:27:51 -0400 Subject: [PATCH 32/62] Re-add watch callback console.log --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 26ef56c..ac46e7c 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -16,7 +16,7 @@ btn.watch((err, val) => { if (err) { return console.error(err) } - //console.log(`Release switch val: ${val}`) + console.log(`Release switch val: ${val}`) if (val === 1) { //console.log('open') } else if (val === 0) { -- 2.40.1 From 332399cfd7784ed61eb420bb125b4e389fee6068 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 18 Sep 2017 20:46:18 -0400 Subject: [PATCH 33/62] Document intval lib --- lib/intval/Readme.md | 24 + lib/intval/index.js | 37 +- package-lock.json | 1131 +++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 4 files changed, 1171 insertions(+), 23 deletions(-) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index 176e2b7..ebb5f4c 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -8,6 +8,9 @@ Class representing the intval3 features * [Intval](#Intval) * [._declarePins()](#Intval+_declarePins) * [._undeclarePins()](#Intval+_undeclarePins) + * [._startFwd()](#Intval+_startFwd) + * [._startBwd()](#Intval+_startBwd) + * [._stop()](#Intval+_stop) * [.frame(dir, time, delay)](#Intval+frame) @@ -24,6 +27,27 @@ Intval._undeclarePins() - (internal function) Undeclares all Gpio in event of uncaught error that interupts the node process +**Kind**: instance method of [Intval](#Intval) + + +### intval._startFwd() +Intval._startFwd() - +Start motor in forward direction by setting correct pins in h-bridge + +**Kind**: instance method of [Intval](#Intval) + + +### intval._startBwd() +Intval._startBwd() - +Start motor in backward direction by setting correct pins in h-bridge + +**Kind**: instance method of [Intval](#Intval) + + +### intval._stop() +Intval._stop() - +Stop motor by setting both motor pins to 0 (LOW) + **Kind**: instance method of [Intval](#Intval) diff --git a/lib/intval/index.js b/lib/intval/index.js index 5450bc8..3edb38e 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -79,15 +79,41 @@ class Intval { this._pin.micro.unexport() this._pin.release.unexport() } + /** + * Intval._startFwd() - + * Start motor in forward direction by setting correct pins in h-bridge + * + */ _startFwd () { this._pin.fwd.set(1) this._pin.bwd.set(0) //start high-cpu watch } + /** + * Intval._startBwd() - + * Start motor in backward direction by setting correct pins in h-bridge + * + */ _startBwd () { this._pin.fwd.set(0) this._pin.bwd.set(1) } + /** + * Intval._stop() - + * Stop motor by setting both motor pins to 0 (LOW) + * + */ + _stop () { + this._pin.fwd.set(0) + this._pin.bwd.set(0) + + let len = (+new Date()) - this._state.frame.start + + console.log(`Frame stopped ${len}ms`) + + this._pin.micro.unwatch() + this._state.frame.active = false + } _watchMicro (err, val) { /* Microswitch + 10K ohm resistor */ /* 1 = open */ @@ -186,17 +212,6 @@ class Intval { sequence () { console.log(`Started sequence`) } - _stop () { - this._pin.fwd.set(0) - this._pin.bwd.set(0) - - let len = (+new Date()) - this._state.frame.start - - console.log(`Frame stopped ${len}ms`) - - this._pin.micro.unwatch() - this._state.frame.active = false - } status () { return this._state } diff --git a/package-lock.json b/package-lock.json index d134ef3..bf33259 100644 --- a/package-lock.json +++ b/package-lock.json @@ -94,9 +94,9 @@ "resolved": "https://registry.npmjs.org/bleno/-/bleno-0.4.2.tgz", "integrity": "sha1-IesK10O850eU45L0ph4TsHOT26o=", "requires": { + "bluetooth-hci-socket": "0.5.1", "bplist-parser": "0.0.6", - "debug": "2.6.8", - "xpc-connection": "0.1.4" + "debug": "2.6.8" } }, "bluebird": { @@ -105,6 +105,17 @@ "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", "dev": true }, + "bluetooth-hci-socket": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/bluetooth-hci-socket/-/bluetooth-hci-socket-0.5.1.tgz", + "integrity": "sha1-774hUk/Bz10/rl1RNl1WHUq77Qs=", + "optional": true, + "requires": { + "debug": "2.6.8", + "nan": "2.6.2", + "usb": "1.2.0" + } + }, "bplist-parser": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", @@ -1350,6 +1361,1113 @@ } } }, + "usb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.2.0.tgz", + "integrity": "sha1-q3LZeGoEcGiRmgJNCMehxbHmD0c=", + "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.30" + }, + "dependencies": { + "node-pre-gyp": { + "version": "0.6.30", + "bundled": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.0.0", + "rc": "1.1.6", + "request": "2.74.0", + "rimraf": "2.5.4", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.1.4" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "nopt": { + "version": "3.0.6", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.0.9" + }, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "bundled": true, + "optional": true + } + } + }, + "npmlog": { + "version": "4.0.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.2", + "console-control-strings": "1.1.0", + "gauge": "2.6.0", + "set-blocking": "2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.1.5" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "readable-stream": { + "version": "2.1.5", + "bundled": true, + "optional": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "inherits": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "optional": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + } + } + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "gauge": { + "version": "2.6.0", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.0.4", + "console-control-strings": "1.1.0", + "has-color": "0.1.7", + "has-unicode": "2.0.1", + "object-assign": "4.1.0", + "signal-exit": "3.0.0", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.0" + }, + "dependencies": { + "aproba": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "has-color": { + "version": "0.1.7", + "bundled": true, + "optional": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.0.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "bundled": true + } + } + }, + "wide-align": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + } + } + }, + "rc": { + "version": "1.1.6", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.1", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "deep-extend": { + "version": "0.4.1", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "strip-json-comments": { + "version": "1.0.4", + "bundled": true, + "optional": true + } + } + }, + "request": { + "version": "2.74.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.4.1", + "bl": "1.1.2", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.0", + "forever-agent": "0.6.1", + "form-data": "1.0.1", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.11", + "node-uuid": "1.4.7", + "oauth-sign": "0.8.2", + "qs": "6.2.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.1", + "tunnel-agent": "0.4.3" + }, + "dependencies": { + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "bl": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "readable-stream": "2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "inherits": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "optional": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + } + } + } + } + }, + "caseless": { + "version": "0.11.0", + "bundled": true, + "optional": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + }, + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "bundled": true + } + } + }, + "extend": { + "version": "3.0.0", + "bundled": true, + "optional": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "async": "2.0.1", + "combined-stream": "1.0.5", + "mime-types": "2.1.11" + }, + "dependencies": { + "async": { + "version": "2.0.1", + "bundled": true, + "optional": true, + "requires": { + "lodash": "4.15.0" + }, + "dependencies": { + "lodash": { + "version": "4.15.0", + "bundled": true, + "optional": true + } + } + } + } + }, + "har-validator": { + "version": "2.0.6", + "bundled": true, + "optional": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.9.0", + "is-my-json-valid": "2.13.1", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "bundled": true, + "optional": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "bundled": true, + "optional": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "optional": true + } + } + }, + "commander": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "graceful-readlink": "1.0.1" + }, + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "bundled": true, + "optional": true + } + } + }, + "is-my-json-valid": { + "version": "2.13.1", + "bundled": true, + "optional": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "2.0.0", + "xtend": "4.0.1" + }, + "dependencies": { + "generate-function": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "generate-object-property": { + "version": "1.2.0", + "bundled": true, + "optional": true, + "requires": { + "is-property": "1.0.2" + }, + "dependencies": { + "is-property": { + "version": "1.0.2", + "bundled": true, + "optional": true + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "optional": true + } + } + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "optional": true, + "requires": { + "pinkie": "2.0.4" + }, + "dependencies": { + "pinkie": { + "version": "2.0.4", + "bundled": true, + "optional": true + } + } + } + } + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + }, + "dependencies": { + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.3.0", + "sshpk": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.3.0", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2", + "json-schema": "0.2.2", + "verror": "1.3.6" + }, + "dependencies": { + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "json-schema": { + "version": "0.2.2", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + } + } + }, + "sshpk": { + "version": "1.10.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.0", + "dashdash": "1.14.0", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.6", + "jodid25519": "1.0.2", + "jsbn": "0.1.0", + "tweetnacl": "0.13.3" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.3", + "bundled": true, + "optional": true + } + } + }, + "dashdash": { + "version": "1.14.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.0" + } + }, + "getpass": { + "version": "0.1.6", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.0" + } + }, + "jsbn": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "tweetnacl": { + "version": "0.13.3", + "bundled": true, + "optional": true + } + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "mime-types": { + "version": "2.1.11", + "bundled": true, + "requires": { + "mime-db": "1.23.0" + }, + "dependencies": { + "mime-db": { + "version": "1.23.0", + "bundled": true + } + } + }, + "node-uuid": { + "version": "1.4.7", + "bundled": true, + "optional": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.2.1", + "bundled": true, + "optional": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "tough-cookie": { + "version": "2.3.1", + "bundled": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.4.3", + "bundled": true, + "optional": true + } + } + }, + "rimraf": { + "version": "2.5.4", + "bundled": true, + "requires": { + "glob": "7.0.6" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.5", + "inherits": "2.0.1", + "minimatch": "3.0.3", + "once": "1.3.3", + "path-is-absolute": "1.0.0" + }, + "dependencies": { + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "inflight": { + "version": "1.0.5", + "bundled": true, + "requires": { + "once": "1.3.3", + "wrappy": "1.0.2" + }, + "dependencies": { + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "inherits": { + "version": "2.0.1", + "bundled": true + }, + "minimatch": { + "version": "3.0.3", + "bundled": true, + "requires": { + "brace-expansion": "1.1.6" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + } + } + } + } + }, + "once": { + "version": "1.3.3", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + }, + "dependencies": { + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.10", + "inherits": "2.0.1" + }, + "dependencies": { + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.1" + } + }, + "fstream": { + "version": "1.0.10", + "bundled": true, + "requires": { + "graceful-fs": "4.1.6", + "inherits": "2.0.1", + "mkdirp": "0.5.1", + "rimraf": "2.5.4" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.6", + "bundled": true + } + } + }, + "inherits": { + "version": "2.0.1", + "bundled": true + } + } + }, + "tar-pack": { + "version": "3.1.4", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.2.0", + "fstream": "1.0.10", + "fstream-ignore": "1.0.5", + "once": "1.3.3", + "readable-stream": "2.1.5", + "rimraf": "2.5.4", + "tar": "2.2.1", + "uid-number": "0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "ms": "0.7.1" + }, + "dependencies": { + "ms": { + "version": "0.7.1", + "bundled": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.10", + "bundled": true, + "requires": { + "graceful-fs": "4.1.6", + "inherits": "2.0.1", + "mkdirp": "0.5.1", + "rimraf": "2.5.4" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.6", + "bundled": true + }, + "inherits": { + "version": "2.0.1", + "bundled": true + } + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.10", + "inherits": "2.0.1", + "minimatch": "3.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "1.1.6" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + } + } + } + } + } + } + }, + "once": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1.0.2" + }, + "dependencies": { + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.1.5", + "bundled": true, + "optional": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "inherits": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "optional": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + } + } + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + } + } + } + } + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -1441,15 +2559,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "xpc-connection": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/xpc-connection/-/xpc-connection-0.1.4.tgz", - "integrity": "sha1-3Nf6oq7Gt6bhjMXdrQQvejTHcVY=", - "optional": true, - "requires": { - "nan": "2.6.2" - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", diff --git a/package.json b/package.json index d895785..d1b2e33 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "test": "mocha tests", - "docs" : "sh docs.sh" + "docs": "sh docs.sh" }, "repository": { "type": "git", -- 2.40.1 From 32affb1b72b7b7adc667f9311bb90bd43c8f08a4 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 19 Sep 2017 15:06:34 -0400 Subject: [PATCH 34/62] Use PINS configuration object to initialize pins TODO: Separate into file, automatically switching out for different models --- lib/intval/index.js | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 3edb38e..35481b6 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -11,20 +11,20 @@ try { const PINS = { fwd : { - pin : 4, + pin : 13, dir : 'out' }, bwd : { - pin : 5, + pin : 19, dir : 'out' }, micro : { pin : 6, dir : 'in', - edge : 'rising' + edge : 'both' }, release : { - pin : 7, + pin : 5, dir : 'in', edge : 'both' } @@ -60,11 +60,13 @@ class Intval { * */ _declarePins () { - this._pin.fwd = Gpio(13, 'out') - this._pin.bwd = Gpio(19, 'out') - this._pin.micro = Gpio(5, 'in', 'rising') // - this._pin.release = Gpio(6, 'in', 'both') - + let pin + for (let p in PINS) { + pin = PINS[p] + if (pin.edge) this._pin[p] = Gpio(pin.pin, pin.dir, pin.edge) + if (!pin.edge) this._pin[p] = Gpio(pin.pin, pin.dir) + } + console.dir(this._pin) this._pin.release.watch(this._watchRelease) } /** @@ -114,6 +116,15 @@ class Intval { this._pin.micro.unwatch() this._state.frame.active = false } + /** + * Intval._watchMicro() - + * Callback for watching microswitch state changes + * Using GPIO 06 on raspberry pi zero w + * + * @param {object} err Error object present if problem reading pin + * @param {integer} val Current value of the pin + * + */ _watchMicro (err, val) { /* Microswitch + 10K ohm resistor */ /* 1 = open */ @@ -124,6 +135,19 @@ class Intval { this._state.frame.val = val //determine when to stop } + /** + * Intval._watchRelease() - + * Callback for watching relese switch state changes + * Using GPIO 05 on raspberry pi zero w + * * If closed, start timer. + * * If opened, check timer AND + * * If time closed longer than minimum and less than `this._releaseSequence`, start frame + * * If time closed longer than `this._releaseSequence`, start sequence + * + * @param {object} err Error object present if problem reading pin + * @param {integer} val Current value of the pin + * + */ _watchRelease (err, val) { const NOW = +new Date() let press = 0 -- 2.40.1 From bfb28a04488e7654b320b0e20236dd94bfa1a7f0 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 19 Sep 2017 15:06:52 -0400 Subject: [PATCH 35/62] Add documentation to interval --- lib/intval/Readme.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index ebb5f4c..549eda3 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -11,6 +11,8 @@ Class representing the intval3 features * [._startFwd()](#Intval+_startFwd) * [._startBwd()](#Intval+_startBwd) * [._stop()](#Intval+_stop) + * [._watchMicro(err, val)](#Intval+_watchMicro) + * [._watchRelease(err, val)](#Intval+_watchRelease) * [.frame(dir, time, delay)](#Intval+frame) @@ -49,6 +51,38 @@ Intval._stop() - Stop motor by setting both motor pins to 0 (LOW) **Kind**: instance method of [Intval](#Intval) + + +### intval._watchMicro(err, val) +Intval._watchMicro() - +Callback for watching microswitch state changes +Using GPIO 06 on raspberry pi zero w + +**Kind**: instance method of [Intval](#Intval) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | Error object present if problem reading pin | +| val | integer | Current value of the pin | + + + +### intval._watchRelease(err, val) +Intval._watchRelease() - +Callback for watching relese switch state changes +Using GPIO 05 on raspberry pi zero w +* If closed, start timer. +* If opened, check timer AND +* If time closed longer than minimum and less than `this._releaseSequence`, start frame +* If time closed longer than `this._releaseSequence`, start sequence + +**Kind**: instance method of [Intval](#Intval) + +| Param | Type | Description | +| --- | --- | --- | +| err | object | Error object present if problem reading pin | +| val | integer | Current value of the pin | + ### intval.frame(dir, time, delay) -- 2.40.1 From 52c0c6f35298583d6b49d1eda410908c8c331b48 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 19 Sep 2017 15:20:58 -0400 Subject: [PATCH 36/62] Add default optional values to documentation --- lib/intval/Readme.md | 37 ++++++++++++++++++++++++------------- lib/intval/index.js | 40 +++++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index 549eda3..e893021 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -13,7 +13,7 @@ Class representing the intval3 features * [._stop()](#Intval+_stop) * [._watchMicro(err, val)](#Intval+_watchMicro) * [._watchRelease(err, val)](#Intval+_watchRelease) - * [.frame(dir, time, delay)](#Intval+frame) + * [.frame([dir], [time], [delay])](#Intval+frame) @@ -55,8 +55,14 @@ Stop motor by setting both motor pins to 0 (LOW) ### intval._watchMicro(err, val) Intval._watchMicro() - -Callback for watching microswitch state changes -Using GPIO 06 on raspberry pi zero w +Callback for watching relese switch state changes. +Using GPIO 06 on Raspberry Pi Zero W. +* If closed, start timer. +* If opened, check timer AND + +Microswitch + 10K ohm resistor +* 1 === open +* 0 === closed **Kind**: instance method of [Intval](#Intval) @@ -69,12 +75,17 @@ Using GPIO 06 on raspberry pi zero w ### intval._watchRelease(err, val) Intval._watchRelease() - -Callback for watching relese switch state changes -Using GPIO 05 on raspberry pi zero w -* If closed, start timer. -* If opened, check timer AND -* If time closed longer than minimum and less than `this._releaseSequence`, start frame -* If time closed longer than `this._releaseSequence`, start sequence +Callback for watching relese switch state changes. +Using GPIO 05 on Raspberry Pi Zero W. + +1) If closed, start timer. +2) If opened, check timer AND +3) If `press` (`NOW - this._state.release.time`) greater than minimum and less than `this._releaseSequence`, start frame +4) If `press` greater than `this._releaseSequence`, start sequence + +Button + 10K ohm resistor +* 1 === open +* 0 === closed **Kind**: instance method of [Intval](#Intval) @@ -85,7 +96,7 @@ Using GPIO 05 on raspberry pi zero w -### intval.frame(dir, time, delay) +### intval.frame([dir], [time], [delay]) Intval.frame() - Begin a single frame with set variables or defaults @@ -93,7 +104,7 @@ Begin a single frame with set variables or defaults | Param | Type | Default | Description | | --- | --- | --- | --- | -| dir | boolean | | (optional) Direction of the frame | -| time | integer | | (optional) Exposure time, 0 = minimum | -| delay | delay | | (optional) Delay after frame before another can be started | +| [dir] | boolean | "null" | (optional) Direction of the frame | +| [time] | integer | "null" | (optional) Exposure time, 0 = minimum | +| [delay] | integer | "null" | (optional) Delay after frame before another can be started | diff --git a/lib/intval/index.js b/lib/intval/index.js index 35481b6..c3f31e0 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -118,17 +118,21 @@ class Intval { } /** * Intval._watchMicro() - - * Callback for watching microswitch state changes - * Using GPIO 06 on raspberry pi zero w + * Callback for watching relese switch state changes. + * Using GPIO 06 on Raspberry Pi Zero W. + * * If closed, start timer. + * * If opened, check timer AND + * + * Microswitch + 10K ohm resistor + * * 1 === open + * * 0 === closed + * * * @param {object} err Error object present if problem reading pin * @param {integer} val Current value of the pin * */ _watchMicro (err, val) { - /* Microswitch + 10K ohm resistor */ - /* 1 = open */ - /* 0 = closed */ if (err) { console.error(err) } @@ -137,12 +141,17 @@ class Intval { } /** * Intval._watchRelease() - - * Callback for watching relese switch state changes - * Using GPIO 05 on raspberry pi zero w - * * If closed, start timer. - * * If opened, check timer AND - * * If time closed longer than minimum and less than `this._releaseSequence`, start frame - * * If time closed longer than `this._releaseSequence`, start sequence + * Callback for watching relese switch state changes. + * Using GPIO 05 on Raspberry Pi Zero W. + * + * 1) If closed, start timer. + * 2) If opened, check timer AND + * 3) If `press` (`NOW - this._state.release.time`) greater than minimum and less than `this._releaseSequence`, start frame + * 4) If `press` greater than `this._releaseSequence`, start sequence + * + * Button + 10K ohm resistor + * * 1 === open + * * 0 === closed * * @param {object} err Error object present if problem reading pin * @param {integer} val Current value of the pin @@ -151,9 +160,6 @@ class Intval { _watchRelease (err, val) { const NOW = +new Date() let press = 0 - /* Button + 10K ohm resistor */ - /* 1 = open */ - /* 0 = closed */ if (err) { return console.error(err) } @@ -188,9 +194,9 @@ class Intval { * Intval.frame() - * Begin a single frame with set variables or defaults * - * @param {boolean} dir (optional) Direction of the frame - * @param {integer} time (optional) Exposure time, 0 = minimum - * @param {delay} delay (optional) Delay after frame before another can be started + * @param {?boolean} [dir="null"] (optional) Direction of the frame + * @param {?integer} [time="null"] (optional) Exposure time, 0 = minimum + * @param {?integer} [delay="null"] (optional) Delay after frame before another can be started * */ frame (dir = null, time = null, delay = null) { //may be overloaded, delay is suspect -- 2.40.1 From aadf6aef3758c618b0fc63f1abb87bc136dd1ac5 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 19 Sep 2017 15:23:48 -0400 Subject: [PATCH 37/62] Remove extra function name from docs jsdoc does this well enough without repeating. Does not actually improve readability in code --- lib/blootstrap/Readme.md | 1 - lib/blootstrap/index.js | 1 - lib/intval/Readme.md | 8 -------- lib/intval/index.js | 12 ++---------- lib/onoffsim/Readme.md | 1 - lib/onoffsim/index.js | 1 - lib/wifi/Readme.md | 7 ------- lib/wifi/index.js | 7 ------- 8 files changed, 2 insertions(+), 36 deletions(-) diff --git a/lib/blootstrap/Readme.md b/lib/blootstrap/Readme.md index e1b720a..a96ceb5 100644 --- a/lib/blootstrap/Readme.md +++ b/lib/blootstrap/Readme.md @@ -7,7 +7,6 @@ Class representing the bluetooth interface ### blootstrap.on(eventName, callback) -Blootstrap.on() - Binds functions to events that are triggered by BLE messages **Kind**: instance method of [Blootstrap](#Blootstrap) diff --git a/lib/blootstrap/index.js b/lib/blootstrap/index.js index 445086b..33e7fb0 100644 --- a/lib/blootstrap/index.js +++ b/lib/blootstrap/index.js @@ -26,7 +26,6 @@ class Blootstrap { }) } /** - * Blootstrap.on() - * Binds functions to events that are triggered by BLE messages * * @param {string} eventName Name of the event to to bind diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index e893021..3d4ed58 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -18,14 +18,12 @@ Class representing the intval3 features ### intval._declarePins() -Intval._declarePins() - (internal function) Declares all Gpio pins that will be used **Kind**: instance method of [Intval](#Intval) ### intval._undeclarePins() -Intval._undeclarePins() - (internal function) Undeclares all Gpio in event of uncaught error that interupts the node process @@ -33,28 +31,24 @@ that interupts the node process ### intval._startFwd() -Intval._startFwd() - Start motor in forward direction by setting correct pins in h-bridge **Kind**: instance method of [Intval](#Intval) ### intval._startBwd() -Intval._startBwd() - Start motor in backward direction by setting correct pins in h-bridge **Kind**: instance method of [Intval](#Intval) ### intval._stop() -Intval._stop() - Stop motor by setting both motor pins to 0 (LOW) **Kind**: instance method of [Intval](#Intval) ### intval._watchMicro(err, val) -Intval._watchMicro() - Callback for watching relese switch state changes. Using GPIO 06 on Raspberry Pi Zero W. * If closed, start timer. @@ -74,7 +68,6 @@ Microswitch + 10K ohm resistor ### intval._watchRelease(err, val) -Intval._watchRelease() - Callback for watching relese switch state changes. Using GPIO 05 on Raspberry Pi Zero W. @@ -97,7 +90,6 @@ Button + 10K ohm resistor ### intval.frame([dir], [time], [delay]) -Intval.frame() - Begin a single frame with set variables or defaults **Kind**: instance method of [Intval](#Intval) diff --git a/lib/intval/index.js b/lib/intval/index.js index c3f31e0..b0b7c4f 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -55,7 +55,6 @@ class Intval { process.on('SIGINT', this._undeclarePins) } /** - * Intval._declarePins() - * (internal function) Declares all Gpio pins that will be used * */ @@ -69,8 +68,7 @@ class Intval { console.dir(this._pin) this._pin.release.watch(this._watchRelease) } - /** - * Intval._undeclarePins() - + /** * (internal function) Undeclares all Gpio in event of uncaught error * that interupts the node process * @@ -82,7 +80,6 @@ class Intval { this._pin.release.unexport() } /** - * Intval._startFwd() - * Start motor in forward direction by setting correct pins in h-bridge * */ @@ -92,7 +89,6 @@ class Intval { //start high-cpu watch } /** - * Intval._startBwd() - * Start motor in backward direction by setting correct pins in h-bridge * */ @@ -100,8 +96,7 @@ class Intval { this._pin.fwd.set(0) this._pin.bwd.set(1) } - /** - * Intval._stop() - + /** * Stop motor by setting both motor pins to 0 (LOW) * */ @@ -117,7 +112,6 @@ class Intval { this._state.frame.active = false } /** - * Intval._watchMicro() - * Callback for watching relese switch state changes. * Using GPIO 06 on Raspberry Pi Zero W. * * If closed, start timer. @@ -140,7 +134,6 @@ class Intval { //determine when to stop } /** - * Intval._watchRelease() - * Callback for watching relese switch state changes. * Using GPIO 05 on Raspberry Pi Zero W. * @@ -191,7 +184,6 @@ class Intval { this._state.dir = val } /** - * Intval.frame() - * Begin a single frame with set variables or defaults * * @param {?boolean} [dir="null"] (optional) Direction of the frame diff --git a/lib/onoffsim/Readme.md b/lib/onoffsim/Readme.md index b2bc825..144b474 100644 --- a/lib/onoffsim/Readme.md +++ b/lib/onoffsim/Readme.md @@ -7,7 +7,6 @@ Object representing a fake onoff Gpio class ### onoffsim.Gpio(no, dir, additional) ⇒ object -Gpio() - Returns a Gpio class in the case of running on a dev machine **Kind**: static method of [onoffsim](#onoffsim) diff --git a/lib/onoffsim/index.js b/lib/onoffsim/index.js index dba05d1..7fac81f 100644 --- a/lib/onoffsim/index.js +++ b/lib/onoffsim/index.js @@ -3,7 +3,6 @@ /** Object representing a fake onoff Gpio class */ const onoffsim = { /** - * Gpio() - * Returns a Gpio class in the case of running on a dev machine * * @param {integer} no Number of the GPIO pin diff --git a/lib/wifi/Readme.md b/lib/wifi/Readme.md index 7d4ef84..af31581 100644 --- a/lib/wifi/Readme.md +++ b/lib/wifi/Readme.md @@ -17,7 +17,6 @@ Class representing the wifi features ### wifi.list(callback) -Wifi.list() - List available wifi access points **Kind**: instance method of [Wifi](#Wifi) @@ -29,7 +28,6 @@ List available wifi access points ### wifi._readConfigCb(err, data) -Wifi._readConfigCb() - (internal function) Invoked after config file is read, then invokes file write on the config file @@ -43,7 +41,6 @@ then invokes file write on the config file ### wifi._writeConfigCb(err) -Wifi._writeConfigCb() - (internal function) Invoked after config file is written, then executes reconfiguration command @@ -56,7 +53,6 @@ then executes reconfiguration command ### wifi._reconfigureCb(err, stdout, stderr) -Wifi._reconfigureCb() - (internal function) Invoked after reconfiguration command is complete **Kind**: instance method of [Wifi](#Wifi) @@ -70,7 +66,6 @@ Wifi._reconfigureCb() - ### wifi._refreshCb(err, stdout, stderr) -Wifi._refreshCb() - (internal function) Invoked after wifi refresh command is complete **Kind**: instance method of [Wifi](#Wifi) @@ -84,7 +79,6 @@ Wifi._refreshCb() - ### wifi.setNetwork(ssid, pwd, callback) -Wifi.setNetwork() - Function which initializes the processes for adding a wifi access point authentication **Kind**: instance method of [Wifi](#Wifi) @@ -98,7 +92,6 @@ Function which initializes the processes for adding a wifi access point authenti ### wifi.getNetwork(callback) -Wifi.getNetwork() - Executes command which gets the currently connected network **Kind**: instance method of [Wifi](#Wifi) diff --git a/lib/wifi/index.js b/lib/wifi/index.js index 22096b6..513062a 100644 --- a/lib/wifi/index.js +++ b/lib/wifi/index.js @@ -20,7 +20,6 @@ class Wifi { this._ssid = null } /** - * Wifi.list() - * List available wifi access points * * @param {function} callback Function which gets invoked after list is returned @@ -45,7 +44,6 @@ class Wifi { }) } /** - * Wifi._readConfigCb() - * (internal function) Invoked after config file is read, * then invokes file write on the config file * @@ -66,7 +64,6 @@ class Wifi { fs.writeFile(filePath, data, 'utf8', this._writeConfigCb) } /** - * Wifi._writeConfigCb() - * (internal function) Invoked after config file is written, * then executes reconfiguration command * @@ -80,7 +77,6 @@ class Wifi { exec(reconfigure, this._reconfigureCb) } /** - * Wifi._reconfigureCb() - * (internal function) Invoked after reconfiguration command is complete * * @param {object} err (optional) Error object only present if configuration command fails @@ -96,7 +92,6 @@ class Wifi { exec(refresh, this._refreshCb) } /** - * Wifi._refreshCb() - * (internal function) Invoked after wifi refresh command is complete * * @param {object} err (optional) Error object only present if refresh command fails @@ -113,7 +108,6 @@ class Wifi { this._callback = () => {} } /** - * Wifi.setNetwork() - * Function which initializes the processes for adding a wifi access point authentication * * @param {string} ssid SSID of network to configure @@ -127,7 +121,6 @@ class Wifi { fs.readFile(filePath, 'utf8', this._readConfigCb) } /** - * Wifi.getNetwork() - * Executes command which gets the currently connected network * * @param {function} callback Function which is invoked after command is completed -- 2.40.1 From bc077a24a1f63259cadf2138ba16208e9ae42b30 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Tue, 19 Sep 2017 15:40:42 -0400 Subject: [PATCH 38/62] Document remaining functions in lib/intval --- lib/intval/Readme.md | 21 +++++++++++++++++++++ lib/intval/index.js | 12 ++++++++++++ 2 files changed, 33 insertions(+) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index 3d4ed58..c58b565 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -13,7 +13,9 @@ Class representing the intval3 features * [._stop()](#Intval+_stop) * [._watchMicro(err, val)](#Intval+_watchMicro) * [._watchRelease(err, val)](#Intval+_watchRelease) + * [.setDir([dir])](#Intval+setDir) * [.frame([dir], [time], [delay])](#Intval+frame) + * [.sequence()](#Intval+sequence) @@ -87,6 +89,19 @@ Button + 10K ohm resistor | err | object | Error object present if problem reading pin | | val | integer | Current value of the pin | + + +### intval.setDir([dir]) +Set the default direction of the camera. +* forward = true +* backward = false + +**Kind**: instance method of [Intval](#Intval) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [dir] | boolean | true | Direction of the camera | + ### intval.frame([dir], [time], [delay]) @@ -100,3 +115,9 @@ Begin a single frame with set variables or defaults | [time] | integer | "null" | (optional) Exposure time, 0 = minimum | | [delay] | integer | "null" | (optional) Delay after frame before another can be started | + + +### intval.sequence() +Start a sequence of frames, using defaults or explicit instructions + +**Kind**: instance method of [Intval](#Intval) diff --git a/lib/intval/index.js b/lib/intval/index.js index b0b7c4f..35cb4ea 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -177,6 +177,14 @@ class Intval { } } } + /** + * Set the default direction of the camera. + * * forward = true + * * backward = false + * + * @param {boolean} [dir=true] Direction of the camera + * + */ setDir (val = true) { if (typeof val !== 'boolean') { return console.warn('Direction must be represented as either true or false') @@ -231,6 +239,10 @@ class Intval { } } } + /** + * Start a sequence of frames, using defaults or explicit instructions + * + */ sequence () { console.log(`Started sequence`) } -- 2.40.1 From aaef150f8a9a9f352bca68229d14ba65a089e1e0 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 22 Sep 2017 00:29:31 -0400 Subject: [PATCH 39/62] Begin microswitch test logic --- tests/gpio.js | 100 +++++++++++++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 37 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index ac46e7c..ccd8e5c 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -6,44 +6,70 @@ const btn = Gpio(5, 'in', 'both') console.log('Watching input on GPIO 05') -let saveTime = 0 -let active = false -btn.watch((err, val) => { - const NOW = +new Date() - /* Button + 10K ohm resistor */ - /* 1 = open */ - /* 0 = closed */ - if (err) { - return console.error(err) - } - console.log(`Release switch val: ${val}`) - if (val === 1) { - //console.log('open') - } else if (val === 0) { - //console.log('closed') - } - if (val === 0) { - if ((!active && saveTime === 0) || (active && NOW - saveTime > 10 * 1000)) { - saveTime = NOW - active = true //maybe unncecessary - } else { - //saveTime = 0 - //active = false +function releaseTest () { + let saveTime = 0 + let active = false + btn.watch((err, val) => { + const NOW = +new Date() + /* Button + 10K ohm resistor */ + /* 1 = open */ + /* 0 = closed */ + if (err) { + return console.error(err) } - } else if (val === 1) { - if (active) { - if (NOW - saveTime > 50 && NOW - saveTime < 1000) { - console.log('Started Frame') - } else if (NOW - saveTime >= 1000) { - console.log('Started Sequence') + console.log(`Release switch val: ${val}`) + if (val === 0) { + //console.log('closed') + } else if (val === 1) { + //console.log('open') + } + if (val === 0) { + //closed + if ((!active && saveTime === 0) || (active && NOW - saveTime > 10 * 1000)) { + saveTime = NOW + active = true //maybe unncecessary + } else { + //saveTime = 0 + //active = false + } + } else if (val === 1) { + //open + if (active) { + if (NOW - saveTime > 50 && NOW - saveTime < 1000) { + console.log('Started Frame') + } else if (NOW - saveTime >= 1000) { + console.log('Started Sequence') + } + console.log(`Release closed for ${NOW - saveTime}`) + saveTime = 0 + active = false } - console.log(`Release closed for ${NOW - saveTime}`) - saveTime = 0 - active = false } - } -}) + }) +} -/*setInterval(() => { - console.log(btn.readSync()) -}, 1000)*/ \ No newline at end of file +function microTest () { + let saveTime = 0 + let active = false //this._state.active + let primed = false //this._state.primed + btn.watch((err, val) => { + const NOW = +new Date() + if (err) { + return console.error(err) + } + console.log(`Micro switch val: ${val}`) + if (val === 0) { + //console.log('closed') + } else if (val === 1) { + //console.log('open') + } + if (val === 0) { + //console.log('closed') + } else if (val === 1) { + //console.log('open') + } + }) +} + +//releaseTest() +microTest() \ No newline at end of file -- 2.40.1 From 31a5b315bd59231f42201a55806fe4b7ee3918ba Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 08:53:48 -0400 Subject: [PATCH 40/62] Try out microswitch logic --- lib/intval/index.js | 21 ++++++++++++++------- tests/gpio.js | 29 ++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 35cb4ea..b3659f3 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -37,16 +37,20 @@ class Intval { this._state = { dir : true, //forward frame : { - start : 0, - active : false, - time : 0, - delay : 0, - val : 0, - expected : 0 + start : 0, //time frame started, timestamp + active : false, //should frame be running + time : 0, //length of frame, in ms + delay : 0, //delay before start of frame, in ms + + expected : 0 //expected length of frame, in ms }, release : { time: 0, - active : false + active : false //is pressed + }, + micro : { + time : 0, + primed : false //is ready to stop frame } } this._releaseMin = 50 @@ -110,6 +114,7 @@ class Intval { this._pin.micro.unwatch() this._state.frame.active = false + this._state.frame.start = 0 } /** * Callback for watching relese switch state changes. @@ -158,12 +163,14 @@ class Intval { } console.log(`Release switch val: ${val}`) if (val === 0) { + //closed if ((!this._state.release.active && this._state.release.time === 0) || (this._state.release.active && (NOW - this._state.release.time) > (this._releaseSequence * 10)) ) { this._state.release.time = NOW this._state.release.active = true //maybe unncecessary } } else if (val === 1) { + //opened if (this._state.release.active) { press = NOW - this._state.release.time if (press > this._releaseMin && press < this._releaseSequence) { diff --git a/tests/gpio.js b/tests/gpio.js index ccd8e5c..46342d3 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -2,11 +2,10 @@ const Gpio = require('onoff').Gpio -const btn = Gpio(5, 'in', 'both') - -console.log('Watching input on GPIO 05') - function releaseTest () { + const PIN = 5 + const btn = Gpio(PIN, 'in', 'both') + console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 let active = false btn.watch((err, val) => { @@ -49,8 +48,11 @@ function releaseTest () { } function microTest () { + const PIN = 5 + const btn = Gpio(PIN, 'in', 'both') + console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 - let active = false //this._state.active + let frameActive = true //this._state.frame.active let primed = false //this._state.primed btn.watch((err, val) => { const NOW = +new Date() @@ -63,10 +65,19 @@ function microTest () { } else if (val === 1) { //console.log('open') } - if (val === 0) { - //console.log('closed') - } else if (val === 1) { - //console.log('open') + if (val === 0 && frameActive) { + if (!primed) { + primed = true + saveTime = NOW + console.log('Primed') + } + } else if (val === 1 && frameActive) { + if (primed) { + primed = false + setTimeout( () => { + console.log(`Stop Frame after ${NOW - saveTime}`) + }, 10) + } } }) } -- 2.40.1 From f419bcd36ee8675bb2583da6ef593b131c68c7cc Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 08:56:29 -0400 Subject: [PATCH 41/62] Test microswitch on pin 6 --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 46342d3..3d1812d 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -48,7 +48,7 @@ function releaseTest () { } function microTest () { - const PIN = 5 + const PIN = 6 const btn = Gpio(PIN, 'in', 'both') console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 -- 2.40.1 From bde21e9ac75c554cdf8ec85681df2b9444314c8d Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 17:56:13 -0400 Subject: [PATCH 42/62] Test setting output pin high --- tests/gpio.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 3d1812d..6519f3f 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -82,5 +82,18 @@ function microTest () { }) } +//test stepping up of 3.3V RPI logic via +//Sparkfun PRT-10967 (NPC1402) +function stepupTest () { + const FWD = 13 + const BWD = 19 + const fwd = Gpio(FWD, 'out') + const bwd = Gpio(BWD, 'out') + + console.log(`Setting pin ${FWD} high`) + fwd.set(1) +} + //releaseTest() -microTest() \ No newline at end of file +//microTest() +stepupTest() \ No newline at end of file -- 2.40.1 From ef1a793a08fa3df11c3ec51689efa0b5574ca0d6 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 17:58:16 -0400 Subject: [PATCH 43/62] WriteSync, not set --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 6519f3f..36a0e5a 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -91,7 +91,7 @@ function stepupTest () { const bwd = Gpio(BWD, 'out') console.log(`Setting pin ${FWD} high`) - fwd.set(1) + fwd.writeSync(1) } //releaseTest() -- 2.40.1 From 68e49e2e220b1101c4839c7bbfc9a9f4c40e8045 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 17:59:55 -0400 Subject: [PATCH 44/62] Test all together, watch and writeSync --- tests/gpio.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 36a0e5a..633a120 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -94,6 +94,6 @@ function stepupTest () { fwd.writeSync(1) } -//releaseTest() -//microTest() +releaseTest() +microTest() stepupTest() \ No newline at end of file -- 2.40.1 From d7671b15aba9f73e1dea8b9f8d9c5dc243437907 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 18:59:24 -0400 Subject: [PATCH 45/62] Using pin 33 instead of 13 Per this thread https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=71247 --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 633a120..3c1a705 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -85,7 +85,7 @@ function microTest () { //test stepping up of 3.3V RPI logic via //Sparkfun PRT-10967 (NPC1402) function stepupTest () { - const FWD = 13 + const FWD = 33 // RPIO PIN 13 const BWD = 19 const fwd = Gpio(FWD, 'out') const bwd = Gpio(BWD, 'out') -- 2.40.1 From 8f8785c4fb844e4559191e867889c8332a4fd4d3 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 19:02:48 -0400 Subject: [PATCH 46/62] No idea why I believed that comment Trying gpis 18 --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 3c1a705..1e1cb8f 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -85,7 +85,7 @@ function microTest () { //test stepping up of 3.3V RPI logic via //Sparkfun PRT-10967 (NPC1402) function stepupTest () { - const FWD = 33 // RPIO PIN 13 + const FWD = 18 // RPIO PIN 13 const BWD = 19 const fwd = Gpio(FWD, 'out') const bwd = Gpio(BWD, 'out') -- 2.40.1 From 31deef9ada1cd13190d91c462487270988fcb344 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Sep 2017 19:06:32 -0400 Subject: [PATCH 47/62] Still reading 1.6V on GPIO pin set high Possibly damaged pin 18 --- tests/gpio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 1e1cb8f..99f9fad 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -85,7 +85,7 @@ function microTest () { //test stepping up of 3.3V RPI logic via //Sparkfun PRT-10967 (NPC1402) function stepupTest () { - const FWD = 18 // RPIO PIN 13 + const FWD = 13 // RPIO PIN 13 const BWD = 19 const fwd = Gpio(FWD, 'out') const bwd = Gpio(BWD, 'out') -- 2.40.1 From ef130b3939317fea3a2263f6ca2f08e8b982b9d5 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 15:06:04 -0400 Subject: [PATCH 48/62] Set motor pins to low on SIGINT --- tests/gpio.js | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/tests/gpio.js b/tests/gpio.js index 99f9fad..78cd34b 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -2,13 +2,29 @@ const Gpio = require('onoff').Gpio +let release +let micro +let fwd +let bwd + +process.on('SIGINT', () => { + if (fwd && fwd.writeSync) { + console.log(`Setting fwd to 0`) + fwd.writeSync(0) + } + if (bwd && bwd.writeSync) { + console.log(`Setting bwd to 0`) + bwd.writeSync(0) + } +}) + function releaseTest () { - const PIN = 5 - const btn = Gpio(PIN, 'in', 'both') + const PIN = 6 + release = Gpio(PIN, 'in', 'both') console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 let active = false - btn.watch((err, val) => { + release.watch((err, val) => { const NOW = +new Date() /* Button + 10K ohm resistor */ /* 1 = open */ @@ -48,13 +64,13 @@ function releaseTest () { } function microTest () { - const PIN = 6 - const btn = Gpio(PIN, 'in', 'both') + const PIN = 5 + micro = Gpio(PIN, 'in', 'both') console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 let frameActive = true //this._state.frame.active let primed = false //this._state.primed - btn.watch((err, val) => { + micro.watch((err, val) => { const NOW = +new Date() if (err) { return console.error(err) @@ -83,17 +99,18 @@ function microTest () { } //test stepping up of 3.3V RPI logic via -//Sparkfun PRT-10967 (NPC1402) +//Sparkfun PRT-10968 (NPC1402) function stepupTest () { const FWD = 13 // RPIO PIN 13 const BWD = 19 - const fwd = Gpio(FWD, 'out') - const bwd = Gpio(BWD, 'out') + fwd = Gpio(FWD, 'out') + bwd = Gpio(BWD, 'out') console.log(`Setting pin ${FWD} high`) fwd.writeSync(1) + bwd.writeSync(1) } releaseTest() microTest() -stepupTest() \ No newline at end of file +stepupTest() -- 2.40.1 From 26f3ed4a11235dc01c9a24652a0c01512dbc5588 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 16:05:35 -0400 Subject: [PATCH 49/62] Set bwd to low --- tests/gpio.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/gpio.js b/tests/gpio.js index 78cd34b..dc61de8 100644 --- a/tests/gpio.js +++ b/tests/gpio.js @@ -16,6 +16,7 @@ process.on('SIGINT', () => { console.log(`Setting bwd to 0`) bwd.writeSync(0) } + process.exit() }) function releaseTest () { @@ -108,7 +109,7 @@ function stepupTest () { console.log(`Setting pin ${FWD} high`) fwd.writeSync(1) - bwd.writeSync(1) + bwd.writeSync(0) } releaseTest() -- 2.40.1 From 50262facc2b720bf9297d3cba80274aa0d2a5ac9 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 22:20:26 -0400 Subject: [PATCH 50/62] Intval 3 board prototype Design roughed in fritzing, the pdf pulled into photoshop and hand routed. --- hardware/intval3_0_prototype.psd | Bin 0 -> 651909 bytes hardware/intval3_0_prototype_mask.png | Bin 0 -> 138890 bytes hardware/intval_3_prototype.fzz | Bin 0 -> 9395 bytes .../intval_3_prototype_etch_copper_top.pdf | Bin 0 -> 4756 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 hardware/intval3_0_prototype.psd create mode 100644 hardware/intval3_0_prototype_mask.png create mode 100644 hardware/intval_3_prototype.fzz create mode 100644 hardware/intval_3_prototype_etch_copper_top.pdf diff --git a/hardware/intval3_0_prototype.psd b/hardware/intval3_0_prototype.psd new file mode 100644 index 0000000000000000000000000000000000000000..8743617f737dac2509f634f3595a0633c9371d59 GIT binary patch literal 651909 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
  • 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�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 literal 0 HcmV?d00001 diff --git a/hardware/intval3_0_prototype_mask.png b/hardware/intval3_0_prototype_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..fe7899407b39047de332bda377ebea55f8dc8b55 GIT binary patch literal 138890 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 Cg|1Hk literal 0 HcmV?d00001 diff --git a/hardware/intval_3_prototype.fzz b/hardware/intval_3_prototype.fzz new file mode 100644 index 0000000000000000000000000000000000000000..6eab7573975bae83fc4bd26b6e0171890d1d9a3a GIT binary patch literal 9395 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 literal 0 HcmV?d00001 diff --git a/hardware/intval_3_prototype_etch_copper_top.pdf b/hardware/intval_3_prototype_etch_copper_top.pdf new file mode 100644 index 0000000000000000000000000000000000000000..02acaa28718f20c048f6c08f0edc53308a4de559 GIT binary patch literal 4756 zcmZWt3p~^78+Xd-XiCFT$!!Z2Vl&%}P?<}`B9sv2GR$FPn_N>Vw-OSOxg^JBG!hND zb&-i7$7Q)iCJQ0=iunJgROf%T&pyB3`@GNdyx-^h-u66-<_1Qp>S{=kIs^_OIeCC| zbU-jG0@V`_*|)N)1cG77ctWRAWmjFcJu6c^E<^`|@9K5V#r~0fIR@Le$mZ0Q|$>o`;WGLR=j^DQh~8 zl)oUb<0K;fCmz&y_jbVWR4SfKguo2&=Lybu3uArzb>hNz(9NvZCs88~T*zpAjG#sLif!qHQI^S%4 zYOo|v64}z*(HRfn&y+dV(i_6ZZUKY}y#55e)^=ML7?T|X_#REwseH>iCrW5 zN92HGzN!%r2VaZ-e%j2*1Mj@v{7Ktd418>MkRL4Z!(NALiYK~J-65E72#pAy0JRX9 zktZ-~26$(Z3!d+tLIu{C7sx+#BCWZQTQ3^67znDqG`ixvdcRr-4Eb$S$(Dyg#8knj z`ywX{9S-*Ytv0SgcZv0vAlxjzA=$5?8_~(LDo$~+Tv_qUSS2qn!B|rlKP^vjdp|GA z>B;pCKeSubin&-TKe)85=ElVsy)t^@J8tjj$M)&m=fHPm{L_WyFD;c1muD7=o-dAz zZX@JhVRHga+jSOWvrD<7U^`mw;PRQsi#F59RqYz{E-+G-ykOZ(NH6*b57-v0Tlh?r z_j`@t+aPdlXp_(70*pjVK=+qmtz|CUjQClK5kG3MJk*f-)JunUtgk-PJtc)ccOYbf zUHKdxl77tXAD=hRBw`t6){~#gZl>}2J`i+NM?YLY7~;3`!D*ae%R|3NaJp}t;gNc5 z3uV{mYS(F=+={=@=%ftyk`Zqeeuz9AqCUzmy%lY>U2mCoXLncQ-tgBB= zt%m%wbW}~Vvs=(Dd!=S=O0Q!sEnpNpVs1;ucXx0ZJKDt4gtCvT#faye-(8A8WvHb_ z>Q%>vZ#a}F{v=a1IqH~nV-%c2|Kq_<6*lyDd6Bz~n`7#?JoOx#?mYf!XM_Y%1g7+I zoAip^QN2D?R7hNC+@4`y`?s$e%Q>ZKn7kR~E+3rg6z%vRCA_X1*T#@^c=qSW zgI)Snx0NDN?6vAo=cGLQ^g8xH1v5GZYO2J;i-p$6d>NQJ`04eA=~qR)lya9n%05*x zk*xvw*;};XO9?r{Fs?ukH!e?Wmxf>ooh82YsFGRc3l(hSbG_0FSoqqYn|Q71ew;>6n7eLQ${FQ4%2Z-E>;9c63!$Owp2Sy|1CB`BNo@rG@v3Yi zAG3L~mu|ZIksDc2?+QRrwSY6#ogD=wv_SeP%c;Mzj{ChdP0$A?>1@&<%lhPje!)zD z(sK6??Y84Q!QeYxHRo*^Id3f6FnCdZh<1-sw1>>YAs&ONneg5~oi^~4{%K2nDg84p zvn^>$@`|$C?%oFxUU-bDx@GA{0@&ghr*Seq`>AJ zpkEPQ)OPh#l0){A)tWDIjCpOjusfFl(*!T)Q(`0^cPy}Yzb!yhY^a?5{(2MaC6n>_ zr}HbXS!~bt3nJCD+kRMP&SX$@_2TxVx%UBcqi2vB=6E4*LiIT#nvrxqUH+#Fr?V>c zO>7+{=>Q$#`3|ZL^lKj6Kv`k9EeNKfz^*ns>p&Je87^QfE383r7$WTYi)~vzc(8%{`rZj>aS@IIiqhI8ftWmg##)F!+;A~mgQqBB4;4chJBOb`&->>< zDQ8t|B{oP0qz^1BQ`i0i718(;nA%+oW9udkM=t zV;oe4R9JjO$mfI)cQ1-}W<$A?2FI=0p~^rv+A*h2ECOwC?^G5(+=V#@V9V~t$zWVm zfay}~#Z@a5&|?8ux%=-nf(PSp$x6j_nOkq>b-s5+`SPQ;DCqCFoHgI&gqqg|)c1T- z$I0X&1TnTn@DiMf^kce7hX?gh%40f9V=JMPIQHZw>w>aTSZOzLOw|^5p)akx5X^Vq z;Oywy0_f{2c%UBJ;`%$dQQ?A|q-&WD{Y|@Lc!6qCINkCZByM!9>!^2|`

    2YQy9; z8}s=(aCyU~@4LqK2LDX^hkGY{u6>#s(r|yvZzA2n=#;?PauhA_y|oPoryETZ*K$x7 z&gXYsy(4BK-2;wVw?l;|=!B)V_TnyS4kT$o7q0#dwU23&m{LqTPi3mmo(lVU@4x5!sq;_NQ*lDa&s&WDpQ|vu=Ud)0mmA_Rq z_2Fg>#oL%tsMw=j)y?MWc7atnbpAY{nZ`Ghn-jtx%#-K3awKNMm7#!e{qXRZLt|ff zj!viGi_iui4Vkxj<`p086=eUgZgRNm(OqCf61D+w^?;v7c%l|mz^(YHIR6iCy4HI& ztk}0@iz?t9;X*As^@`icvO8Sz^}RpWxAkVHJH0XYiX3GBLjHOj3~`_%VXGz-qE58g zhxNX4C98}Ey%vCd1P!(PW$BbjD!ZD*a{A5y{*QNi(?rC$Iq3+&G6Ai?O8dNIO)EYf z;;zT`ukG6(G)*iDV^cdjeB`CXxXdzypyo?0Z5y0DA5FrKm6ix?@fgdIEebf44baEf z5gYg_XZqX`l&_A_(EDzWu}}}Jpxd~FE0Yj~)%1-@;jd$0k2TAmSqn;Mi(w15jh+wI zaewzi{g+)_%8mmL@}lnHyMXtA=!p#t0iJ5+5}^zs>1r=KNXcD*(>ttZ?9?O-HS9=- zw5o;zaBKX<{EYw%E9;EiN|x;P8VC`km)fYgVMmN`e*s;S7U zQhMsP=!j6sJh2TJmyH?8pO`9!X?A5@ zdF#z@R|)=`a*_N#?4_)EvU6=Ip=Q&QoR*|bf-K=p=QibE6^Q8)b}c2;Wu|BYcf}nj za923YK8peN@l0}2&5@Q_L&;M@XA4B7iv};Pd7s(IZV0H$R2DozDFv=WCNM|YI6m;V z@8Cy1OysoeXcc6cc&zyr>3*^$N;CqorWMDiI}%z}8#TqL z?R#!`uqH&UV%~!ubN%&OE1E^V?*%J0xh30yy|qSdfAHq@Kk($XaSJ%IGWv_zyurYi zpA(_MhoVM;{-nRCs45_WOwNO;KZ zI-lX(;?N{_K{-+3Tj{OV8SfT^cP@v83PZ#fCv-ioamT~LorN2eFYmgY5UFRMS1y1E zh>twfRGcS|6$_5CD_0wt7gP)qZ#$-TiLDoC@)F;>H*rg+1;QmQ<}*UB#3Ei{cN=-X z^2<2*eq}}2$o!*Y3x$>YYg)lD-T>En3*vf#!yq5$k*1n`y1(avgT31*wcB4`t z)AVJ=Vo%JJjqO5Zn)aIuwwzmEZJo4>8f)iX)udNmtHd`0(rE`cbcM3|wA|C}B9jgS(2QD1*AJ3W zQ$BXH6|ub$5B{9QOtnPz?rpaX3NE-&j?+7g>Hqll_+)a3<*oieT6!8$dRA|8u;9+X(N8>3kCC6&9 zdRSFSz1n66N2HrjB9u7)5AXYzjQ+rxSfDm**GFx$+V#@D}H z(b$YUVeQU5wNw#+a+0Hz?NKJ4Pwns96EX6pIuNdf^qT@NE?g;=RpDu7vrP0>l$XvI z6j$MFXDhZhbv(;A@_zUHLiEWA()|j#wu>j_X62?(nn6qQfeJd79Oyik=NUAaE5+)o zC7L@lrkt-$8c7*FJT9Z5C$soff>7!E_~!K47R~Um0l%JCge&GD+9BG@I}&QdWr2#r z_YCuU?SY?-@)J}Iv?gLbwda=`){|DNwR*%_83F_|A-GT=AUhC0_qPDq18FtM7s!j% zf!v!+a<;@%AwbE%zz71f!uwMpu%li;ML_@i6Z>lx?@z|Nf`Hs!9R&aJfuK<+4HU!` z@>2#R`}_}t_(P_S0O|t&mLWBOD#8EB;OglA+9J?EdjD@*xCR`k_57aF`m Date: Sun, 24 Sep 2017 22:27:53 -0400 Subject: [PATCH 51/62] Add log library --- lib/log/Readme.md | 13 +++++++++++++ lib/log/index.js | 22 ++++++++++++++++++++++ lib/wifi/index.js | 1 + 3 files changed, 36 insertions(+) create mode 100644 lib/log/Readme.md create mode 100644 lib/log/index.js diff --git a/lib/log/Readme.md b/lib/log/Readme.md new file mode 100644 index 0000000..61f4e44 --- /dev/null +++ b/lib/log/Readme.md @@ -0,0 +1,13 @@ + + +## createLog(label, filename) ⇒ object +createLog() - Returns a winston logger configured to service + +**Kind**: global function +**Returns**: object - Winston logger + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| label | string | | Label appearing on logger | +| filename | string | null | Optional file to write log to | + diff --git a/lib/log/index.js b/lib/log/index.js new file mode 100644 index 0000000..8527559 --- /dev/null +++ b/lib/log/index.js @@ -0,0 +1,22 @@ +'use strict' + +const winston = require('winston') + +/** +* createLog() - Returns a winston logger configured to service +* +* @param {string} label Label appearing on logger +* @param {string} filename Optional file to write log to +* @returns {object} Winston logger +*/ +function createLog (label, filename = null) { + const transports = [ new (winston.transports.Console)({ label : label }) ] + if (filename !== null) { + transports.push( new (winston.transports.File)({ label : label, filename : filename }) ) + } + return new (winston.Logger)({ + transports: transports + }) +} + +module.exports = createLog \ No newline at end of file diff --git a/lib/wifi/index.js b/lib/wifi/index.js index 513062a..2f236d2 100644 --- a/lib/wifi/index.js +++ b/lib/wifi/index.js @@ -9,6 +9,7 @@ const refresh = '/sbin/ifdown wlan0 && /sbin/ifup --force wlan0' const iwlist = '/sbin/iwlist wlan0 scanning | grep "ESSID:"' const iwgetid = '/sbin/iwgetid' +const log = require('../log')('wifi') const exec = require('child_process').exec const fs = require('fs') -- 2.40.1 From a9f2040f3f356cd7a2a26036a5115a5ce798081e Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 22:28:06 -0400 Subject: [PATCH 52/62] Squash errors on connect (for dev) --- lib/blootstrap/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/blootstrap/index.js b/lib/blootstrap/index.js index 33e7fb0..749c88a 100644 --- a/lib/blootstrap/index.js +++ b/lib/blootstrap/index.js @@ -23,6 +23,11 @@ class Blootstrap { ipc.of.blootstrap_ble.on('disconnect', () => { ipc.log(`Disconnected from the blootstrap_ble service`) }) + ipc.of.blootstrap_ble.on('error', (err) => { + if (err.code === 'EACCES') { + console.log(`Cannot access ipc`) + } + }) }) } /** -- 2.40.1 From 50a335af95c0b6816126ddfddbba8f6eaa1dcb99 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 22:28:26 -0400 Subject: [PATCH 53/62] Add log library and microswitch logic --- lib/intval/index.js | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index b3659f3..463c1bf 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -1,5 +1,7 @@ 'use strict' +const log = require('../log')('intval') + let Gpio try { Gpio = require('onoff').Gpio @@ -42,7 +44,7 @@ class Intval { time : 0, //length of frame, in ms delay : 0, //delay before start of frame, in ms - expected : 0 //expected length of frame, in ms + expected : 1000 //expected length of frame, in ms }, release : { time: 0, @@ -55,6 +57,7 @@ class Intval { } this._releaseMin = 50 this._releaseSequence = 1000 + this._microDelay = 10 // delay after stop signal before stopping motors this._declarePins() process.on('SIGINT', this._undeclarePins) } @@ -88,8 +91,8 @@ class Intval { * */ _startFwd () { - this._pin.fwd.set(1) - this._pin.bwd.set(0) + this._pin.fwd.writeSync(1) + this._pin.bwd.writeSync(0) //start high-cpu watch } /** @@ -97,16 +100,16 @@ class Intval { * */ _startBwd () { - this._pin.fwd.set(0) - this._pin.bwd.set(1) + this._pin.fwd.writeSync(0) + this._pin.bwd.writeSync(1) } /** * Stop motor by setting both motor pins to 0 (LOW) * */ _stop () { - this._pin.fwd.set(0) - this._pin.bwd.set(0) + this._pin.fwd.writeSync(0) + this._pin.bwd.writeSync(0) let len = (+new Date()) - this._state.frame.start @@ -119,8 +122,9 @@ class Intval { /** * Callback for watching relese switch state changes. * Using GPIO 06 on Raspberry Pi Zero W. - * * If closed, start timer. - * * If opened, check timer AND + * + * 1) If closed AND frame active, start timer, set state primed to `true`. + * 1) If opened AND frame active, stop frame * * Microswitch + 10K ohm resistor * * 1 === open @@ -132,11 +136,26 @@ class Intval { * */ _watchMicro (err, val) { + const NOW = +new Date() if (err) { console.error(err) } - this._state.frame.val = val //determine when to stop + if (val === 0 && this._state.frame.active) { + if (!this._state.micro.primed) { + this._state.micro.primed = true + this._state.micro.time = NOW + console.log('Mircoswitch primed to stop motor') + } + } else if (val === 1 && this._state.frame.active) { + if (this._state.micro.primed) { + this._state.micro.primed = false + this._state.micro.time = 0 + setTimeout( () => { + console.log(`Stopped frame after ${NOW - this._state.micro.time}ms`) + }, this._microDelay) + } + } } /** * Callback for watching relese switch state changes. @@ -178,7 +197,7 @@ class Intval { } else if (press >= this._releaseSequence) { this.sequence() } - console.log(`Release closed for ${press}`) + console.log(`Release closed for ${press}ms`) this._state.release.time = 0 this._state.release.active = false } -- 2.40.1 From 4ec3cf422b3cdf1c33c9ba76a9e6c20b6bd56fef Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 24 Sep 2017 22:28:46 -0400 Subject: [PATCH 54/62] Document intval lib logic for microswitch watcher --- lib/intval/Readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index c58b565..70b8b9f 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -53,8 +53,9 @@ Stop motor by setting both motor pins to 0 (LOW) ### intval._watchMicro(err, val) Callback for watching relese switch state changes. Using GPIO 06 on Raspberry Pi Zero W. -* If closed, start timer. -* If opened, check timer AND + +1) If closed AND frame active, start timer, set state primed to `true`. +1) If opened AND frame active, stop frame Microswitch + 10K ohm resistor * 1 === open -- 2.40.1 From a5b4ef2149eed994126bd30dc0dd0e840f6001e7 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:25:15 -0400 Subject: [PATCH 55/62] Import mscript library from mcopy Refactored into es6 style, intention is to extend it to accept delays in looping logic --- lib/mscript/Readme.md | 35 ++++ lib/mscript/index.js | 441 ++++++++++++++++++++++++++++++++++++++++++ tests/mscript.js | 169 ++++++++++++++++ 3 files changed, 645 insertions(+) create mode 100644 lib/mscript/Readme.md create mode 100644 lib/mscript/index.js create mode 100644 tests/mscript.js diff --git a/lib/mscript/Readme.md b/lib/mscript/Readme.md new file mode 100644 index 0000000..611eefa --- /dev/null +++ b/lib/mscript/Readme.md @@ -0,0 +1,35 @@ + + +## mscript +Object representing mscript parser + +**Kind**: global constant + +* [mscript](#mscript) + * [.arg(shrt, lng)](#mscript.arg) + * [.arg_pos(shrt, lng)](#mscript.arg_pos) + + + +### mscript.arg(shrt, lng) +Determine whether or not argument flag has been set + +**Kind**: static method of [mscript](#mscript) + +| Param | Type | Description | +| --- | --- | --- | +| shrt | string | Short flag name (ie `-a`) | +| lng | string | Long flag name (ie `--apple`) | + + + +### mscript.arg_pos(shrt, lng) +Determine position of flag, in argument array + +**Kind**: static method of [mscript](#mscript) + +| Param | Type | Description | +| --- | --- | --- | +| shrt | string | Short flag name (ie `-a`) | +| lng | string | Long flag name (ie `--apple`) | + diff --git a/lib/mscript/index.js b/lib/mscript/index.js new file mode 100644 index 0000000..c12700e --- /dev/null +++ b/lib/mscript/index.js @@ -0,0 +1,441 @@ +'use strict' + +let fs +let input; + +/** Object representing mscript parser */ +const mscript = {} + +/** +* Determine whether or not argument flag has been set +* +* +* @param {string} shrt Short flag name (ie `-a`) +* @param {string} lng Long flag name (ie `--apple`) +* +*/ +mscript.arg = function arg (shrt, lng) { + if (process.argv.indexOf(shrt) !== -1 || + process.argv.indexOf(lng) !== -1) { + return true + } + return false +} +/** +* Determine position of flag, in argument array +* +* +* @param {string} shrt Short flag name (ie `-a`) +* @param {string} lng Long flag name (ie `--apple`) +* +*/ +mscript.arg_pos = function arg_pos (shrt, lng) { + let pos = process.argv.indexOf(shrt) + if (pos === -1) { + pos = process.argv.indexOf(lng) + } + return pos +} + +mscript.black = '0,0,0' + +mscript.cmd = [ + 'CF', + 'PF', + 'BF', + 'CB', + 'PB', + 'BB', + 'D' +] +mscript.alts = { + 'CF' : ['CAMERA FORWARD', 'CAM FORWARD', 'C'], + 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'P'], + 'BF' : ['BLACK FORWARD'], + 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], + 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], + 'BB' : ['BLACK BACKWARD', 'BLACK BACK'], + 'L ' : ['LIGHT', 'COLOR', 'LAMP'] +} + +mscript.state = {} +//TODO: This will memory leak +mscript.state_clear = function state_clear () { + mscript.state = { + cam : 0, + proj : 0, + color : '', + loops : [], + rec : -1 + } +} + +mscript.alts_unique = function alts_unique () { + const ids = Object.keys(mscript.alts) + const all = [] + for (let i = 0; i < ids.length; i++) { + if (all.indexOf(ids[i]) === -1) { + all.push(ids[i]) + } else { + mscript.fail(1, "Can't parse") + } + } +} + +mscript.interpret = function interpret (text, callback) { + mscript.state_clear() + if (typeof text === 'undefined') { + mscript.fail(2, 'No input') + } + const lines = text.split('\n') + const arr = [] + const light = [] + const output = {} + + let two = '' + let target = 0 + let dist = 0 //? + let x + + //loop through all lines + for (let line of lines) { + //preprocess line + line = mscript.preprocess(line) + two = line.substring(0, 2) + + if (mscript.cmd.indexOf(two) !== -1) { + if (mscript.state.loops.length > 0) { + //hold generated arr in state loop array + mscript.state.loops[mscript.state.rec].arr.push.apply(mscript.state.loops[mscript.state.rec].arr, mscript.str_to_arr(line, two)) + mscript.state.loops[mscript.state.rec].light.push.apply(mscript.state.loops[mscript.state.rec].light, mscript.light_to_arr(line, two)) + } else { + arr.push.apply(arr, mscript.str_to_arr(line, two)) + light.push.apply(light, mscript.light_to_arr(line, two)) + } + + } else if (line.substring(0, 4) === 'LOOP') { + mscript.state.rec++ + mscript.state.loops[mscript.state.rec] = { + arr : [], + light : [], + cam : 0, + proj : 0, + cmd : line + '' + } + } else if (line.substring(0, 2) === 'L ') { + mscript.light_state(line) + } else if (line.substring(0, 3) === 'END') { + for (x = 0; x < mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd); x++) { + if (mscript.state.rec === 0) { + arr.push.apply(arr, mscript.state.loops[mscript.state.rec].arr); + light.push.apply(light, mscript.state.loops[mscript.state.rec].light); + } else if (mscript.state.rec >= 1) { + mscript.state.loops[mscript.state.rec - 1].arr.push.apply(mscript.state.loops[mscript.state.rec - 1].arr, mscript.state.loops[mscript.state.rec].arr) + mscript.state.loops[mscript.state.rec - 1].light.push.apply(mscript.state.loops[mscript.state.rec - 1].light, mscript.state.loops[mscript.state.rec].light) + } + } + mscript.state_update('END', mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd)); + delete mscript.state.loops[mscript.state.rec] + mscript.state.rec-- + } else if (line.substring(0, 3) === 'CAM') { //directly go to that frame (black?) + target = parseInt(line.split('CAM ')[1]) + if (mscript.state.loops.length > 0) { + if (target > mscript.state.cam) { + dist = target - mscript.state.cam + for (x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('BF') + mscript.state.loops[mscript.state.rec].light.push(mscript.black) + mscript.state_update('BF') + } + } else { + dist = mscript.state.cam - target + for (x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('BB') + mscript.state.loops[mscript.state.rec].light.push(mscript.black) + mscript.state_update('BB') + } + } + } else { + if (target > mscript.state.cam) { + dist = target - mscript.state.cam + for (x = 0; x < dist; x++) { + arr.push('BF') + light.push(mscript.black) + mscript.state_update('BF') + } + } else { + dist = mscript.state.cam - target + for (x = 0; x < dist; x++) { + arr.push('BB') + light.push(mscript.black) + mscript.state_update('BB') + } + } + } + } else if (line.substring(0, 4) === 'PROJ') { //directly go to that frame + target = parseInt(line.split('PROJ ')[1]) + if (mscript.state.loops.length > 0) { + if (target > mscript.state.proj) { + dist = target - mscript.state.proj + for (x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('PF') + mscript.state.loops[mscript.state.rec].light.push('') + mscript.state_update('PF') + } + } else { + dist = mscript.state.proj - target + for (x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('PB') + mscript.state.loops[mscript.state.rec].light.push('') + mscript.state_update('PB') + } + } + } else { + if (target > mscript.state.proj) { + dist = target - mscript.state.proj + for (x = 0; x < dist; x++) { + arr.push('PF') + light.push('') + mscript.state_update('PF') + } + } else { + dist = mscript.state.proj - target + for (x = 0; x < dist; x++) { + arr.push('PB') + light.push('') + mscript.state_update('PB'); + } + } + } + } else if (line.substring(0, 3) === 'SET') { //set that state + if (line.substring(0, 7) === 'SET CAM') { + mscript.state.cam = parseInt(line.split('SET CAM')[1]); + } else if (line.substring(0, 8) === 'SET PROJ') { + mscript.state.proj = parseInt(line.split('SET PROJ')[1]); + } + } else if (line.substring(0, 1) === '#' || line.substring(0, 2) === '//') { + //comments + //ignore while parsing + } + } + output.success = true + output.arr = arr + output.light = light + output.cam = mscript.state.cam + output.proj = mscript.state.proj + if (typeof callback !== 'undefined') { + //should only be invoked by running mscript.tests() + callback(output) + } else { + return mscript.output(output) + } +} + +mscript.preprocess = function preprocess (line) { + line = line.replace(/\t+/g, '') //strip tabs + line = line.trim() //remove excess whitespace before and after command + line = line.toUpperCase() + return line +} + +mscript.last_loop = function last_loop () { + return mscript.state.loops[mscript.state.loops.length - 1] +} + +mscript.parent_loop = function parent_loop () { + return mscript.state.loops[mscript.state.loops.length - 2] +} + +mscript.state_update = function state_update (cmd, val) { + if (cmd === 'END') { + for (var i = 0; i < val; i++) { + if (mscript.state.rec === 0) { + mscript.state.cam += mscript.state.loops[mscript.state.rec].cam + mscript.state.proj += mscript.state.loops[mscript.state.rec].proj + } else if (mscript.state.rec >= 1) { + mscript.state.loops[mscript.state.rec - 1].cam += mscript.state.loops[mscript.state.rec].cam + mscript.state.loops[mscript.state.rec - 1].proj += mscript.state.loops[mscript.state.rec].proj + } + } + } else if (cmd === 'CF') { + if (mscript.state.loops.length < 1) { + mscript.state.cam++ + } else { + mscript.state.loops[mscript.state.rec].cam++ + } + } else if (cmd === 'CB') { + if (mscript.state.loops.length < 1) { + mscript.state.cam-- + } else { + mscript.state.loops[mscript.state.rec].cam-- + } + } else if (cmd === 'PF') { + if (mscript.state.loops.length < 1) { + mscript.state.proj++ + } else { + mscript.state.loops[mscript.state.rec].proj++ + } + } else if (cmd === 'PB') { + if (mscript.state.loops.length < 1) { + mscript.state.proj-- + } else { + mscript.state.loops[mscript.state.rec].proj-- + } + } else if (cmd === 'BF') { + if (mscript.state.loops.length < 1) { + mscript.state.cam++ + } else { + mscript.state.loops[mscript.state.rec].cam++ + } + } else if (cmd === 'BB') { + if (mscript.state.loops.length < 1) { + mscript.state.cam-- + } else { + mscript.state.loops[mscript.state.rec].cam++ + } + } else if (cmd === 'L ') { + //TODO : ???? + } +} + +mscript.str_to_arr = function str_to_arr (str, cmd) { + const cnt = str.split(cmd) + let arr = [] + let c = parseInt(cnt[1]) + + if (cnt[1] === '') { + c = 1 + } else { + c = parseInt(cnt[1]) + } + for (var i = 0; i < c; i++) { + arr.push(cmd) + mscript.state_update(cmd) + } + return arr +} + +mscript.light_state = function light_state (str) { + //add parsers for other color spaces + const color = str.replace('L ', '').trim() + mscript.state.color = color +} + +mscript.light_to_arr = function light_to_arr (str, cmd) { + const cnt = str.split(cmd) + const arr = [] + let c = parseInt(cnt[1]) + + if (cnt[1] === '') { + c = 1 + } else { + c = parseInt(cnt[1]) + } + for (var i = 0; i < c; i++) { + if (cmd === 'CF' || cmd === 'CB') { + arr.push(mscript.state.color) + } else if (cmd === 'BF' || cmd === 'BB') { + arr.push(mscript.black) + } else { + arr.push('') + } + } + return arr +} + +mscript.loop_count = function loop_count (str) { + return parseInt(str.split('LOOP ')[1]) +} + +mscript.fail = function fail (code, reason) { + const obj = { success: false, error: true, msg : reason } + console.error(JSON.stringify(obj)) + if (process) process.exit() +} + +mscript.output = function output (data) { + let json = true; //default + if (mscript.arg('-j', '--json')) { + json = true + } + + if (mscript.arg('-t', '--text')) { + json = false + } + + if (json) { + console.log(JSON.stringify(data)) + } else { + var ids = Object.keys(data) + for (var i = 0; i < ids.length; i++) { + console.log(ids[i] + ': ' + data[ids[i]]) + } + } +} + +mscript.init = function init () { + if (mscript.arg('-t', '--tests')) { + return mscript.tests() + } + + if (mscript.arg('-v', '--verbose')) { + console.time('mscript') + } + + if (mscript.arg('-c', '--cam')) { + mscript.state.cam = parseInt(process.argv[mscript.arg_pos('-c', '--cam') + 1]) + } + + if (mscript.arg('-p', '--proj')) { + mscript.state.proj = parseInt(process.argv[mscript.arg_pos('-p', '--proj') + 1]) + } + + if (mscript.arg('-f', '--file')) { + input = process.argv[mscript.arg_pos('-f', '--file') + 1] + mscript.interpret(fs.readFileSync(input, 'utf8')) + } else { + mscript.interpret(input) + } + + if (mscript.arg('-v', '--verbose')) { + console.timeEnd('mscript') + } +}; + +if (typeof document === 'undefined' && typeof module !== 'undefined' && !module.parent) { + //node script + fs = require('fs') + input = process.argv[2] + mscript.init() +} else if (typeof module !== 'undefined' && module.parent) { + //module + fs = require('fs') + module.exports = mscript +} else { + //web +} + + +/* + +CAM # - go to camera frame # +PROJ # - go to projector frame # + +SET CAM # - sets camera count to # +SET PROJ # - sets projector count to # + +LOOP # - begin loop, can nest recursively, # times +END LOOP - (or END) closes loop + +L #RGB - sets light to rgb value + +FADE + +CF - Camera forwards +PF - Projector forwards +BF - Black forwards +CB - Camera backwards +PB - Projector backwards +BB - Black backwards + +*/ \ No newline at end of file diff --git a/tests/mscript.js b/tests/mscript.js new file mode 100644 index 0000000..8a9f777 --- /dev/null +++ b/tests/mscript.js @@ -0,0 +1,169 @@ +'use strict' +const log = require('../lib/log')('mscript-tests') +const mscript = require('../lib/mscript') +//TODO: rewrite for mocha + +const tests = function tests () { + log.info('Running mscript tests') + console.time('Tests took') + + mscript.alts_unique(); //perform check only during tests + var fail = function (script, obj) { + log.error('...Failed :(') + log.error('script', script) + log.error('err', obj) + process.exit(1) + } + let script = +`CF +PF +CB +PB +BF +BB` + log.info('Basic function test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 6) { + log.info('...Passed!') + } else { + fail(script, obj) + } + }) + + script = +`CF +PF +CB +PB +BF +BB` + log.info('Functions with integers test...') + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 6) { + log.info('...Passed!') + } else { + fail(script, obj) + } + }) + + script = +`CF 1000 +CB 1000 +SET PROJ 200 +PB 200` + log.info('Basic state test...') + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0) { + log.info('...Passed!') + } else { + fail(script, obj) + } + }) + + script = +`LOOP 10 +CF 3 +PF 1 +END LOOP` + log.info('Basic loop test...') + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 30 + && obj.proj === 10 + && obj.arr.length === 40) { + log.info('...Passed!') + } else { + fail(script, obj) + } + }); + + script = `LOOP 4\nLOOP 4\nPF\nBF\nEND LOOP\nEND LOOP` + log.info('Recursive loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 16 + && obj.proj === 16 + && obj.arr.length === 32) { + log.info('...Passed!'); + } else { + fail(script, obj); + } + }); + + //Lighting tests + script = `L 255,255,255\nCF\nPF` + log.info('Basic light test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 1 + && obj.proj === 1 + && obj.arr.length === 2 + && obj.light.length === 2 + && obj.light[0] === '255,255,255' + && obj.light[1] === '') { + log.info('...Passed!'); + } else { + fail(script, obj); + } + }); + script = 'L 255,255,255\nCF\nPF\nBF'; + log.info('Basic black test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 2 + && obj.proj === 1 + && obj.arr.length === 3 + && obj.light.length === 3 + && obj.light[0] === '255,255,255' + && obj.light[1] === '' + && obj.light[2] === mscript.black) { + log.info('...Passed!'); + } else { + fail(script, obj); + } + }); + script = 'LOOP 2\nL 1,1,1\nCF\nL 2,2,2\nCF\nEND'; + log.info('Basic light loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 4 + && obj.proj === 0 + && obj.arr.length === 4 + && obj.light.length === 4 + && obj.light[0] === '1,1,1' + && obj.light[3] === '2,2,2') { + log.info('...Passed!'); + } else { + fail(script, obj); + } + }); + + //LOOP W/ CAM and PROJ + script = 'LOOP 2\nCAM 4\nPROJ 4\nEND'; + log.info('Basic cam/proj loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 8 + && obj.proj === 8 + && obj.arr.length === 16 + && obj.light.length === 16 + && obj.light[0] === mscript.black) { + log.info('...Passed!'); + } else { + fail(script, obj); + } + }); + + log.info('All tests completed'); + console.timeEnd('Tests took'); +} + +tests() \ No newline at end of file -- 2.40.1 From 7f48045bbd6b8d62e1e1f011a75f857fe2fa0103 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:25:34 -0400 Subject: [PATCH 56/62] Log with appropriate tagging --- index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 77d6ca8..4356b13 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ 'use strict' const restify = require('restify') -const logger = require('winston') +const log = require('./lib/log')('main') const fs = require('fs') const ble = require('./lib/blootstrap') @@ -25,18 +25,19 @@ function createServer () { app.post('/sequence', () => {}) app.get('/status', rStatus) app.listen(PORT, () => { - console.log(`${APPNAME} listening on port ${PORT}!`) + log.info('server', { name : APPNAME, port : PORT }) }) } function rFrame (req, res, next) { + intval.frame() res.send({}) return next() } function rStatus (req, res, next) { const obj = intval.status() - res.send({}) + res.send(obj) return next() } -- 2.40.1 From 82aa857ffdccab9ca270452989c58a4b5c678d4e Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:25:54 -0400 Subject: [PATCH 57/62] Use log library instead of ipc log --- lib/blootstrap/index.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/blootstrap/index.js b/lib/blootstrap/index.js index 749c88a..f015ff7 100644 --- a/lib/blootstrap/index.js +++ b/lib/blootstrap/index.js @@ -1,6 +1,7 @@ 'use strict' const ipc = require('node-ipc') +const log = require('../log')('ble') function capitalize (s) { return s[0].toUpperCase() + s.slice(1) @@ -12,20 +13,20 @@ class Blootstrap { this._onData = () => {} ipc.connectTo('blootstrap_ble', () => { ipc.of.blootstrap_ble.on('connect', () => { - ipc.log(`Connected to the blootstrap_ble service`) + log.info('connect', `Connected to the blootstrap_ble service`) }) ipc.of.blootstrap_ble.on('data', data => { const str = data.toString() - ipc.log(str) + log.info('data', str) this._onData(str) }) ipc.of.blootstrap_ble.on('disconnect', () => { - ipc.log(`Disconnected from the blootstrap_ble service`) + log.info('disconnect', `Disconnected from the blootstrap_ble service`) }) ipc.of.blootstrap_ble.on('error', (err) => { if (err.code === 'EACCES') { - console.log(`Cannot access ipc`) + log.warn('error', `Cannot access ipc`) } }) }) -- 2.40.1 From 495e59eae211b88187f4377b65fd9171fcf3ed0b Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:26:13 -0400 Subject: [PATCH 58/62] Use log library in intval module --- lib/intval/index.js | 59 ++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/lib/intval/index.js b/lib/intval/index.js index 463c1bf..40d6124 100644 --- a/lib/intval/index.js +++ b/lib/intval/index.js @@ -6,7 +6,7 @@ let Gpio try { Gpio = require('onoff').Gpio } catch (e) { - console.warn('Failed including Gpio, using sim') + log.warn('Failed including Gpio, using sim') Gpio = require('../../lib/onoffsim').Gpio } @@ -55,11 +55,14 @@ class Intval { primed : false //is ready to stop frame } } + this._releaseMin = 50 this._releaseSequence = 1000 this._microDelay = 10 // delay after stop signal before stopping motors + this._declarePins() process.on('SIGINT', this._undeclarePins) + process.on('uncaughtException', this._undeclarePins) } /** * (internal function) Declares all Gpio pins that will be used @@ -71,8 +74,8 @@ class Intval { pin = PINS[p] if (pin.edge) this._pin[p] = Gpio(pin.pin, pin.dir, pin.edge) if (!pin.edge) this._pin[p] = Gpio(pin.pin, pin.dir) + log.info('_declarePins', { pin : pin.pin, dir : pin.dir, edge : pin.edge }) } - console.dir(this._pin) this._pin.release.watch(this._watchRelease) } /** @@ -81,10 +84,16 @@ class Intval { * */ _undeclarePins () { + if (!this._pin) return process.exit() + log.warn('_undeclarePins', { pin : PINS.fwd.pin, val : 0, reason : 'exiting'}) + this._pin.fwd.writeSync(0) + log.warn('_undeclarePins', { pin : PINS.bwd.pin, val : 0, reason : 'exiting'}) + this._pin.bwd.writeSync(0) this._pin.fwd.unexport() this._pin.bwd.unexport() this._pin.micro.unexport() this._pin.release.unexport() + process.exit() } /** * Start motor in forward direction by setting correct pins in h-bridge @@ -113,7 +122,7 @@ class Intval { let len = (+new Date()) - this._state.frame.start - console.log(`Frame stopped ${len}ms`) + log.info(`Frame stopped ${len}ms`) this._pin.micro.unwatch() this._state.frame.active = false @@ -138,21 +147,21 @@ class Intval { _watchMicro (err, val) { const NOW = +new Date() if (err) { - console.error(err) + log.error('_watchMicro', err) } //determine when to stop if (val === 0 && this._state.frame.active) { if (!this._state.micro.primed) { this._state.micro.primed = true this._state.micro.time = NOW - console.log('Mircoswitch primed to stop motor') + log.info('Mircoswitch primed to stop motor') } } else if (val === 1 && this._state.frame.active) { if (this._state.micro.primed) { this._state.micro.primed = false this._state.micro.time = 0 setTimeout( () => { - console.log(`Stopped frame after ${NOW - this._state.micro.time}ms`) + log.info(`Stopped frame after ${NOW - this._state.micro.time}ms`) }, this._microDelay) } } @@ -178,9 +187,9 @@ class Intval { const NOW = +new Date() let press = 0 if (err) { - return console.error(err) + return log.error(err) } - console.log(`Release switch val: ${val}`) + log.info(`Release switch val: ${val}`) if (val === 0) { //closed if ((!this._state.release.active && this._state.release.time === 0) || (this._state.release.active && (NOW - this._state.release.time) > (this._releaseSequence * 10)) @@ -197,7 +206,7 @@ class Intval { } else if (press >= this._releaseSequence) { this.sequence() } - console.log(`Release closed for ${press}ms`) + log.info(`Release closed for ${press}ms`) this._state.release.time = 0 this._state.release.active = false } @@ -213,7 +222,7 @@ class Intval { */ setDir (val = true) { if (typeof val !== 'boolean') { - return console.warn('Direction must be represented as either true or false') + return log.warn('Direction must be represented as either true or false') } this._state.dir = val } @@ -222,10 +231,9 @@ class Intval { * * @param {?boolean} [dir="null"] (optional) Direction of the frame * @param {?integer} [time="null"] (optional) Exposure time, 0 = minimum - * @param {?integer} [delay="null"] (optional) Delay after frame before another can be started * */ - frame (dir = null, time = null, delay = null) { //may be overloaded, delay is suspect + frame (dir = null, time = null) { if (dir === true || (dir === null && this._state.dir === true) ) { dir = true } else { @@ -238,31 +246,16 @@ class Intval { time = 0 } - if (delay === null && this._state.delay !== 0) { - delay = this._state.delay - } else { - delay = 0 - } - this._state.frame.start = +new Date() this._state.frame.active = true this._pin.micro.watch(this._watchMicro) - if (delay !== 0) { - setTimeout(function () { - if (dir) { - this._startFwd() - } else { - this._startBwd() - } - - }, delay) + log.info('frame', {dir : dir, time : time}) + + if (dir) { + this._startFwd() } else { - if (dir) { - this._startFwd() - } else { - this._startBwd() - } + this._startBwd() } } /** @@ -270,7 +263,7 @@ class Intval { * */ sequence () { - console.log(`Started sequence`) + log.info('sequence', `Started sequence`) } status () { return this._state -- 2.40.1 From ceb961ebd685ce8a637656556ec573740bf52f06 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:26:47 -0400 Subject: [PATCH 59/62] Add unexport function to onoffsim GPIO object --- lib/onoffsim/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/onoffsim/index.js b/lib/onoffsim/index.js index 7fac81f..88b8c70 100644 --- a/lib/onoffsim/index.js +++ b/lib/onoffsim/index.js @@ -25,6 +25,8 @@ const onoffsim = { }, watch : function (cb) { this.watchFunc = cb + }, + unexport : function () { } } } -- 2.40.1 From 86ef664cd32328f862a646366fdc6038090e23fb Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Mon, 25 Sep 2017 23:27:04 -0400 Subject: [PATCH 60/62] Update intval library documentation --- lib/intval/Readme.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/intval/Readme.md b/lib/intval/Readme.md index 70b8b9f..967573a 100644 --- a/lib/intval/Readme.md +++ b/lib/intval/Readme.md @@ -14,7 +14,7 @@ Class representing the intval3 features * [._watchMicro(err, val)](#Intval+_watchMicro) * [._watchRelease(err, val)](#Intval+_watchRelease) * [.setDir([dir])](#Intval+setDir) - * [.frame([dir], [time], [delay])](#Intval+frame) + * [.frame([dir], [time])](#Intval+frame) * [.sequence()](#Intval+sequence) @@ -105,7 +105,7 @@ Set the default direction of the camera. -### intval.frame([dir], [time], [delay]) +### intval.frame([dir], [time]) Begin a single frame with set variables or defaults **Kind**: instance method of [Intval](#Intval) @@ -114,7 +114,6 @@ Begin a single frame with set variables or defaults | --- | --- | --- | --- | | [dir] | boolean | "null" | (optional) Direction of the frame | | [time] | integer | "null" | (optional) Exposure time, 0 = minimum | -| [delay] | integer | "null" | (optional) Delay after frame before another can be started | -- 2.40.1 From e876359be872922a624ec9ef6149e0abdd2e27b3 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 28 Sep 2017 13:28:14 -0400 Subject: [PATCH 61/62] Clean up whitespace in nginx.conf It was bugging me --- nginx.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nginx.conf b/nginx.conf index 0d6c299..2cccf05 100644 --- a/nginx.conf +++ b/nginx.conf @@ -30,18 +30,18 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; gzip on; - gzip_comp_level 5; - gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; + gzip_comp_level 5; + gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; } - #uncomment for static file servers + #uncomment for static file server #location /static/ { #uncomment to turn on caching #expires modified 1y; #access_log off; #add_header Cache-Control "public"; #gzip on; - #gzip_comp_level 5; - #gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; + #gzip_comp_level 5; + #gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; #alias /var/node/blootstrap/static/; #} -} \ No newline at end of file +} -- 2.40.1 From 0e134cfa6a038566e2064d305f907570e09e4e66 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 28 Sep 2017 13:29:15 -0400 Subject: [PATCH 62/62] Reference correct project in nginx.conf Was also bugging me. --- nginx.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nginx.conf b/nginx.conf index 2cccf05..cc71e29 100644 --- a/nginx.conf +++ b/nginx.conf @@ -31,7 +31,7 @@ server { proxy_set_header X-Real-IP $remote_addr; gzip on; gzip_comp_level 5; - gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; + gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; } #uncomment for static file server #location /static/ { @@ -41,7 +41,8 @@ server { #add_header Cache-Control "public"; #gzip on; #gzip_comp_level 5; - #gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; - #alias /var/node/blootstrap/static/; + #gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json; + #use project location + #alias /var/node/intval3/static/; #} } -- 2.40.1