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 ConnmanService.prototype.setAutoConnect = function(autoconnect, success_cb, error_cb) {
95 if (wsAPI === undefined) return;
102 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_SERVICE, 'autoconnect', value, success_cb, error_cb);
105 function getTechnologies(success_cb, error_cb) {
106 if (wsAPI === undefined) return;
107 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_MANAGER, 'get_technologies', null, function(results) {
108 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
109 error_cb('Cannot parse technologies');
113 var technologies_list = results[0];
116 var technologies = [];
117 for (var i = 0; i < technologies_list.length; i++) {
118 if (technologies_list[i][0] === undefined || technologies_list[i][1] === undefined) {
119 console.log('Badly form json message: ' + json_msg);
122 var technology = new settings.connman.ConnmanTechnology(technologies_list[i][0], technologies_list[i][1]);
123 technologies.push(technology);
128 success_cb(technologies);
132 function getServices(success_cb, error_cb) {
133 if (wsAPI === undefined) return;
134 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_MANAGER, 'get_services', null, function(results) {
135 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
136 error_cb('Cannot parse get_services results');
140 var services_list = results[0];
144 for (var i = 0; i < services_list.length; i++) {
145 if (services_list[i][0] === undefined || services_list[i][1] === undefined) {
146 console.log('Badly form json message: ' + json_msg);
149 var service = new settings.connman.ConnmanService(services_list[i][0], services_list[i][1]);
150 results.push(service);
159 function scan(technology, success_cb, error_cb) {
160 if (wsAPI === undefined) return;
161 wsAPI.sendRequest(WS_REQUEST_TYPE.CONNMAN_TECHNOLOGY, 'scan', [technology, null], function(results) {
162 if (results.length >= 0 && results[0].length >= 0 && results[0][0][0] === undefined) {
163 error_cb('Cannot parse scan results');
167 var services_list = results[0];
171 for (var i = 0; i < services_list.length; i++) {
172 if (services_list[i][0] === undefined || services_list[i][1] === undefined) {
173 console.log('Badly form json message: ' + json_msg);
176 var service = new settings.connman.ConnmanService(services_list[i][0], services_list[i][1]);
177 services.push(service);
182 success_cb(services);
187 ConnmanTechnology: ConnmanTechnology,
188 ConnmanService: ConnmanService,
189 getTechnologies: getTechnologies,
190 getServices: getServices,