var syrup = require('stf-syrup') var logger = require('../../../util/logger') var wire = require('../../../wire') var wireutil = require('../../../wire/util') module.exports = syrup.serial() .dependency(require('./service')) .dependency(require('../support/router')) .dependency(require('../support/push')) .define(function(options, service, router, push) { var log = logger.createLogger('device:plugins:wifi') router.on(wire.WifiSetEnabledMessage, function(channel, message) { var reply = wireutil.reply(options.serial) log.info('Setting Wifi "%s"', message.enabled) service.setWifiEnabled(message.enabled) .timeout(30000) .then(function() { push.send([ channel , reply.okay() ]) }) .catch(function(err) { log.error('Setting Wifi enabled failed', err.stack) push.send([ channel , reply.fail(err.message) ]) }) }) router.on(wire.WifiGetStatusMessage, function(channel) { var reply = wireutil.reply(options.serial) log.info('Getting Wifi status') service.getWifiStatus() .timeout(30000) .then(function(enabled) { push.send([ channel , reply.okay(enabled ? 'wifi_enabled' : 'wifi_disabled') ]) }) .catch(function(err) { log.error('Getting Wifi status failed', err.stack) push.send([ channel , reply.fail(err.message) ]) }) }) })