/* * This file is part of the Doodle3D project (http://doodle3d.com). * * Copyright (c) 2013, Doodle3D * This software is licensed under the terms of the GNU GPL v2 or later. * See file LICENSE.txt or visit http://www.gnu.org/licenses/gpl.html for full license details. */ function NetworkAPI() { NetworkAPI.STATUS = { CONNECTING_FAILED: -1, NOT_CONNECTED: 0, CONNECTING: 1, CONNECTED: 2, CREATING: 3, CREATED: 4 }; var _apiPath = "/d3dapi"; var _apiCGIPath = "/cgi-bin"+_apiPath; var _wifiboxURL; var _wifiboxCGIBinURL; var _timeoutTime = 3000; var _self = this; this.init = function(wifiboxURL) { //console.log("NetworkAPI:init"); //console.log(" wifiboxURL: ",wifiboxURL); //console.log(" wifiboxCGIBinURL: ",wifiboxCGIBinURL); _wifiboxURL = wifiboxURL+_apiPath; _wifiboxCGIBinURL = wifiboxURL+_apiCGIPath; } this.scan = function(completeHandler,failedHandler) { //console.log("NetworkAPI:scan"); $.ajax({ url: _wifiboxURL + "/network/scan", type: "GET", dataType: 'json', timeout: _timeoutTime, success: function(response){ //console.log("NetworkAPI:scan response: ",response); if(response.status == "error" || response.status == "fail") { //console.log("NetworkAPI:scan failed: ",response); if(failedHandler) failedHandler(response); } else { completeHandler(response.data); } } }).fail(function() { //console.log("NetworkAPI:scan failed"); if(failedHandler) failedHandler(); }); }; this.status = function(completeHandler,failedHandler) { //console.log("NetworkAPI:status"); $.ajax({ url: _wifiboxURL + "/network/status", type: "GET", dataType: 'json', timeout: _timeoutTime, success: function(response){ //console.log("NetworkAPI:status response: ",response); if(response.status == "error" || response.status == "fail") { if(failedHandler) failedHandler(response); } else { completeHandler(response.data); } } }).fail(function() { if(failedHandler) failedHandler(); }); }; this.associate = function(ssid,phrase,recreate) { //console.log("NetworkAPI:associate"); var postData = { ssid:ssid, phrase:phrase, recreate:recreate }; $.ajax({ url: _wifiboxCGIBinURL + "/network/associate", type: "POST", data: postData, dataType: 'json', timeout: _timeoutTime, success: function(response){ //console.log("NetworkAPI:associate response: ",response); } }).fail(function() { //console.log("NetworkAPI:associate: timeout (normal behavior)"); }); }; this.openAP = function() { //console.log("NetworkAPI:openAP"); $.ajax({ url: _wifiboxCGIBinURL + "/network/openap", type: "POST", dataType: 'json', timeout: _timeoutTime, success: function(response){ //console.log("NetworkAPI:openAP response: ",response); } }).fail(function() { //console.log("NetworkAPI:openAP: timeout (normal behavior)"); }); }; this.signin = function() { $.ajax({ url: _wifiboxCGIBinURL + "/network/signin", type: "GET", dataType: 'json', timeout: _timeoutTime, success: function(response){ //console.log("NetworkAPI:signin response: ",response); } }).fail(function() { //console.log("NetworkAPI:signin: failed"); }); }; this.alive = function(wifiboxURL,timeoutTime,completeHandler,failedHandler) { if(wifiboxURL.indexOf("http://") != 0) { wifiboxURL = "http://" + wifiboxURL; } timeoutTime = (timeoutTime == -1)? _timeoutTime : timeoutTime; ///console.log("NetworkAPI:alive: ",wifiboxURL); $.ajax({ url: wifiboxURL + _apiPath + "/network/alive", type: "GET", dataType: 'json', timeout: timeoutTime, success: function(response){ //console.log("NetworkAPI:alive response: ",response); if(response.status == "error" || response.status == "fail") { if(failedHandler) failedHandler(response); } else { completeHandler(response.data); } } }).fail(function() { //console.log("NetworkAPI:alive failed"); if(failedHandler) failedHandler(); }); }; }