node-red-contrib-epi-bluetooth
Advanced tools
Comparing version 0.0.6 to 0.0.7
@@ -5,2 +5,3 @@ var Bleno = require('../lib/bleno/bleno'); | ||
var BleJsonTransport = require('./bleJsonTransport'); | ||
var BleDevInfoServiceFactory = require('./bleDevInfoServiceFactory'); | ||
@@ -19,2 +20,3 @@ var _ = require('lodash'); | ||
this.bleNodes = bleNodes; | ||
this.bleDevServiceFactory = new BleDevInfoServiceFactory(); | ||
this.bleJsonTransport = new BleJsonTransport(); | ||
@@ -27,5 +29,5 @@ this.nodeRed = nodeRed; | ||
BleProvider.prototype.setDeviceConfig = function(name, advertisement) { | ||
BleProvider.prototype.setDeviceConfig = function(name, deviceInfo) { | ||
this.name = name || '!Undefined Name'; | ||
this.advertisement = advertisement; | ||
this.deviceInfo = deviceInfo; | ||
} | ||
@@ -46,3 +48,3 @@ | ||
_this._setup(_this.name, _this.advertisement) | ||
_this._setup(_this.name, _this.deviceInfo) | ||
.then(function setupComplete() { | ||
@@ -58,3 +60,3 @@ _this.nodeRed.log.info('BleProvider: Services and Characteristics registerd.'); | ||
_this._setup(_this.name, _this.advertisement) | ||
_this._setup(_this.name, _this.deviceInfo) | ||
.then(function reSetupComplete() { | ||
@@ -114,3 +116,3 @@ _this.nodeRed.log.info('BleProvider: Services and Characteristics re-registerd.'); | ||
BleProvider.prototype._setup = function(name, advertisement) { | ||
BleProvider.prototype._setup = function(name, deviceInfo) { | ||
var _this = this; | ||
@@ -132,3 +134,3 @@ | ||
// Build service/characteristics structure | ||
var services = _this.bleNodes.services.map(function serviceMapIterator(serviceDef) { | ||
var commsServices = _this.bleNodes.services.map(function serviceMapIterator(serviceDef) { | ||
var characteristics = | ||
@@ -185,2 +187,12 @@ serviceDef.characteristics.map(function characteristicMapIterator(charDef) { | ||
var services = commsServices; | ||
// If deviceInfo is provided - create service for exposing it | ||
// and merge it with other services | ||
if (deviceInfo) { | ||
var deviceInfoService = | ||
_this.bleDevServiceFactory.createService(_this.bleno, deviceInfo); | ||
services = services.concat([deviceInfoService]); | ||
} | ||
_this.bleno.setServices(services, function() { | ||
@@ -238,2 +250,3 @@ resolve(); | ||
var bleNodes = BleNodes.getBleNodes(RED); | ||
instance = new BleProvider(bleNodes, RED); | ||
@@ -240,0 +253,0 @@ } |
@@ -7,2 +7,24 @@ var BleProvider = require('../../core/bleProvider'); | ||
this.name = n.name; | ||
var _this = this; | ||
// Copies the fields from the array | ||
// to this while checking if the value | ||
// should be read as a string or pulled from | ||
// the context | ||
[ | ||
'infoName', | ||
'infoVendor', | ||
'infoSerial' | ||
].forEach(function(field) { | ||
var fieldType = n[field + 'Type']; | ||
var fieldValue = n[field]; | ||
if (fieldType === 'global') { | ||
var contextField = RED.util.parseContextStore(fieldValue); | ||
_this[field] = _this.context().global.get(contextField.key, contextField.store); | ||
} else if (fieldType === 'str') { | ||
_this[field] = fieldValue; | ||
} | ||
}); | ||
} | ||
@@ -9,0 +31,0 @@ |
@@ -18,3 +18,7 @@ var BleNodes = require('../../core/bleNodes'); | ||
name: bleConfig.name, | ||
advertisement: bleConfig.advertisement, | ||
deviceInfo: { | ||
vendorName: bleConfig.infoVendor, | ||
deviceName: bleConfig.infoName, | ||
deviceSerial: bleConfig.infoSerial | ||
}, | ||
}; | ||
@@ -35,3 +39,6 @@ | ||
bleProvider.setDeviceConfig(node.bleConfig.name); | ||
bleProvider.setDeviceConfig( | ||
node.bleConfig.name, | ||
node.bleConfig.deviceInfo | ||
); | ||
@@ -38,0 +45,0 @@ this.on('close', function bleInputClose() { |
@@ -18,3 +18,7 @@ var BleNodes = require('./../../core/bleNodes'); | ||
name: bleConfig.name, | ||
advertisement: bleConfig.advertisement, | ||
deviceInfo: { | ||
vendorName: bleConfig.infoVendor, | ||
deviceName: bleConfig.infoName, | ||
deviceSerial: bleConfig.infoSerial | ||
}, | ||
}; | ||
@@ -30,3 +34,6 @@ | ||
bleProvider.setDeviceConfig(node.bleConfig.name); | ||
bleProvider.setDeviceConfig( | ||
node.bleConfig.name, | ||
node.bleConfig.deviceInfo | ||
); | ||
@@ -33,0 +40,0 @@ this.on('input', function bleInput(msg) { |
{ | ||
"name": "node-red-contrib-epi-bluetooth", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"description": "A Node-RED node to set up a Bluetooth LE peripheral.", | ||
@@ -5,0 +5,0 @@ "repository": { |
Sorry, the diff of this file is not supported yet
302635
34
3532