trying to get the gcode viewer working
This commit is contained in:
parent
a4a274b78b
commit
fa48a1393f
8 changed files with 61 additions and 18 deletions
|
|
@ -22,6 +22,7 @@
|
|||
<ul class="nav nav-pills">
|
||||
<li class="active"><a href="#workingarea" data-toggle="tab">working area</a></li>
|
||||
<!--<li><a href="#designlib" data-toggle="tab">design library</a></li>-->
|
||||
<li><a href="#gcode" data-toggle="tab">gcode</a></li>
|
||||
<li><a href="#focus" data-toggle="tab">focus</a></li>
|
||||
<li><a href="#term" data-toggle="tab">terminal</a></li>
|
||||
<li xstyle="display: none;" xdata-bind="visible: loginState.isAdmin">
|
||||
|
|
@ -390,6 +391,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="gcode">
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
{% include 'tabs/gcodeviewer.jinja2' %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="settings">
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
var layerCnt = 0;
|
||||
var speeds = {extrude: [], retract: [], move: []};
|
||||
var speedsByLayer = {extrude: {}, retract: {}, move: {}};
|
||||
|
||||
console.error("WORKER");
|
||||
var sendLayerToParent = function(layerNum, z, progress){
|
||||
self.postMessage({
|
||||
"cmd": "returnLayer",
|
||||
|
|
@ -261,6 +261,7 @@
|
|||
var log = false;
|
||||
|
||||
if (/^(?:G0|G1)\s/i.test(line)) {
|
||||
console.log("Worker.js doParse", line);
|
||||
var args = line.split(/\s/);
|
||||
|
||||
for (var j = 0; j < args.length; j++) {
|
||||
|
|
@ -466,7 +467,7 @@
|
|||
z_heights[prevZ] = layer;
|
||||
}
|
||||
}
|
||||
|
||||
console.log("worker.js addToModel", addToModel, line);
|
||||
if (addToModel) {
|
||||
if (!model[layer]) model[layer] = [];
|
||||
model[layer].push({
|
||||
|
|
@ -486,6 +487,7 @@
|
|||
tool: tool
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
if (move) {
|
||||
if (typeof(x) !== 'undefined') prevX = x;
|
||||
|
|
@ -505,11 +507,13 @@
|
|||
sendLayerZ = undefined;
|
||||
}
|
||||
}
|
||||
console.log("worker.js model", model);
|
||||
sendMultiLayerToParent(sendMultiLayer, sendMultiLayerZ, i / gcode.length*100);
|
||||
};
|
||||
|
||||
|
||||
var parseGCode = function(message){
|
||||
console.log("Worker.js", "parseGCode", message.options);
|
||||
gcode = message.gcode;
|
||||
firstReport = message.options.firstReport;
|
||||
toolOffsets = message.options.toolOffsets;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ GCODE.gCodeReader = (function(){
|
|||
byteCount += lines[i].length + 1; // line length + \n
|
||||
tmp = lines[i].indexOf(";");
|
||||
if(tmp > 1 || tmp === -1) {
|
||||
//console.log("gCodeReader.js line", lines[i]);
|
||||
gcode.push({line: lines[i], percentage: byteCount * 100 / totalSize});
|
||||
}
|
||||
}
|
||||
|
|
@ -131,6 +132,7 @@ GCODE.gCodeReader = (function(){
|
|||
lines = reader.target.result.split(/\n/);
|
||||
reader.target.result = null;
|
||||
prepareGCode(totalSize);
|
||||
console.log("gCodeReader loadFile", totalSize);
|
||||
|
||||
GCODE.ui.worker.postMessage({
|
||||
"cmd":"parseGCode",
|
||||
|
|
|
|||
|
|
@ -46,9 +46,11 @@ GCODE.ui = (function(){
|
|||
};
|
||||
|
||||
var processMessage = function(e){
|
||||
console.log("ui processMessage", e.data.cmd);
|
||||
var data = e.data;
|
||||
switch (data.cmd) {
|
||||
case "returnModel":
|
||||
console.log("ui processMessage returnModel -> analyzeModel");
|
||||
GCODE.ui.worker.postMessage({
|
||||
"cmd":"analyzeModel",
|
||||
"msg":{}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ $(function() {
|
|||
|
||||
var printerStateViewModel = new PrinterStateViewModel(loginStateViewModel, timelapseViewModel);
|
||||
var settingsViewModel = new SettingsViewModel(loginStateViewModel, usersViewModel, printerProfilesViewModel);
|
||||
var gcodeViewModel = new GcodeViewModel(loginStateViewModel, settingsViewModel);
|
||||
var connectionViewModel = new ConnectionViewModel(loginStateViewModel, settingsViewModel, printerProfilesViewModel);
|
||||
var appearanceViewModel = new AppearanceViewModel(settingsViewModel, printerStateViewModel);
|
||||
var temperatureViewModel = new TemperatureViewModel(loginStateViewModel, settingsViewModel);
|
||||
|
|
@ -75,7 +76,6 @@ $(function() {
|
|||
//var gcodeFilesViewModel = new GcodeFilesViewModel(printerStateViewModel, loginStateViewModel, slicingViewModel, vectorConversionViewModel, workingAreaViewModel);
|
||||
var gcodeFilesViewModel = new GcodeFilesViewModel(printerStateViewModel, loginStateViewModel, slicingViewModel, null, null);
|
||||
var controlViewModel = new ControlViewModel(loginStateViewModel, settingsViewModel, printerStateViewModel);
|
||||
var gcodeViewModel = new GcodeViewModel(loginStateViewModel, settingsViewModel);
|
||||
var navigationViewModel = new NavigationViewModel(loginStateViewModel, appearanceViewModel, settingsViewModel, usersViewModel);
|
||||
var logViewModel = new LogViewModel(loginStateViewModel);
|
||||
|
||||
|
|
@ -283,12 +283,6 @@ $(function() {
|
|||
}
|
||||
}
|
||||
|
||||
// change working area when window size is changed
|
||||
// $(window).resize(function(){
|
||||
// workingAreaViewModel.trigger_resize();
|
||||
// });
|
||||
// workingAreaViewModel.trigger_resize(); // initialize
|
||||
// workingAreaViewModel.init();
|
||||
|
||||
$(document).bind("dragover", function (e) {
|
||||
var dropOverlay = $("#drop_overlay");
|
||||
|
|
@ -451,16 +445,14 @@ $(function() {
|
|||
ko.applyBindings(connectionViewModel, document.getElementById("connection"));
|
||||
ko.applyBindings(printerStateViewModel, document.getElementById("state"));
|
||||
ko.applyBindings(gcodeFilesViewModel, document.getElementById("files_accordion"));
|
||||
//ko.applyBindings(temperatureViewModel, document.getElementById("temp"));
|
||||
ko.applyBindings(controlViewModel, document.getElementById("control"));
|
||||
ko.applyBindings(controlViewModel, document.getElementById("focus"));
|
||||
ko.applyBindings(terminalViewModel, document.getElementById("term"));
|
||||
// var gcode = document.getElementById("gcode");
|
||||
// if (gcode) {
|
||||
// gcodeViewModel.initialize();
|
||||
// ko.applyBindings(gcodeViewModel, gcode);
|
||||
// }
|
||||
// ko.applyBindings(settingsViewModel, document.getElementById("settings_dialog"));
|
||||
var gcode = document.getElementById("gcode");
|
||||
if (gcode) {
|
||||
gcodeViewModel.initialize();
|
||||
ko.applyBindings(gcodeViewModel, gcode);
|
||||
}
|
||||
// ko.applyBindings(navigationViewModel, document.getElementById("navbar"));
|
||||
// ko.applyBindings(appearanceViewModel, document.getElementsByTagName("head")[0]);
|
||||
// ko.applyBindings(printerStateViewModel, document.getElementById("drop_overlay"));
|
||||
|
|
|
|||
|
|
@ -174,6 +174,30 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel, slicing
|
|||
};
|
||||
|
||||
self.startGcodeWithSafetyWarning = function(gcodeFile){
|
||||
console.log("files.js startGcodeWithSafetyWarning", gcodeFile);
|
||||
var date = Date.now();
|
||||
if(GCODE){
|
||||
url: BASEURL + "downloads/files/local/" + gcodeFile,
|
||||
$.ajax({
|
||||
data: { "ctime": date },
|
||||
type: "GET",
|
||||
success: function(response, rstatus) {
|
||||
if(rstatus === 'success'){
|
||||
var par = {
|
||||
target: {
|
||||
result: response
|
||||
}
|
||||
};
|
||||
console.log("files.js loaded gcode");
|
||||
GCODE.gCodeReader.loadFile(par);
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
self.status = "idle";
|
||||
self.errorCount++;
|
||||
}
|
||||
});
|
||||
}
|
||||
self.printerState.show_safety_glasses_warning(function(){
|
||||
self.loadFile(gcodeFile, true);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -470,5 +470,16 @@ function GcodeViewModel(loginStateViewModel, settingsViewModel) {
|
|||
self.onDataUpdaterReconnect = function() {
|
||||
self.reset();
|
||||
}
|
||||
|
||||
self.onSlicingDone = function(payload){
|
||||
console.log("gcode.js onSlicingDone", payload);
|
||||
var file = payload.gcode;
|
||||
var loc = payload.gcode_location;
|
||||
self.loadFile(file, Date.now());
|
||||
};
|
||||
|
||||
self.onUpdatedFiles = function(payload){
|
||||
// console.log("gcode.js onUpdatedFiles", payload);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -453,7 +453,6 @@ class MachineCom(object):
|
|||
"file": self._currentFile.getFilename(),
|
||||
"origin": self._currentFile.getFileLocation()
|
||||
})
|
||||
print("comm.py selectFile", filename, self._currentFile)
|
||||
self._callback.mcFileSelected(filename, self._currentFile.getFilesize(), False)
|
||||
|
||||
def unselectFile(self):
|
||||
|
|
@ -779,7 +778,6 @@ class MachineCom(object):
|
|||
if("Alarm" in line):
|
||||
self._changeState(self.STATE_LOCKED)
|
||||
if("Idle" in line and self._state == self.STATE_LOCKED):
|
||||
print("### comm.py GRBL pos update", line)
|
||||
self._changeState(self.STATE_OPERATIONAL)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue