diff --git a/js/ControlPage.js b/js/ControlPage.js new file mode 100644 index 0000000..b537093 --- /dev/null +++ b/js/ControlPage.js @@ -0,0 +1,181 @@ +/* + * This file is part of the Doodle3D project (http://doodle3d.com). + * + * Copyright (c) 2013-2017, 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 (w) { + var _page; + var _form; + var _statusField; + var _infoField; + var _noRetainCheckbox; + var _includeBetasCheckbox; + var _submitButton; + + var _updateAPI = new UpdateAPI(); + var _configAPI = new ConfigAPI(); + var _printerAPI = new PrinterAPI(); + var _infoAPI = new InfoAPI(); + var _pageData = {}; + var _updateStatus = {}; + var _title; + var endCode; + + var PAGE_ID = "#control"; + + var timerObject = { + interval_id : null + }; + + var _self = this; + + $.mobile.document.on( "pageinit", PAGE_ID, function( event, data ) { + console.log(PAGE_ID+":pageinit"); + + _page = $(this); + _title = _page.find(".ui-title"); + + d3d.util.showLoader(); + + $("#grpStatusAndControl").hide(); + + $("#btnSend").on("click", function(data) { + console.log("test",$("#gcode").val()); + $(this).hide(); + _printerAPI.print({ + gcode: $("#gcode").val(), + start: true, + first: true + },function(successData) { + console.log("success"); + },function(failData) { + console.log("fail"); + }); + }); +/* + $("#btnCooldown").button().on("click", function(data) { + _printerAPI.print({ + gcode: "M104 S20", + start: true, + first: true + }); + }); + + $("#btnHeatup").button().on("click", function(data) { + _printerAPI.print({ + gcode: "M104 S180", + start: true, + first: true + }); + }); + + $("#btnHome").button().on("click", function(data) { + _printerAPI.print({ + gcode: "G28", + start: true, + first: true + }); + }); +*/ + $("#btnStop").on("click", function(data) { + $(this).hide(); + + _configAPI.loadSetting("printer.endcode",function(successData) { + console.log('btnStop','endcode',successData); + _printerAPI.stop({gcode:successData}, function(successData) { + console.log("btnStop success",successData); + refreshStatus(); + },function(failData) { + console.log("btnStop fail",failData); + }); + }, function(failData) { + console.log('btnStop failed to load endcode',failData); + }); + + }); + + + }); + + function refreshStatus() { + d3d.util.showLoader(); + + _infoAPI.getStatus(function(successData) { + $("#grpStatusAndControl").show(); + + if (successData.state==="disconnected" || successData.state==="connecting") { + $("#infoState").show(); + $("#infoState").text("Printer " + successData.state + "..."); + $("#grpStatusAndControl").hide(); + } else { + $("#infoState").hide(); + $("#grpStatusAndControl").show(); + $("#infoNozzleTemperature").html(successData.hotend + " / " + successData.hotend_target + " °C"); + $("#infoPrinterStatus").text(successData.state); + // $("#infoBedTemperature").html(successData.bed + " / " + successData.bed_target + " °C"); + } + + if (successData.state==="printing") { + $("#liPrintingProgress").show(); + // console.log('printing',d3d.util.formatPercentage(successData.current_line,successData.total_lines)); + $("#infoPrintingProgress").text(d3d.util.formatPercentage(successData.current_line,successData.total_lines)); + $("#btnStop").show(); + // console.log('printing'); + } else { + // console.log('not printing'); + $("#btnStop").hide(); + $("#liPrintingProgress").hide(); + } + + if (successData.state==="idle") { + $("#grpCustomGCODE").show(); + $("#btnSend").show(); + } else { + $("#grpCustomGCODE").hide(); + } + + // console.log("getStatus success",successData); + d3d.util.hideLoader(); + + },function(failData) { + console.log("getStatus fail"); + $("#grpStatusAndControl").hide(); + d3d.util.hideLoader(); + }); + } + + $.mobile.document.on("pagebeforeshow", PAGE_ID, function( event, data ) { + _pageData = d3d.util.getPageParams(PAGE_ID); + + if(_pageData === undefined) { + console.log("ERROR",PAGE_ID,"_pageData undefined"); + $.mobile.changePage("#boxes"); + return; + } + var boxURL = "http://"+_pageData.localip; + + _title.text("Control 3D-printer on " + _pageData.wifiboxid); + + _configAPI.init(boxURL); + _printerAPI.init(boxURL); + _infoAPI.init(boxURL); + + // refreshSettings(); + + timerObject.interval_id = setInterval(function() {refreshStatus(); }, 3000); + }); + + $.mobile.document.on('pagehide', PAGE_ID, function(){ + clearInterval(timerObject.interval_id); + }); + + $.mobile.document.on( "pagebeforehide", PAGE_ID, function( event, data ) { + console.log("pagebeforehide"); + }); + + +})(window); +