UNPKG

gatt-ip-js

Version:

GATT-IP library is A simple javascript protocol to connect any Bluetooth Smart (GATT) Device to the IP network

69 lines (55 loc) 2.14 kB
var C = require("./lib/constants.js").C; var helper = require('./lib/message-helper'); // TODO: Errors if not connected function Descriptor(characteristic, uuid) { var self = this; var service = characteristic.service(); var peripheral = service.peripheral(); var gattip = peripheral.gattip(); helper.requireUUID('Descriptor', 'uuid', uuid); this.uuid = uuid; this.type = 'd'; //this.value = undefined; this.characteristic = function () { return characteristic; }; this.service = function () { return service; }; this.peripheral = function () { return peripheral; }; this.gattip = function () { return gattip; }; // REQUESTS ================================================= this.readValue = function (callback) { var params = helper.populateParams(self); gattip.request(C.kGetDescriptorValue, params, callback, function (params) { helper.requireFields('readValue', params, [C.kValue], []); self.value = params[C.kValue]; gattip.fulfill(callback, self, self.value); }); }; //TODO: Nake sure it's not longer than 20 bytes this.writeValue = function (callback, value) { var params = helper.populateParams(self); helper.requireHexValue('writeValue', 'value', value); gattip.request(C.kWriteDescriptorValue, params, callback, function (params) { self.value = value; gattip.fulfill(callback, self); }); }; // SERVER RESPONSES/INDICATIONS ============================ this.respondToReadRequest = function (cookie, value) { var params = helper.populateParams(self); helper.requireHexValue('respondToReadRequest', 'value', value); params[C.kValue] = value; gattip.respond(cookie, params); }; this.respondToWriteRequest = function (cookie) { var params = helper.populateParams(self); gattip.respond(cookie, params); }; } module.exports.Descriptor = Descriptor;