Initial implementation of autoupdate gcodeview on status from server

master
Alex Ustyantsev 2013-02-02 14:36:43 +03:00
parent 7c00dd5594
commit 4b69bde8bb
2 changed files with 44 additions and 1 deletions

View File

@ -23,6 +23,7 @@ GCODE.gCodeReader = (function(){
purgeEmptyLayers: true, purgeEmptyLayers: true,
analyzeModel: false analyzeModel: false
}; };
var linesCmdIndex = {};
var prepareGCode = function(){ var prepareGCode = function(){
if(!lines)return; if(!lines)return;
@ -60,6 +61,16 @@ GCODE.gCodeReader = (function(){
delete tmpModel; delete tmpModel;
}; };
var prepareLinesIndex = function(){
linesCmdIndex = {};
for (var l in model){
for (var i=0; i< model[l].length; i++){
linesCmdIndex[model[l][i].gcodeLine] = {layer: l, cmd: i};
}
}
}
var purgeLayers = function(){ var purgeLayers = function(){
var purge=true; var purge=true;
if(!model){ if(!model){
@ -120,6 +131,7 @@ GCODE.gCodeReader = (function(){
if(gCodeOptions["sortLayers"])sortLayers(); if(gCodeOptions["sortLayers"])sortLayers();
// console.log(model); // console.log(model);
if(gCodeOptions["purgeEmptyLayers"])purgeLayers(); if(gCodeOptions["purgeEmptyLayers"])purgeLayers();
prepareLinesIndex();
// console.log(model); // console.log(model);
GCODE.renderer.doRender(model, 0); GCODE.renderer.doRender(model, 0);
// GCODE.renderer3d.setModel(model); // GCODE.renderer3d.setModel(model);
@ -175,6 +187,9 @@ GCODE.gCodeReader = (function(){
var i=0; var i=0;
var result = {first: model[layer][fromSegments].gcodeLine, last: model[layer][toSegments].gcodeLine}; var result = {first: model[layer][fromSegments].gcodeLine, last: model[layer][toSegments].gcodeLine};
return result; return result;
},
getLinesCmdIndex: function(line){
return linesCmdIndex[line];
} }
} }
}()); }());

View File

@ -814,7 +814,27 @@ function WebcamViewModel() {
} }
} }
function DataUpdater(connectionViewModel, printerStateViewModel, temperatureViewModel, controlsViewModel, speedViewModel, terminalViewModel, webcamViewModel) { function GcodeViewModel() {
var self = this;
self.fromHistoryData = function(data) {
self._processProgressData(data.progress);
}
self.fromCurrentData = function(data) {
self._processProgressData(data.progress);
}
self._processProgressData = function(data) {
var cmdIndex = GCODE.gCodeReader.getLinesCmdIndex(data.progress);
if(cmdIndex){
GCODE.renderer.render(cmdIndex.layer, 0, cmdIndex.cmd);
}
}
}
function DataUpdater(connectionViewModel, printerStateViewModel, temperatureViewModel, controlsViewModel, speedViewModel, terminalViewModel, webcamViewModel, gcodeViewModel) {
var self = this; var self = this;
self.connectionViewModel = connectionViewModel; self.connectionViewModel = connectionViewModel;
@ -824,6 +844,7 @@ function DataUpdater(connectionViewModel, printerStateViewModel, temperatureView
self.terminalViewModel = terminalViewModel; self.terminalViewModel = terminalViewModel;
self.speedViewModel = speedViewModel; self.speedViewModel = speedViewModel;
self.webcamViewModel = webcamViewModel; self.webcamViewModel = webcamViewModel;
self.gcodeViewModel = gcodeViewModel;
self._socket = io.connect(); self._socket = io.connect();
self._socket.on("connect", function() { self._socket.on("connect", function() {
@ -854,6 +875,7 @@ function DataUpdater(connectionViewModel, printerStateViewModel, temperatureView
self.controlsViewModel.fromHistoryData(data); self.controlsViewModel.fromHistoryData(data);
self.terminalViewModel.fromHistoryData(data); self.terminalViewModel.fromHistoryData(data);
self.webcamViewModel.fromHistoryData(data); self.webcamViewModel.fromHistoryData(data);
self.gcodeViewModel.fromHistoryData(data);
}) })
self._socket.on("current", function(data) { self._socket.on("current", function(data) {
self.connectionViewModel.fromCurrentData(data); self.connectionViewModel.fromCurrentData(data);
@ -862,6 +884,7 @@ function DataUpdater(connectionViewModel, printerStateViewModel, temperatureView
self.controlsViewModel.fromCurrentData(data); self.controlsViewModel.fromCurrentData(data);
self.terminalViewModel.fromCurrentData(data); self.terminalViewModel.fromCurrentData(data);
self.webcamViewModel.fromCurrentData(data); self.webcamViewModel.fromCurrentData(data);
self.gcodeViewModel.fromCurrentData(data);
}) })
self.reconnect = function() { self.reconnect = function() {
@ -880,7 +903,12 @@ $(function() {
var terminalViewModel = new TerminalViewModel(); var terminalViewModel = new TerminalViewModel();
var gcodeFilesViewModel = new GcodeFilesViewModel(); var gcodeFilesViewModel = new GcodeFilesViewModel();
var webcamViewModel = new WebcamViewModel(); var webcamViewModel = new WebcamViewModel();
<<<<<<< HEAD
var dataUpdater = new DataUpdater(connectionViewModel, printerStateViewModel, temperatureViewModel, controlsViewModel, speedViewModel, terminalViewModel, webcamViewModel); var dataUpdater = new DataUpdater(connectionViewModel, printerStateViewModel, temperatureViewModel, controlsViewModel, speedViewModel, terminalViewModel, webcamViewModel);
=======
var gcodeViewModel = new GcodeViewModel();
var dataUpdater = new DataUpdater(connectionViewModel, printerStateViewModel, temperatureViewModel, speedViewModel, terminalViewModel, webcamViewModel, gcodeViewModel);
>>>>>>> Initial implementation of autoupdate gcodeview on status from server
//~~ Print job control //~~ Print job control