ble-ble113
Version:
Library to run the Bluetooth BLE113 Tessel Module.
107 lines (92 loc) • 2.34 kB
JavaScript
var tessel = require('tessel');
var master = tessel.port('a');
var slave = tessel.port('b');
var passedLED = tessel.led(1);
var errLED = tessel.led(2);
passedLED.output().low();
errLED.output().low();
var ble = require('../index');
var _masterController;
var _slaveController;
var connectToMaster = function(next) {
_masterController = ble.connect(master, function(err) {
if (err) {
console.log("Error connecting to master!")
return errLED.high();
}
else {
console.log("Successfully connected to master.")
}
setImmediate(function() {
next && next();
});
});
}
var connectToSlave = function(next) {
console.log("Connecting to slave...");
_slaveController = ble.connect(slave, function(err) {
if (err) {
console.log("Error connecting to slave!")
return errLED.high();
}
else {
console.log("Successfully connected to slave.")
}
setImmediate(function() {
next && next();
});
})
}
var connectModules = function(next) {
connectToMaster(function() {
connectToSlave(function() {
next && next();
})
})
}
var connectOverBLE = function(next) {
console.log("Beginning slave advertisement...");
_slaveController.setAdvertisementData("Yay Tessel", function(err, response) {
if (err) return console.log("err adv", err);
else {
_slaveController.startAdvertising( function() {
if (err) {
console.log("Error making slave advertise...");
return errLED.high();
}
else {
console.log("Slave started advertising successfully...")
_masterController.scanForPeripherals(
function(err, response) {
if (err) {
console.log("Error scanning for peripherals...");
return errLED.high();
}
else {
console.log("Scanning for peripherals");
masterDetectSlave(next);
}
}
)
}
})
}
})
}
var masterDetectSlave = function(next) {
_masterController.on('discoveredPeripheral', function(peripheral) {
console.log("Found a peripheral!");
console.log(peripheral);
_masterController.stopScanning(function(err, response) {
if (err) return console.log("stop scan error: ", err);
else {
console.log("stop scan result: ", response.result);
}
});
});
}
connectModules( function() {
connectOverBLE(function() {
console.log("Finished connecting...");
});
});