/** * Starts the IOTA with the given configuration. * * @param {Object} newConfig New configuration object. */ function start(newConfig, callback) { config.setLogger(iotAgentLib.logModule); config.setConfig(newConfig); iotAgentLib.activate(config.getConfig().iota, function(error) { if (error) { callback(error); } else { config.getLogger().info(context, 'IoT Agent services activated'); iotAgentLib.setConfigurationHandler(configurationHandler); iotAgentLib.setCommandHandler(commandHandler.handler); iotAgentLib.setProvisioningHandler(deviceProvisioningHandler); iotAgentLib.setDataUpdateHandler(updateHandler); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.attributeAlias.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.addEvents.update); if (config.getConfig().iota && config.getConfig().iota.compressTimestamp) { iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.compressTimestamp.update); iotAgentLib.addQueryMiddleware(iotAgentLib.dataPlugins.compressTimestamp.query); } if (config.getConfig().mqtt.thinkingThingsPlugin) { iotAgentLib.addUpdateMiddleware(thinkingThingPlugin.updatePlugin); } iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.expressionTransformation.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.multiEntity.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.timestampProcess.update); iotAgentLib.addDeviceProvisionMiddleware(iotAgentLib.dataPlugins.bidirectionalData.deviceProvision); iotAgentLib.addConfigurationProvisionMiddleware(iotAgentLib.dataPlugins.bidirectionalData.groupProvision); iotAgentLib.addNotificationMiddleware(iotAgentLib.dataPlugins.bidirectionalData.notification); if (config.getConfig().configRetrieval) { iotAgentLib.setNotificationHandler(configurationNotificationHandler); } else { iotAgentLib.setNotificationHandler(bidirectionalityNotificationHandler); } transportSelector.startTransportBindings(newConfig, callback); } }); }
/** * Starts the IOTA with the given configuration. * * @param {Object} newConfig New configuration object. */ function start(newConfig, callback) { var options = { keepalive: 0, connectTimeout: 60 * 60 * 1000 }; config.setLogger(iotAgentLib.logModule); config.setConfig(newConfig); if (config.getConfig().mqtt.username && config.getConfig().mqtt.password) { options.username = config.getConfig().mqtt.username; options.password = config.getConfig().mqtt.password; } iotAgentLib.activate(config.getConfig().iota, function(error) { if (error) { callback(error); } else { config.getLogger().info(context, 'IoT Agent services activated'); iotAgentLib.setProvisioningHandler(deviceProvisioningHandler); iotAgentLib.setConfigurationHandler(configurationHandler); iotAgentLib.setCommandHandler(commandHandler); iotAgentLib.setDataUpdateHandler(updateHandler); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.attributeAlias.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.addEvents.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.expressionTransformation.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.multiEntity.update); iotAgentLib.addUpdateMiddleware(iotAgentLib.dataPlugins.timestampProcess.update); iotAgentLib.addDeviceProvisionMiddleware(iotAgentLib.dataPlugins.bidirectionalData.deviceProvision); iotAgentLib.addConfigurationProvisionMiddleware(iotAgentLib.dataPlugins.bidirectionalData.groupProvision); iotAgentLib.addNotificationMiddleware(iotAgentLib.dataPlugins.bidirectionalData.notification); iotAgentLib.setNotificationHandler(notificationHandler); startTransportBindings(newConfig, callback); } }); }