UNPKG

ng-cordova

Version:

[ngCordova](http://ngcordova.com/) ==========

144 lines (124 loc) 4.19 kB
// install : cordova plugin add https://github.com/don/cordova-plugin-ble-central.git // link : https://github.com/don/cordova-plugin-ble-central /* globals ble: true */ angular.module('ngCordova.plugins.ble', []) .factory('$cordovaBLE', ['$q', '$timeout', '$log', function ($q, $timeout, $log) { return { scan: function (services, seconds) { var q = $q.defer(); ble.startScan(services, function (result) { q.notify(result); }, function (error) { q.reject(error); }); $timeout(function () { ble.stopScan(function () { q.resolve(); }, function (error) { q.reject(error); }); }, seconds*1000); return q.promise; }, startScan: function (services, callback, errorCallback) { return ble.startScan(services, callback, errorCallback); }, stopScan: function () { var q = $q.defer(); ble.stopScan(function () { q.resolve(); }, function (error) { q.reject(error); }); return q.promise; }, connect: function (deviceID) { var q = $q.defer(); ble.connect(deviceID, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, disconnect: function (deviceID) { var q = $q.defer(); ble.disconnect(deviceID, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, read: function (deviceID, serviceUUID, characteristicUUID) { var q = $q.defer(); ble.read(deviceID, serviceUUID, characteristicUUID, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, write: function (deviceID, serviceUUID, characteristicUUID, data) { var q = $q.defer(); ble.write(deviceID, serviceUUID, characteristicUUID, data, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, writeWithoutResponse: function (deviceID, serviceUUID, characteristicUUID, data) { var q = $q.defer(); ble.writeWithoutResponse(deviceID, serviceUUID, characteristicUUID, data, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, writeCommand: function (deviceID, serviceUUID, characteristicUUID, data) { $log.warning('writeCommand is deprecated, use writeWithoutResponse'); return this.writeWithoutResponse(deviceID, serviceUUID, characteristicUUID, data); }, startNotification: function (deviceID, serviceUUID, characteristicUUID, callback, errorCallback) { return ble.startNotification(deviceID, serviceUUID, characteristicUUID, callback, errorCallback); }, stopNotification: function (deviceID, serviceUUID, characteristicUUID) { var q = $q.defer(); ble.stopNotification(deviceID, serviceUUID, characteristicUUID, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, isConnected: function (deviceID) { var q = $q.defer(); ble.isConnected(deviceID, function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, enable: function () { var q = $q.defer(); ble.enable(function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; }, isEnabled: function () { var q = $q.defer(); ble.isEnabled(function (result) { q.resolve(result); }, function (error) { q.reject(error); }); return q.promise; } }; }]);