2 * Copyright (c) 2013, Intel Corporation.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
11 var settings = settings || {};
12 settings.connman = settings.connman || {};
15 settings.connman = (function() {
17 var default_adapter = null;
19 /* Technology class */
20 var ConnmanTechnology = function(technology_path, technology_properties) {
21 this.id = technology_path;
22 this.prop = technology_properties;
25 ConnmanTechnology.prototype.setPowered = function(powered, success_cb, error_cb) {
26 if (wsAPI === undefined) return;
27 if (this.setPowerInProgress) {
28 console.log('Enabling/disabling technology in progress');
33 this.setPowerInProgress = true;
34 setTimeout(function() {
35 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_TECHNOLOGY, 'enable', [me.id, powered], function() {
36 me.setPowerInProgress = false;
39 if (e.indexOf('Already enabled') >= 0) {
40 console.log('connman ' + me.prop.Type + ' already enabled');
41 me.setPowerInProgress = false;
43 } else if (e.indexOf('Already disabled') >= 0) {
44 console.log('connman ' + me.prop.Type + ' already disabled');
45 me.setPowerInProgress = false;
48 me.setPowerInProgress = false;
55 ConnmanTechnology.prototype.getPowered = function(success_cb, error_cb) {
56 if (wsAPI === undefined) return;
58 wsAPI.sendRequest(this.prop.Type, 'is_enabled', null, function(isEnabled) {
59 if (isEnabled === undefined) {
60 console.log('Badly formed json message: ' + json_msg);
62 me.powered = isEnabled;
63 success_cb(me.powered);
68 ConnmanService = function(service_path, service_properties) {
69 this.id = service_path;
70 this.prop = service_properties;
73 ConnmanService.prototype.connect = function(passphrase, success_cb, error_cb) {
74 if (wsAPI === undefined) return;
78 'Name': this.prop.Name,
79 'Type': this.prop.EncryptionMode,
83 info[1].Passphrase = passphrase;
86 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_SERVICE, 'connect', info, success_cb, error_cb);
89 ConnmanService.prototype.disconnect = function(success_cb, error_cb) {
90 if (wsAPI === undefined) return;
91 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_SERVICE, 'disconnect', [this.id, null], success_cb, error_cb);
94 function getTechnologies(success_cb, error_cb) {
95 if (wsAPI === undefined) return;
96 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_MANAGER, 'get_technologies', null, function(results) {
97 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
98 error_cb('Cannot parse technologies');
102 var technologies_list = results[0];
105 var technologies = [];
106 for (var i = 0; i < technologies_list.length; i++) {
107 if (technologies_list[i][0] === undefined || technologies_list[i][1] === undefined) {
108 console.log('Badly form json message: ' + json_msg);
111 var technology = new settings.connman.ConnmanTechnology(technologies_list[i][0], technologies_list[i][1]);
112 technologies.push(technology);
117 success_cb(technologies);
121 function getServices(success_cb, error_cb) {
122 if (wsAPI === undefined) return;
123 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_MANAGER, 'get_services', null, function(results) {
124 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
125 error_cb('Cannot parse get_services results');
129 var services_list = results[0];
133 for (var i = 0; i < services_list.length; i++) {
134 if (services_list[i][0] === undefined || services_list[i][1] === undefined) {
135 console.log('Badly form json message: ' + json_msg);
138 var service = new settings.connman.ConnmanService(services_list[i][0], services_list[i][1]);
139 results.push(service);
148 function scan(technology, success_cb, error_cb) {
149 if (wsAPI === undefined) return;
150 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_TECHNOLOGY, 'scan', [technology, null], function(results) {
151 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
152 error_cb('Cannot parse scan results');
156 var services_list = results[0];
160 for (var i = 0; i < services_list.length; i++) {
161 if (services_list[i][0] === undefined || services_list[i][1] === undefined) {
162 console.log('Badly form json message: ' + json_msg);
165 var service = new settings.connman.ConnmanService(services_list[i][0], services_list[i][1]);
166 services.push(service);
171 success_cb(services);
176 ConnmanTechnology: ConnmanTechnology,
177 ConnmanService: ConnmanService,
178 getTechnologies: getTechnologies,
179 getServices: getServices,