UNPKG

flower-power-ble

Version:

node.js/BLE lib to comminucate with Parrot Flower Power devices

279 lines (246 loc) 8.87 kB
var async = require('async'); var FlowerPower = require('./index'); var hasCalibratedData = false; FlowerPower.discover(function(flowerPower) { async.series([ function(callback) { flowerPower.on('disconnect', function() { console.log('disconnected!'); process.exit(0); }); flowerPower.on('sunlightChange', function(sunlight) { console.log('\tsunlight = ' + sunlight.toFixed(2) + ' mol/m²/d'); }); // flowerPower.on('soilElectricalConductivityChange', function(soilElectricalConductivity) { // console.log('soil electrical conductivity = ' + soilElectricalConductivity.toFixed(2)); // }); flowerPower.on('soilTemperatureChange', function(temperature) { console.log('\tsoil temperature = ' + temperature.toFixed(2) + '°C'); }); flowerPower.on('airTemperatureChange', function(temperature) { console.log('\tair temperature = ' + temperature.toFixed(2) + '°C'); }); flowerPower.on('soilMoistureChange', function(soilMoisture) { console.log('\tsoil moisture = ' + soilMoisture.toFixed(2) + '%'); }); flowerPower.on('calibratedSoilMoistureChange', function(soilMoisture) { console.log('\tcalibrated soil moisture = ' + soilMoisture.toFixed(2) + '%'); }); flowerPower.on('calibratedAirTemperatureChange', function(temperature) { console.log('\tcalibrated air temperature = ' + temperature.toFixed(2) + '°C'); }); flowerPower.on('calibratedSunlightChange', function(sunlight) { console.log('\tcalibrated sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d'); }); flowerPower.on('calibratedEaChange', function(ea) { console.log('\tcalibrated EA = ' + ea.toFixed(2)); }); flowerPower.on('calibratedEcbChange', function(ecb) { console.log('\tcalibrated ECB = ' + ecb.toFixed(2) + ' dS/m'); }); flowerPower.on('calibratedEcPorousChange', function(ecPorous) { console.log('\tcalibrated EC porous = ' + ecPorous.toFixed(2)+ ' dS/m'); }); console.log('connectAndSetup'); flowerPower.connectAndSetup(callback); }, function(callback) { console.log('readSystemId'); flowerPower.readSystemId(function(error, systemId) { console.log('\tsystem id = ' + systemId); callback(); }); }, function(callback) { console.log('readSerialNumber'); flowerPower.readSerialNumber(function(error, serialNumber) { console.log('\tserial number = ' + serialNumber); callback(); }); }, function(callback) { console.log('readFirmwareRevision'); flowerPower.readFirmwareRevision(function(error, firmwareRevision) { console.log('\tfirmware revision = ' + firmwareRevision); var version = firmwareRevision.split('_')[1].split('-')[1]; hasCalibratedData = (version >= '1.1.0'); callback(); }); }, function(callback) { console.log('readHardwareRevision'); flowerPower.readHardwareRevision(function(error, hardwareRevision) { console.log('\thardware revision = ' + hardwareRevision); callback(); }); }, function(callback) { console.log('readManufacturerName'); flowerPower.readManufacturerName(function(error, manufacturerName) { console.log('\tmanufacturer name = ' + manufacturerName); callback(); }); }, function(callback) { console.log('readBatteryLevel'); flowerPower.readBatteryLevel(function(error, batteryLevel) { console.log('\tbattery level = ' + batteryLevel); callback(); }); }, function(callback) { console.log('readFriendlyName'); flowerPower.readFriendlyName(function(error, friendlyName) { console.log('\tfriendly name = ' + friendlyName); console.log('writeFriendlyName'); flowerPower.writeFriendlyName(friendlyName, callback); }); }, function(callback) { console.log('readColor'); flowerPower.readColor(function(error, color) { console.log('\tcolor = ' + color); callback(); }); }, function(callback) { console.log('readSunlight'); flowerPower.readSunlight(function(error, sunlight) { console.log('\tsunlight = ' + sunlight.toFixed(2) + ' mol/m²/d'); callback(); }); }, // function(callback) { // console.log('readSoilElectricalConductivity'); // flowerPower.readSoilElectricalConductivity(function(error, soilElectricalConductivity) { // console.log('soil electrical conductivity = ' + soilElectricalConductivity.toFixed(2)); // callback(); // }); // }, function(callback) { console.log('readSoilTemperature'); flowerPower.readSoilTemperature(function(error, temperature) { console.log('\tsoil temperature = ' + temperature.toFixed(2) + '°C'); callback(); }); }, function(callback) { console.log('readAirTemperature'); flowerPower.readAirTemperature(function(error, temperature) { console.log('\tair temperature = ' + temperature.toFixed(2) + '°C'); callback(); }); }, function(callback) { console.log('readSoilMoisture'); flowerPower.readSoilMoisture(function(error, soilMoisture) { console.log('\tsoil moisture = ' + soilMoisture.toFixed(2) + '%'); callback(); }); }, function(callback) { if (hasCalibratedData) { async.series([ function(callback) { console.log('readCalibratedSoilMoisture'); flowerPower.readCalibratedSoilMoisture(function(error, soilMoisture) { console.log('\tcalibrated soil moisture = ' + soilMoisture.toFixed(2) + '%'); callback(); }); }, function(callback) { console.log('readCalibratedAirTemperature'); flowerPower.readCalibratedAirTemperature(function(error, temperature) { console.log('\tcalibrated air temperature = ' + temperature.toFixed(2) + '°C'); callback(); }); }, function(callback) { console.log('readCalibratedSunlight'); flowerPower.readCalibratedSunlight(function(error, sunlight) { console.log('\tcalibrated sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d'); callback(); }); }, function(callback) { console.log('readCalibratedEa'); flowerPower.readCalibratedEa(function(error, ea) { console.log('\tcalibrated EA = ' + ea.toFixed(2)); callback(); }); }, function(callback) { console.log('readCalibratedEcb'); flowerPower.readCalibratedEcb(function(error, ecb) { console.log('\tcalibrated ECB = ' + ecb.toFixed(2) + ' dS/m'); callback(); }); }, function(callback) { console.log('readCalibratedEcPorous'); flowerPower.readCalibratedEcPorous(function(error, ecPorous) { console.log('\tcalibrated EC porous = ' + ecPorous.toFixed(2) + ' dS/m'); callback(); }); }, function() { callback(); } ]); } else { callback(); } }, function(callback) { console.log('enableLiveMode'); flowerPower.enableLiveMode(callback); }, function(callback) { console.log('live mode'); setTimeout(callback, 5000); }, function(callback) { console.log('disableLiveMode'); flowerPower.disableLiveMode(callback); }, function(callback) { if (hasCalibratedData) { async.series([ function(callback) { console.log('enableCalibratedLiveMode'); flowerPower.enableCalibratedLiveMode(callback); }, function(callback) { console.log('calibrated live mode'); setTimeout(callback, 5000); }, function(callback) { console.log('disableCalibratedLiveMode'); flowerPower.disableCalibratedLiveMode(callback); }, function() { callback(); } ]); } else { callback(); } }, function(callback) { console.log('ledPulse'); flowerPower.ledPulse(callback); }, function(callback) { console.log('delay'); setTimeout(callback, 2000); }, function(callback) { console.log('ledOff'); flowerPower.ledOff(callback); }, function(callback) { console.log('disconnect'); flowerPower.disconnect(callback); } ]); });