node-red-contrib-jacdac
Advanced tools
Comparing version 1.0.2 to 1.0.3
"use strict"; | ||
const bus_1 = require("../shared/bus"); | ||
const jacdac_ts_1 = require("jacdac-ts"); | ||
const filters_1 = require("../shared/filters"); | ||
const nodeInit = (RED) => { | ||
function JacdacEventNodeConstructor(config) { | ||
RED.nodes.createNode(this, config); | ||
const { device: deviceFilter, service: serviceFilter, event: eventFilter } = config; | ||
this.log(`create node ${deviceFilter}:${serviceFilter}:${eventFilter}`); | ||
const updateStatus = () => { | ||
this.log(`connection: ${bus_1.bus.connected ? "connected" : "disconnected"}`); | ||
this.status(bus_1.bus.connected ? { fill: "green", shape: "dot", text: "connected" } | ||
: { fill: "red", shape: "ring" }); | ||
}; | ||
const filterDevice = (dev) => bus_1.bus.selfDevice !== dev && | ||
(!deviceFilter | ||
|| deviceFilter.toLocaleLowerCase() === dev.deviceId.toLocaleLowerCase() | ||
|| deviceFilter.toLocaleLowerCase() === dev.shortId.toLocaleLowerCase()); | ||
const filterService = (srv) => !serviceFilter | ||
|| srv.serviceClass === parseInt(serviceFilter, 16) | ||
|| (srv.name && srv.name.toLocaleLowerCase() === serviceFilter.toLocaleLowerCase()); | ||
const filterEvent = (evt) => !eventFilter | ||
|| evt.code === parseInt(eventFilter, 16) | ||
|| (evt.name && evt.name.toLocaleLowerCase() === eventFilter.toLocaleLowerCase()); | ||
const filterDevice = filters_1.createDeviceFilter(config); | ||
const filterService = filters_1.createServiceFilter(config); | ||
const filterEvent = filters_1.createEventFilter(config); | ||
const registerDevice = (dev) => { | ||
@@ -50,12 +37,3 @@ this.log(`registering device ${dev}`); | ||
}; | ||
const registerAllDevices = () => { | ||
for (const dev of bus_1.bus.devices({ ignoreSelf: true })) | ||
registerDevice(dev); | ||
}; | ||
bus_1.bus.on(jacdac_ts_1.CONNECTION_STATE, updateStatus); | ||
bus_1.bus.on(jacdac_ts_1.DEVICE_ANNOUNCE, registerDevice); | ||
bus_1.bus.on(jacdac_ts_1.CONNECT, registerAllDevices); | ||
updateStatus(); | ||
registerAllDevices(); | ||
bus_1.bus.connect(); | ||
bus_1.connectNode(this, registerDevice); | ||
} | ||
@@ -62,0 +40,0 @@ RED.nodes.registerType("jacdac-event", JacdacEventNodeConstructor); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.bus = void 0; | ||
exports.connectNode = exports.bus = void 0; | ||
const jacdac_ts_1 = require("jacdac-ts"); | ||
@@ -8,2 +8,20 @@ const opts = jacdac_ts_1.createNodeUSBOptions(); | ||
exports.bus = new jacdac_ts_1.JDBus([transport]); | ||
function connectNode(node, registerDevice) { | ||
const registerAllDevices = () => { | ||
for (const dev of exports.bus.devices({ ignoreSelf: true })) | ||
registerDevice(dev); | ||
}; | ||
const updateStatus = () => { | ||
node.log(`connection: ${exports.bus.connected ? "connected" : "disconnected"}`); | ||
node.status(exports.bus.connected ? { fill: "green", shape: "dot", text: "connected" } | ||
: { fill: "red", shape: "ring" }); | ||
}; | ||
exports.bus.on(jacdac_ts_1.DEVICE_ANNOUNCE, registerDevice); | ||
exports.bus.on(jacdac_ts_1.CONNECT, registerAllDevices); | ||
exports.bus.on(jacdac_ts_1.CONNECTION_STATE, updateStatus); | ||
registerAllDevices(); | ||
updateStatus(); | ||
exports.bus.connect(); | ||
} | ||
exports.connectNode = connectNode; | ||
//# sourceMappingURL=bus.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=types.js.map |
{ | ||
"name": "node-red-contrib-jacdac", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "Microsoft Jacdac for node-red", | ||
@@ -27,2 +27,3 @@ "keywords": [ | ||
"nodes": { | ||
"jacdac-reading": "./dist/nodes/jacdac-reading/jacdac-reading.js", | ||
"jacdac-event": "./dist/nodes/jacdac-event/jacdac-event.js" | ||
@@ -29,0 +30,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
405846
26
150