ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
144 lines (124 loc) • 4.19 kB
JavaScript
// 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;
}
};
}]);