0.2.11 fix issue where pin is string, cast to number
parent
d656af443e
commit
be68921eac
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@uci/interrupt",
|
"name": "@uci/interrupt",
|
||||||
"main": "src",
|
"main": "src",
|
||||||
"version": "0.2.10",
|
"version": "0.2.11",
|
||||||
"description": "a class for adding interrupt processesing for gpio pins on Raspberry Pi and Similar SBCs",
|
"description": "a class for adding interrupt processesing for gpio pins on Raspberry Pi and Similar SBCs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"single": "sudo node -r esm examples/single",
|
"single": "sudo node -r esm examples/single",
|
||||||
|
|
|
@ -7,6 +7,7 @@ let log = {}
|
||||||
// a pin makes a socket (server/listner) for each pin to which a consumer can be connected
|
// a pin makes a socket (server/listner) for each pin to which a consumer can be connected
|
||||||
class Interrupt extends Base {
|
class Interrupt extends Base {
|
||||||
constructor(pin, opts = {}) {
|
constructor(pin, opts = {}) {
|
||||||
|
if (typeof pin !=='number') pin = parseInt(pin) // make sure pin is a number!
|
||||||
opts.conPacket = (opts.resetCmd && !opts.conPacket) ? opts.conPacket : { cmd: opts.resetCmd, pin: pin } // will use either option
|
opts.conPacket = (opts.resetCmd && !opts.conPacket) ? opts.conPacket : { cmd: opts.resetCmd, pin: pin } // will use either option
|
||||||
// if opts .port/.path/.topic/.wport are base number/name to which pin number is added/appended (default being 9000,9100,'interrupt')
|
// if opts .port/.path/.topic/.wport are base number/name to which pin number is added/appended (default being 9000,9100,'interrupt')
|
||||||
// for specific port number pass itrt.port,itrn.path,itrm.topic,itrw.port which override it if present
|
// for specific port number pass itrt.port,itrn.path,itrm.topic,itrw.port which override it if present
|
||||||
|
@ -27,15 +28,15 @@ class Interrupt extends Base {
|
||||||
|
|
||||||
if (opts.itrw || opts.wport || opts.wport===0 ) {
|
if (opts.itrw || opts.wport || opts.wport===0 ) {
|
||||||
opts.itrw = opts.itrw || {}
|
opts.itrw = opts.itrw || {}
|
||||||
if (opts.wport) opts.wport = opts.wport + pin
|
if (opts.wport) opts.wport = opts.wport + +pin
|
||||||
opts.itrw.port = opts.itrw.port || opts.wport || 9100 + pin
|
opts.itrw.port = opts.itrw.port || opts.wport || 9100 + +pin
|
||||||
opts.sockets = (opts.sockets ? opts.sockets + ',' : '') + 'itrw#s>w'
|
opts.sockets = (opts.sockets ? opts.sockets + ',' : '') + 'itrw#s>w'
|
||||||
}
|
}
|
||||||
// default is a tcp socket server at 9000+pin
|
// default is a tcp socket server at 9000+pin
|
||||||
if (opts.itrt || opts.port || opts.port===0 || !opts.sockets ) {
|
if (opts.itrt || opts.port || opts.port===0 || !opts.sockets ) {
|
||||||
opts.itrt = opts.itrt || {}
|
opts.itrt = opts.itrt || {}
|
||||||
if (opts.port) opts.port = opts.port + pin
|
if (opts.port) opts.port = opts.port + +pin
|
||||||
opts.itrt.port = opts.itrt.port || opts.port || 9000 + pin
|
opts.itrt.port = opts.itrt.port || opts.port || 9000 + +pin
|
||||||
opts.itrt.conPacket = opts.conPacket
|
opts.itrt.conPacket = opts.conPacket
|
||||||
opts.sockets = (opts.sockets ? opts.sockets + ',' : '') + 'itrt#s>t'
|
opts.sockets = (opts.sockets ? opts.sockets + ',' : '') + 'itrt#s>t'
|
||||||
}
|
}
|
||||||
|
@ -43,7 +44,7 @@ class Interrupt extends Base {
|
||||||
this.id = (opts.id || 'interrupt') + ':' + pin
|
this.id = (opts.id || 'interrupt') + ':' + pin
|
||||||
log = logger({ name: 'interrupt', id: this.id })
|
log = logger({ name: 'interrupt', id: this.id })
|
||||||
log.info({ pins: pin, opts: opts }, 'created interrupt with these opts')
|
log.info({ pins: pin, opts: opts }, 'created interrupt with these opts')
|
||||||
this.pin_num = pin
|
this.pin_num = +pin
|
||||||
this.mock = opts.mock || process.env.MOCK
|
this.mock = opts.mock || process.env.MOCK
|
||||||
this.wait = opts.wait || 0 // debounce is off by default
|
this.wait = opts.wait || 0 // debounce is off by default
|
||||||
this.dbopts = {
|
this.dbopts = {
|
||||||
|
@ -57,7 +58,7 @@ class Interrupt extends Base {
|
||||||
this._hook = opts.hook
|
this._hook = opts.hook
|
||||||
this.packet = opts.packet || {}
|
this.packet = opts.packet || {}
|
||||||
this.packet.pin = pin
|
this.packet.pin = pin
|
||||||
this.packet.cmd = this.packet.cmd || opts.pushcmd || 'interrupt'
|
this.packet.cmd = this.packet.cmd || opts.pushCmd || 'interrupt'
|
||||||
this.packet.count = 0
|
this.packet.count = 0
|
||||||
} // end constructor
|
} // end constructor
|
||||||
|
|
||||||
|
@ -133,7 +134,7 @@ class Interrupt extends Base {
|
||||||
}
|
}
|
||||||
|
|
||||||
//sample hook
|
//sample hook
|
||||||
hook(packet) {
|
async hook(packet) {
|
||||||
// return a promise if anything async happens in hook
|
// return a promise if anything async happens in hook
|
||||||
// new Promise((resolve) => {
|
// new Promise((resolve) => {
|
||||||
console.log('=======================')
|
console.log('=======================')
|
||||||
|
|
|
@ -16,6 +16,7 @@ class Interrupts {
|
||||||
delete opts[pin]
|
delete opts[pin]
|
||||||
})
|
})
|
||||||
pins.forEach(pin => {
|
pins.forEach(pin => {
|
||||||
|
if (typeof pin !=='number') pin = parseInt(pin)
|
||||||
pinopts[pin] = Object.assign({}, opts, pinopts[pin])
|
pinopts[pin] = Object.assign({}, opts, pinopts[pin])
|
||||||
pinopts[pin].id = (opts.id || 'interrupt') + ':' + pin
|
pinopts[pin].id = (opts.id || 'interrupt') + ':' + pin
|
||||||
pinopts[pin].conPacket = { cmd: opts.resetCmd, pin: pin }
|
pinopts[pin].conPacket = { cmd: opts.resetCmd, pin: pin }
|
||||||
|
@ -54,7 +55,7 @@ class Interrupts {
|
||||||
// new test
|
// new test
|
||||||
push(packet) {
|
push(packet) {
|
||||||
this.pins.forEach(async pin => {
|
this.pins.forEach(async pin => {
|
||||||
console.log('all push', pin, packet)
|
console.log('=======all push============', pin, packet)
|
||||||
this.interrupt[pin].push(packet)
|
this.interrupt[pin].push(packet)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue