Comparing version 0.2.0 to 0.4.0
@@ -23,5 +23,2 @@ /* jshint node: true */ | ||
if (_.isNil(charMeta[uuid]) && _.isNil(bipso.uo(uuid))) | ||
throw new Error('Unrecognized UUID'); | ||
this.uuid = uuid; | ||
@@ -28,0 +25,0 @@ this.isBipso = bipso.uo(uuid) ? true : false; |
/* jshint node: true */ | ||
'use strict'; | ||
var _ = require('busyman'); | ||
var _ = require('busyman'), | ||
bipso = require('bipso'); | ||
@@ -12,7 +13,15 @@ var charMeta = require('./defs/charMeta'), | ||
blePacket.frame = function (uuid, data) { | ||
return new BleObject(uuid).frame(data); | ||
if (_.isNil(charMeta[uuid]) && _.isNil(bipso.uo(uuid))) | ||
return data; | ||
else | ||
return new BleObject(uuid).frame(data); | ||
}; | ||
blePacket.parse = function (uuid, bBuf, callback) { | ||
return new BleObject(uuid).parse(bBuf, callback); | ||
if (_.isNil(charMeta[uuid]) && _.isNil(bipso.uo(uuid))) | ||
process.nextTick(function () { | ||
callback(null, bBuf); | ||
}); | ||
else | ||
new BleObject(uuid).parse(bBuf, callback); | ||
}; | ||
@@ -19,0 +28,0 @@ |
{ | ||
"name": "ble-packet", | ||
"version": "0.2.0", | ||
"version": "0.4.0", | ||
"description": "ble-packet is a framer and parser for BLE attributes on node.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -103,3 +103,3 @@ # ble-packet | ||
* (_Buffer_): Raw buffer of given BLE attribute. | ||
* (_Buffer_ | _Object_): Raw buffer of BLE attribute value, the given `value` will be returned if `uuid` is unrecognized. | ||
@@ -109,2 +109,3 @@ **Example:** | ||
```js | ||
// GATT-defined attribute | ||
var dayDateUuid = '0x2a0a', | ||
@@ -119,5 +120,26 @@ dayDateVal = { | ||
dayOfWeek: 2 | ||
} | ||
}; | ||
blePacket.frame(dayDateUuid, dayDateVal); // <Buffer 99 07 07 13 09 00 00 02> | ||
// BIPSO-defined attribute | ||
var genericUuid = '0xcc04', | ||
genericSensorValue = { | ||
flags: 129, | ||
id: 0, | ||
sensorValue: 0, | ||
units: ppm, | ||
sensorType: MQ7 | ||
}; | ||
blePacket.frame(genericUuid, genericSensorValue); // <Buffer 81 00 00 00 00 00 03 70 70 6d 03 4d 51 37> | ||
// Unrecognized attribute | ||
var privateUuid = '0xff00', | ||
privateValue = { | ||
x: 0, | ||
y: 1 | ||
}; | ||
blePacket.frame(privateUuid, privateValue); // { x: 0, y: 1 } | ||
``` | ||
@@ -135,4 +157,7 @@ | ||
2. `buf` (_Buffer_): Raw buffer to be parsed. | ||
3. `callback` (_Function_): `function(err, result) {...}`. Get called when the raw buffer is parsed. | ||
3. `callback` (_Function_): `function(err, result) {...}`. Get called along with the parsed value.. | ||
* `'err'` (Error) - Error Object | ||
* `'result'` (_Object_ | _Buffer_): `result` is a data object, or the given `buf` if uuid is unrecognized | ||
**Returns** | ||
@@ -145,6 +170,7 @@ | ||
```js | ||
// GATT-defined attribute | ||
var dayDateUuid = '0x2a0a', | ||
rawBuf = new Buffer([ 153, 7, 07, 19, 09, 00, 00, 02 ]); | ||
dayDateBuf = new Buffer([ 153, 7, 07, 19, 09, 00, 00, 02 ]); | ||
blePacket.parse(dayDateUuid, rawBuf, function(err, result) { | ||
blePacket.parse(dayDateUuid, dayDateBuf, function(err, result) { | ||
if (err) | ||
@@ -155,13 +181,28 @@ console.log(err); | ||
// Result object | ||
// { | ||
// year: 1945, | ||
// month: 7, | ||
// day: 19, | ||
// hours: 9, | ||
// minutes: 0, | ||
// seconds: 0, | ||
// dayOfWeek: 2 | ||
// } | ||
/* | ||
{ | ||
year: 1945, | ||
month: 7, | ||
day: 19, | ||
hours: 9, | ||
minutes: 0, | ||
seconds: 0, | ||
dayOfWeek: 2 | ||
} | ||
*/ | ||
}); | ||
// Unrecognized attribute | ||
var privateUuid = '0xff00', | ||
privateBuf = new Buffer([0, 1]) | ||
blePacket.parse(privateUuid, privateBuf, function(err, result) { | ||
if (err) | ||
console.log(err); | ||
else | ||
console.log(result); | ||
// <Buffer 0 1> | ||
}); | ||
``` | ||
@@ -168,0 +209,0 @@ |
89743
2062
501