From 38373b8877d7b21fa3bee0e2ca4311b2bf2fc2d1 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Fri, 5 Jul 2024 11:59:47 +0530 Subject: [PATCH 01/30] storing mach position to config --- src/py/bbctrl/Mach.py | 8 ++++++++ src/resources/config-template.json | 33 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 2aee1ef..a522a00 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -358,6 +358,7 @@ class Mach(Comm): def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state + config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -370,6 +371,13 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) + json_data = config.copy() + axes = json_data.get('axes') + if axes: + json_data['axes'][axis] = { "abs": target, "off": state.get('offset_' + axis) } + else: + json_data['axes'] = { axis: { "abs": target, "off": state.get('offset_' + axis) } } + config.save(json_data) state.set(axis + 'p', target) super().queue_command(Cmd.set_axis(axis, target)) diff --git a/src/resources/config-template.json b/src/resources/config-template.json index 9d56bc5..5e027da 100644 --- a/src/resources/config-template.json +++ b/src/resources/config-template.json @@ -653,6 +653,39 @@ } }, + "axes": { + "x": { + "abs": { + "type": "string", + "default": "0" + }, + "off": { + "type": "string", + "default": "0" + } + }, + "y": { + "abs": { + "type": "string", + "default": "0" + }, + "off": { + "type": "string", + "default": "0" + } + }, + "z": { + "abs": { + "type": "string", + "default": "0" + }, + "off": { + "type": "string", + "default": "0" + } + } + }, + "admin": { "auto-check-upgrade": { "type": "bool", From a266dca2048e41b560ba03abffb5a1f0dc40a100 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Fri, 5 Jul 2024 12:26:47 +0530 Subject: [PATCH 02/30] updated mach.py --- src/py/bbctrl/Mach.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index a522a00..1eead51 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -371,12 +371,9 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - json_data = config.copy() - axes = json_data.get('axes') - if axes: - json_data['axes'][axis] = { "abs": target, "off": state.get('offset_' + axis) } - else: - json_data['axes'] = { axis: { "abs": target, "off": state.get('offset_' + axis) } } + json_data = config.values.copy() + axes = json_data.setdefault('axes', {}) + axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} config.save(json_data) state.set(axis + 'p', target) super().queue_command(Cmd.set_axis(axis, target)) From 9ca1e18e938558b6fbf33342f1ecd2493b6595a3 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 13:43:57 +0530 Subject: [PATCH 03/30] editing mach.py --- src/py/bbctrl/Mach.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 1eead51..65cee3a 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -371,10 +371,11 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - json_data = config.values.copy() + json_data = config.values axes = json_data.setdefault('axes', {}) axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} - config.save(json_data) + self.mlog.info('json_data: ' + repr(json_data)) + # config.save(json_data) state.set(axis + 'p', target) super().queue_command(Cmd.set_axis(axis, target)) From 3cbaedf9050451fa8ad79a8dcdc59b01fb5e6f79 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 15:32:05 +0530 Subject: [PATCH 04/30] saving config in vue --- src/js/control-view.js | 17 ++++++++++++++--- src/py/bbctrl/Mach.py | 12 ++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index c3e3afd..a87e9b2 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -725,7 +725,9 @@ module.exports = { return; } const macrosList = this.state.macros_list.map(item => item.file_name); - var files_to_delete = selected_folder.files.map(item => item.file_name).filter(item => !macrosList.includes(item)); + var files_to_delete = selected_folder.files + .map(item => item.file_name) + .filter(item => !macrosList.includes(item)); if (selected_folder.name != "default") { this.config.gcode_list = this.config.gcode_list.filter(item => item.name != this.state.folder); } else { @@ -773,8 +775,17 @@ module.exports = { SvelteComponents.showDialog("Message", { title: this[axis].toolmsg }); }, - set_position: function (axis, position) { - api.put(`position/${axis}`, { position: parseFloat(position) }); + set_position: async function (axis, position) { + this.update_config(); + if (!this.config.axes) { + this.config.axes = {}; + } + this.config.axes[axis] = { + abs: position + this.state["offset_" + axis], + off: this.state["offset_" + axis], + }; + console.log(this.config); + await api.put(`position/${axis}`, { position: parseFloat(position) }); }, zero_all: function () { diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 65cee3a..dd838af 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -358,7 +358,7 @@ class Mach(Comm): def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state - config = self.ctrl.config + # config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -371,11 +371,11 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - json_data = config.values - axes = json_data.setdefault('axes', {}) - axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} - self.mlog.info('json_data: ' + repr(json_data)) - # config.save(json_data) + # json_data = config.values + # axes = json_data.setdefault('axes', {}) + # axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} + self.mlog.info('target ' + target) + self.mlog.info('state.get ' + state.get('offset_' + axis)) state.set(axis + 'p', target) super().queue_command(Cmd.set_axis(axis, target)) From 9a2457d0f33946fafcfe76eb90d1684d1b12a1cc Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 17:35:51 +0530 Subject: [PATCH 05/30] updating in mach --- src/js/control-view.js | 21 +++++++++++---------- src/py/bbctrl/Mach.py | 10 +++++++--- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index a87e9b2..b81bbd2 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -776,16 +776,17 @@ module.exports = { }, set_position: async function (axis, position) { - this.update_config(); - if (!this.config.axes) { - this.config.axes = {}; - } - this.config.axes[axis] = { - abs: position + this.state["offset_" + axis], - off: this.state["offset_" + axis], - }; - console.log(this.config); - await api.put(`position/${axis}`, { position: parseFloat(position) }); + api.put(`position/${axis}`, { position: parseFloat(position) }); + // this.update_config(); + // if (!this.config.axes) { + // this.config.axes = {}; + // } + // this.config.axes[axis] = { + // abs: position + this.state["offset_" + axis], + // off: this.state["offset_" + axis], + // }; + // console.log(this.config); + // await this.save_config(this.config); }, zero_all: function () { diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index dd838af..afa82b9 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -358,7 +358,7 @@ class Mach(Comm): def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state - # config = self.ctrl.config + config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -374,9 +374,13 @@ class Mach(Comm): # json_data = config.values # axes = json_data.setdefault('axes', {}) # axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} - self.mlog.info('target ' + target) - self.mlog.info('state.get ' + state.get('offset_' + axis)) + self.mlog.info('target ' + str(target)) + self.mlog.info('state.get ' + str(state.get('offset_' + axis))) state.set(axis + 'p', target) + if 'axes' in config.values: + config.values['axes'][axis] = { 'abs' : target, 'off' : state.get('offset_' + axis) } + else: + config.values['axes'] = { axis : { 'abs' : target, 'off' : state.get('offset_' + axis) } } super().queue_command(Cmd.set_axis(axis, target)) From 83ad502995472abf6bf3ee35730d47b1425e4276 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 18:30:54 +0530 Subject: [PATCH 06/30] setting config --- src/py/bbctrl/Config.py | 4 ++++ src/py/bbctrl/Mach.py | 7 +++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index dd7c780..29f487a 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -79,6 +79,10 @@ class Config(object): def get(self, name, default = None): return self.values.get(name, default) + def set(self, name, default = None): + self.log.info(f'name:{name} default:{default}') + self.log.info(f'config: {repr(self)}') + def save(self, config): self._upgrade(config) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index afa82b9..ecd6ebd 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -377,10 +377,9 @@ class Mach(Comm): self.mlog.info('target ' + str(target)) self.mlog.info('state.get ' + str(state.get('offset_' + axis))) state.set(axis + 'p', target) - if 'axes' in config.values: - config.values['axes'][axis] = { 'abs' : target, 'off' : state.get('offset_' + axis) } - else: - config.values['axes'] = { axis : { 'abs' : target, 'off' : state.get('offset_' + axis) } } + axes = config.values.setdefault('axes',{}) + axes[axis]['abs'] = target + config.set('axes',axes) super().queue_command(Cmd.set_axis(axis, target)) From 266d1866173362bac3f0121d568e10825bb77e94 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 18:38:43 +0530 Subject: [PATCH 07/30] set_values --- src/py/bbctrl/Config.py | 2 +- src/py/bbctrl/Mach.py | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 29f487a..d988e00 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -79,7 +79,7 @@ class Config(object): def get(self, name, default = None): return self.values.get(name, default) - def set(self, name, default = None): + def set_values(self, name, default = None): self.log.info(f'name:{name} default:{default}') self.log.info(f'config: {repr(self)}') diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index ecd6ebd..83dfa38 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -371,15 +371,12 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - # json_data = config.values - # axes = json_data.setdefault('axes', {}) - # axes[axis] = { 'abs' : target, 'off' : state.get('offset_' + axis)} self.mlog.info('target ' + str(target)) self.mlog.info('state.get ' + str(state.get('offset_' + axis))) state.set(axis + 'p', target) axes = config.values.setdefault('axes',{}) axes[axis]['abs'] = target - config.set('axes',axes) + config.set_values('axes',axes) super().queue_command(Cmd.set_axis(axis, target)) From 2f590933887d0e9bab640e0ef4b7574a16d0cf1a Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 18:43:00 +0530 Subject: [PATCH 08/30] commenting function --- src/py/bbctrl/Config.py | 6 +++--- src/py/bbctrl/Mach.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index d988e00..27e77c1 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -79,9 +79,9 @@ class Config(object): def get(self, name, default = None): return self.values.get(name, default) - def set_values(self, name, default = None): - self.log.info(f'name:{name} default:{default}') - self.log.info(f'config: {repr(self)}') + # def set_values(self, name, default = None): + # self.log.info(f'name:{name} default:{default}') + # self.log.info(f'config: {repr(self)}') def save(self, config): diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 83dfa38..b9de8bb 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -376,7 +376,7 @@ class Mach(Comm): state.set(axis + 'p', target) axes = config.values.setdefault('axes',{}) axes[axis]['abs'] = target - config.set_values('axes',axes) + # config.set_values('axes',axes) super().queue_command(Cmd.set_axis(axis, target)) From 49efa31281dc74c9ea08810a7c00c8d38633bbfc Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 19:00:26 +0530 Subject: [PATCH 09/30] added save in mach --- src/py/bbctrl/Config.py | 2 +- src/py/bbctrl/Mach.py | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 27e77c1..a56ea59 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -79,7 +79,7 @@ class Config(object): def get(self, name, default = None): return self.values.get(name, default) - # def set_values(self, name, default = None): + # def set(self, name, default = None): # self.log.info(f'name:{name} default:{default}') # self.log.info(f'config: {repr(self)}') diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index b9de8bb..e33871a 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -28,7 +28,8 @@ import bbctrl from bbctrl.Comm import Comm import bbctrl.Cmd as Cmd - +import os +import json # Axis homing procedure: # @@ -354,11 +355,26 @@ class Mach(Comm): def optional_pause(self, enable = True): self.ctrl.state.set('optional_pause', enable) + def save_config(self, axis, target): + config = self.ctrl.config + path = self.ctrl.get_path('config.json') + + try: + if os.path.exists(path): + with open(path, 'r') as f: config_data = json.load(f) + else: config_data = {'version': self.version} + + axes = config_data.setdefault('axes',{}) + axes[axis]['abs'] = target + config.save(config_data) + self.mlog.info(f'done with config: {config_data}') + except Exception: self.log.exception('Internal error: Failed to upgrade config') + + def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state - config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -374,9 +390,7 @@ class Mach(Comm): self.mlog.info('target ' + str(target)) self.mlog.info('state.get ' + str(state.get('offset_' + axis))) state.set(axis + 'p', target) - axes = config.values.setdefault('axes',{}) - axes[axis]['abs'] = target - # config.set_values('axes',axes) + self.save_config(axis, target) super().queue_command(Cmd.set_axis(axis, target)) From 16d3898f7f7f316fdf7ca7495d582197074c5b1d Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 22:54:11 +0530 Subject: [PATCH 10/30] modified config struct --- src/py/bbctrl/Config.py | 27 +++++++++++++++-- src/py/bbctrl/Mach.py | 22 +++----------- src/resources/config-template.json | 48 +++++++++++++----------------- 3 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index a56ea59..e9a7c96 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -78,11 +78,32 @@ class Config(object): def get(self, name, default = None): return self.values.get(name, default) + + def set(self, name, default = None): + config = self.ctrl.config + path = self.ctrl.get_path('config.json') - # def set(self, name, default = None): - # self.log.info(f'name:{name} default:{default}') - # self.log.info(f'config: {repr(self)}') + try: + if os.path.exists(path): + with open(path, 'r') as f: config_data = json.load(f) + else: config_data = {'version': self.version} + if name in config_data: + existing_value = config_data[name] + if isinstance(existing_value, dict) and isinstance(default, dict): + config_data[name] = {**existing_value, **default} + elif isinstance(existing_value, list) and isinstance(default, list): + config_data[name].extend(default) + elif isinstance(existing_value, list): + config_data[name].append(default) + else: + config_data[name] = default + else: + config_data[name] = default + + config.save(config_data) + self.log.info('name:{} default:{}'.format(name, default)) + except Exception: self.log.exception('Internal error: Failed to upgrade config') def save(self, config): self._upgrade(config) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index e33871a..5dc232f 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -355,26 +355,10 @@ class Mach(Comm): def optional_pause(self, enable = True): self.ctrl.state.set('optional_pause', enable) - def save_config(self, axis, target): - config = self.ctrl.config - path = self.ctrl.get_path('config.json') - - try: - if os.path.exists(path): - with open(path, 'r') as f: config_data = json.load(f) - else: config_data = {'version': self.version} - - axes = config_data.setdefault('axes',{}) - axes[axis]['abs'] = target - config.save(config_data) - self.mlog.info(f'done with config: {config_data}') - except Exception: self.log.exception('Internal error: Failed to upgrade config') - - - def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state + config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -390,7 +374,9 @@ class Mach(Comm): self.mlog.info('target ' + str(target)) self.mlog.info('state.get ' + str(state.get('offset_' + axis))) state.set(axis + 'p', target) - self.save_config(axis, target) + axes = config.values.setdefault('axes',{}) + axes[axis + 'p'] = target + config.set('axes', axes) super().queue_command(Cmd.set_axis(axis, target)) diff --git a/src/resources/config-template.json b/src/resources/config-template.json index 5e027da..b3cd274 100644 --- a/src/resources/config-template.json +++ b/src/resources/config-template.json @@ -654,35 +654,29 @@ }, "axes": { - "x": { - "abs": { - "type": "string", - "default": "0" - }, - "off": { - "type": "string", - "default": "0" - } + "xp": { + "type": "int", + "default": 0 }, - "y": { - "abs": { - "type": "string", - "default": "0" - }, - "off": { - "type": "string", - "default": "0" - } + "yp": { + "type": "int", + "default": 0 }, - "z": { - "abs": { - "type": "string", - "default": "0" - }, - "off": { - "type": "string", - "default": "0" - } + "zp": { + "type": "int", + "default": 0 + }, + "offset_x": { + "type": "int", + "default": 0 + }, + "offset_y": { + "type": "int", + "default": 0 + }, + "offset_z": { + "type": "int", + "default": 0 } }, From f7ed7bba09eb5b34ce99e75da96bb94b7d8ac4f4 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 23:12:22 +0530 Subject: [PATCH 11/30] logging --- src/py/bbctrl/Config.py | 8 ++++---- src/py/bbctrl/Mach.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index e9a7c96..e528a39 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -80,7 +80,6 @@ class Config(object): return self.values.get(name, default) def set(self, name, default = None): - config = self.ctrl.config path = self.ctrl.get_path('config.json') try: @@ -91,7 +90,8 @@ class Config(object): if name in config_data: existing_value = config_data[name] if isinstance(existing_value, dict) and isinstance(default, dict): - config_data[name] = {**existing_value, **default} + # config_data[name] = {**existing_value, **default} + existing_value.update(default) elif isinstance(existing_value, list) and isinstance(default, list): config_data[name].extend(default) elif isinstance(existing_value, list): @@ -101,8 +101,8 @@ class Config(object): else: config_data[name] = default - config.save(config_data) - self.log.info('name:{} default:{}'.format(name, default)) + self.save(config_data) + self.log.info('105: name:{} default:{}'.format(name, default)) except Exception: self.log.exception('Internal error: Failed to upgrade config') def save(self, config): diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 5dc232f..e9542d2 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -371,12 +371,14 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - self.mlog.info('target ' + str(target)) - self.mlog.info('state.get ' + str(state.get('offset_' + axis))) + self.mlog.info('target %s' % str(target)) + self.mlog.info('state.get %s axis' % str(state.get('offset_' + axis))) state.set(axis + 'p', target) axes = config.values.setdefault('axes',{}) axes[axis + 'p'] = target + self.mlog.info('Saving %s axis' % axis) config.set('axes', axes) + self.mlog super().queue_command(Cmd.set_axis(axis, target)) From 4b957548a86595c76d83ada7fd30731fce8f5511 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 15:05:45 +0530 Subject: [PATCH 12/30] modifying state for updating config --- src/js/control-view.js | 12 +----------- src/py/bbctrl/Mach.py | 11 +---------- src/py/bbctrl/State.py | 3 +++ 3 files changed, 5 insertions(+), 21 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index b81bbd2..ae58bea 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -775,18 +775,8 @@ module.exports = { SvelteComponents.showDialog("Message", { title: this[axis].toolmsg }); }, - set_position: async function (axis, position) { + set_position: function (axis, position) { api.put(`position/${axis}`, { position: parseFloat(position) }); - // this.update_config(); - // if (!this.config.axes) { - // this.config.axes = {}; - // } - // this.config.axes[axis] = { - // abs: position + this.state["offset_" + axis], - // off: this.state["offset_" + axis], - // }; - // console.log(this.config); - // await this.save_config(this.config); }, zero_all: function () { diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index e9542d2..dee220e 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -28,8 +28,7 @@ import bbctrl from bbctrl.Comm import Comm import bbctrl.Cmd as Cmd -import os -import json + # Axis homing procedure: # @@ -358,7 +357,6 @@ class Mach(Comm): def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state - config = self.ctrl.config if state.is_axis_homed(axis): # If homed, change the offset rather than the absolute position @@ -371,14 +369,7 @@ class Mach(Comm): # Set the absolute position both locally and via the AVR target = position + state.get('offset_' + axis) - self.mlog.info('target %s' % str(target)) - self.mlog.info('state.get %s axis' % str(state.get('offset_' + axis))) state.set(axis + 'p', target) - axes = config.values.setdefault('axes',{}) - axes[axis + 'p'] = target - self.mlog.info('Saving %s axis' % axis) - config.set('axes', axes) - self.mlog super().queue_command(Cmd.set_axis(axis, target)) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index c66bdc1..cacb651 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -241,8 +241,11 @@ class State(object): def update(self, update): + keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) + if name in keys: + self.log.info('Sanjay name: %s : data: %f' % (name,value)) def get(self, name, default = None): From a96115df814255b5c8f136f5c56e4a3037d8a8b9 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 15:56:55 +0530 Subject: [PATCH 13/30] saved in config, logging on config load --- src/py/bbctrl/Config.py | 1 + src/py/bbctrl/Mach.py | 1 + src/py/bbctrl/State.py | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index e528a39..c316ac1 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -144,6 +144,7 @@ class Config(object): def __defaults(self, config, name, template): if 'type' in template: + self.log.info('147 name %s' % name) if (not name in config or not self._valid_value(template, config[name])): config[name] = template['default'] diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index dee220e..2aee1ef 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -354,6 +354,7 @@ class Mach(Comm): def optional_pause(self, enable = True): self.ctrl.state.set('optional_pause', enable) + def set_position(self, axis, position): axis = axis.lower() state = self.ctrl.state diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index cacb651..edb7116 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -245,7 +245,7 @@ class State(object): for name, value in update.items(): self.set(name, value) if name in keys: - self.log.info('Sanjay name: %s : data: %f' % (name,value)) + self.ctrl.config.set('axes',{name: value}) def get(self, name, default = None): From 53ca6528e9b566175f77a8ff8b81e337cf4eac6e Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 15:57:57 +0530 Subject: [PATCH 14/30] merging dicts --- src/py/bbctrl/Config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index c316ac1..3b14a22 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -90,8 +90,8 @@ class Config(object): if name in config_data: existing_value = config_data[name] if isinstance(existing_value, dict) and isinstance(default, dict): - # config_data[name] = {**existing_value, **default} - existing_value.update(default) + config_data[name] = {**existing_value, **default} + # existing_value.update(default) elif isinstance(existing_value, list) and isinstance(default, list): config_data[name].extend(default) elif isinstance(existing_value, list): From dec987b544ce0c29b80bd39394b4b67071d0c4dd Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 16:09:01 +0530 Subject: [PATCH 15/30] loading val from config --- src/py/bbctrl/Config.py | 4 ++++ src/resources/config-template.json | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 3b14a22..f6a40af 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -154,6 +154,10 @@ class Config(object): elif 'min' in template and config[name] < template['min']: config[name] = template['min'] + + if name in ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z']: + # self.ctrl.state.config(name, config[name]) + self.log.info('147 name %s : %f' % (name, config[name])) if template['type'] == 'list': if 'index' in template: diff --git a/src/resources/config-template.json b/src/resources/config-template.json index b3cd274..eb7a4fe 100644 --- a/src/resources/config-template.json +++ b/src/resources/config-template.json @@ -655,27 +655,27 @@ "axes": { "xp": { - "type": "int", + "type": "float", "default": 0 }, "yp": { - "type": "int", + "type": "float", "default": 0 }, "zp": { - "type": "int", + "type": "float", "default": 0 }, "offset_x": { - "type": "int", + "type": "float", "default": 0 }, "offset_y": { - "type": "int", + "type": "float", "default": 0 }, "offset_z": { - "type": "int", + "type": "float", "default": 0 } }, From 70d3114683898e2912545b9cd0fca9776b1a1b26 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 16:23:19 +0530 Subject: [PATCH 16/30] loading prev state from config --- src/py/bbctrl/Config.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index f6a40af..b135f9e 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -144,7 +144,6 @@ class Config(object): def __defaults(self, config, name, template): if 'type' in template: - self.log.info('147 name %s' % name) if (not name in config or not self._valid_value(template, config[name])): config[name] = template['default'] @@ -156,8 +155,7 @@ class Config(object): config[name] = template['min'] if name in ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z']: - # self.ctrl.state.config(name, config[name]) - self.log.info('147 name %s : %f' % (name, config[name])) + self.ctrl.state.set(name, config[name]) if template['type'] == 'list': if 'index' in template: From 4cb52c8ffa23fef44500af94cab3646f80019978 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 21:55:18 +0530 Subject: [PATCH 17/30] checking the cycle --- src/py/bbctrl/State.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index edb7116..2976324 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -244,8 +244,9 @@ class State(object): keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) - if name in keys: - self.ctrl.config.set('axes',{name: value}) + if name in keys and 'cycle' in self.vars: + if self.vars.cycle == 'idle': + self.ctrl.config.set('axes',{name: value}) def get(self, name, default = None): From b3dee046cf3919bc7893d86ce09df72e58224552 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Tue, 9 Jul 2024 22:08:26 +0530 Subject: [PATCH 18/30] modidifed state.py --- src/py/bbctrl/State.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 2976324..d4df727 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -244,7 +244,7 @@ class State(object): keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) - if name in keys and 'cycle' in self.vars: + if 'cycle' in self.vars and name in keys: if self.vars.cycle == 'idle': self.ctrl.config.set('axes',{name: value}) From 62f87473b7e77e76b60850b12de782e07fd75957 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 16:04:00 +0530 Subject: [PATCH 19/30] fix in state.py --- src/py/bbctrl/State.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index d4df727..668d5cf 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -245,7 +245,7 @@ class State(object): for name, value in update.items(): self.set(name, value) if 'cycle' in self.vars and name in keys: - if self.vars.cycle == 'idle': + if self.vars['cycle'] == 'idle': self.ctrl.config.set('axes',{name: value}) From 5a77b982090b41f3c8eb8392d88021adaa14087c Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 16:20:51 +0530 Subject: [PATCH 20/30] logging --- src/py/bbctrl/Config.py | 4 ++-- src/py/bbctrl/State.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index b135f9e..9a8dad0 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -154,8 +154,8 @@ class Config(object): elif 'min' in template and config[name] < template['min']: config[name] = template['min'] - if name in ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z']: - self.ctrl.state.set(name, config[name]) + # if name in ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z']: + # self.ctrl.state.set(name, config[name]) if template['type'] == 'list': if 'index' in template: diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 668d5cf..0570cf3 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -246,6 +246,7 @@ class State(object): self.set(name, value) if 'cycle' in self.vars and name in keys: if self.vars['cycle'] == 'idle': + self.log.info('Sanjay %s : %f' % (name,value)) self.ctrl.config.set('axes',{name: value}) From 0de9bde0fb5e0ad0c70ccfee210ca43dcd6d5398 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 16:36:11 +0530 Subject: [PATCH 21/30] auto homing, logging --- src/js/axis-vars.js | 7 ++++--- src/js/control-view.js | 7 ++++--- src/py/bbctrl/State.py | 8 ++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/js/axis-vars.js b/src/js/axis-vars.js index 92fc20f..e563f57 100644 --- a/src/js/axis-vars.js +++ b/src/js/axis-vars.js @@ -240,9 +240,10 @@ module.exports = { if (!homed && this.ask_home) { this.ask_home = false; - SvelteComponents.showDialog("HomeMachine", { - home: () => this.home() - }); + this.home() + // SvelteComponents.showDialog("HomeMachine", { + // home: () => this.home() + // }); } return { diff --git a/src/js/control-view.js b/src/js/control-view.js index ae58bea..0b31c51 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -743,13 +743,14 @@ module.exports = { this.confirmDelete = false; }, - home: function (axis) { + home: async function (axis) { this.ask_home = false; if (typeof axis == "undefined") { - api.put("home"); + await api.put("home"); + console.log('store data') } else if (this[axis].homingMode != "manual") { - api.put(`home/${axis}`); + await api.put(`home/${axis}`); } else { SvelteComponents.showDialog("ManualHomeAxis", { axis }); } diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 0570cf3..39cd9ac 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -230,6 +230,9 @@ class State(object): def set(self, name, value): name = self.resolve(name) + keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] + self.log.info('234 Sanjay %s : %f' % (name,value)) + if not name in self.vars or self.vars[name] != value: self.vars[name] = value @@ -238,6 +241,10 @@ class State(object): # Trigger listener notify if self.timeout is None: self.timeout = self.ctrl.ioloop.call_later(0.25, self._notify) + + if name in keys: + self.log.info('246 cycle: %s'%self.vars['cycle']) + self.log.info('247 Sanjay %s : %f , %f' % (name,value,self.vars[name])) def update(self, update): @@ -246,6 +253,7 @@ class State(object): self.set(name, value) if 'cycle' in self.vars and name in keys: if self.vars['cycle'] == 'idle': + self.log.info('256 cycle: %s'%self.vars['cycle']) self.log.info('Sanjay %s : %f' % (name,value)) self.ctrl.config.set('axes',{name: value}) From 03dcb8db93236d750c035969882f71788d7e4d3f Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 18:31:55 +0530 Subject: [PATCH 22/30] updating config variable along with json --- src/py/bbctrl/Config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 9a8dad0..e0af4a6 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -102,6 +102,7 @@ class Config(object): config_data[name] = default self.save(config_data) + self.values[name] = config_data[name] self.log.info('105: name:{} default:{}'.format(name, default)) except Exception: self.log.exception('Internal error: Failed to upgrade config') From 3c46d8b4586aeb37202c9ed020215bb63a7d1ca1 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 18:32:04 +0530 Subject: [PATCH 23/30] logging --- src/py/bbctrl/State.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 39cd9ac..5221467 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -231,8 +231,6 @@ class State(object): def set(self, name, value): name = self.resolve(name) keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] - self.log.info('234 Sanjay %s : %f' % (name,value)) - if not name in self.vars or self.vars[name] != value: self.vars[name] = value @@ -242,9 +240,11 @@ class State(object): if self.timeout is None: self.timeout = self.ctrl.ioloop.call_later(0.25, self._notify) - if name in keys: - self.log.info('246 cycle: %s'%self.vars['cycle']) - self.log.info('247 Sanjay %s : %f , %f' % (name,value,self.vars[name])) + if name in keys and 'cycle' in self.vars: + self.log.info('244 sanjay cycle: %s'%self.vars['cycle']) + if self.vars['cycle'] == 'mdi': + self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) + self.ctrl.config.set('axes',{name: value}) def update(self, update): @@ -252,8 +252,8 @@ class State(object): for name, value in update.items(): self.set(name, value) if 'cycle' in self.vars and name in keys: + self.log.info('256 cycle: %s'%self.vars['cycle']) if self.vars['cycle'] == 'idle': - self.log.info('256 cycle: %s'%self.vars['cycle']) self.log.info('Sanjay %s : %f' % (name,value)) self.ctrl.config.set('axes',{name: value}) From 4b3126a6f42b1345ee063a3c77dced75462807e4 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 18:42:10 +0530 Subject: [PATCH 24/30] loggind on set --- src/py/bbctrl/Config.py | 2 +- src/py/bbctrl/State.py | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index e0af4a6..afd1de6 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -102,7 +102,7 @@ class Config(object): config_data[name] = default self.save(config_data) - self.values[name] = config_data[name] + # self.values[name] = config_data[name] self.log.info('105: name:{} default:{}'.format(name, default)) except Exception: self.log.exception('Internal error: Failed to upgrade config') diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 5221467..57bd575 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -242,20 +242,14 @@ class State(object): if name in keys and 'cycle' in self.vars: self.log.info('244 sanjay cycle: %s'%self.vars['cycle']) - if self.vars['cycle'] == 'mdi': - self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) - self.ctrl.config.set('axes',{name: value}) + # if self.vars['cycle'] == 'mdi': + # self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) + # self.ctrl.config.set('axes',{name: value}) def update(self, update): - keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) - if 'cycle' in self.vars and name in keys: - self.log.info('256 cycle: %s'%self.vars['cycle']) - if self.vars['cycle'] == 'idle': - self.log.info('Sanjay %s : %f' % (name,value)) - self.ctrl.config.set('axes',{name: value}) def get(self, name, default = None): From 5f5d509521974f046f914fe394ea3ee67b156132 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 18:49:48 +0530 Subject: [PATCH 25/30] better logging --- src/py/bbctrl/State.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 57bd575..cd3955a 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -231,6 +231,12 @@ class State(object): def set(self, name, value): name = self.resolve(name) keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] + + if name in keys and 'cycle' in self.vars: + self.log.info('244 sanjay cycle: %s'%self.vars['cycle']) + # if self.vars['cycle'] == 'mdi': + # self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) + # self.ctrl.config.set('axes',{name: value}) if not name in self.vars or self.vars[name] != value: self.vars[name] = value @@ -239,17 +245,15 @@ class State(object): # Trigger listener notify if self.timeout is None: self.timeout = self.ctrl.ioloop.call_later(0.25, self._notify) - - if name in keys and 'cycle' in self.vars: - self.log.info('244 sanjay cycle: %s'%self.vars['cycle']) - # if self.vars['cycle'] == 'mdi': - # self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) - # self.ctrl.config.set('axes',{name: value}) def update(self, update): + keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) + if name in keys and 'cycle' in self.vars: + self.log.info('255 sanjay cycle: %s'%self.vars['cycle']) + self.log.info('256 name :{} value:{}'.format(name, value)) def get(self, name, default = None): From 6f3dd76591cc8c4e0f82dac3345edb155037523a Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 19:08:42 +0530 Subject: [PATCH 26/30] changing logs --- src/js/control-view.js | 6 +++--- src/py/bbctrl/State.py | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index 0b31c51..6eaabd3 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -743,14 +743,14 @@ module.exports = { this.confirmDelete = false; }, - home: async function (axis) { + home: function (axis) { this.ask_home = false; if (typeof axis == "undefined") { - await api.put("home"); + api.put("home"); console.log('store data') } else if (this[axis].homingMode != "manual") { - await api.put(`home/${axis}`); + api.put(`home/${axis}`); } else { SvelteComponents.showDialog("ManualHomeAxis", { axis }); } diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index cd3955a..1594c1a 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -233,9 +233,9 @@ class State(object): keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] if name in keys and 'cycle' in self.vars: - self.log.info('244 sanjay cycle: %s'%self.vars['cycle']) + self.log.info('236 sanjay cycle: %s'%self.vars['cycle']) + self.log.info('237 changing data %s : %d , %d' % (name,value,self.vars[name])) # if self.vars['cycle'] == 'mdi': - # self.log.info('246 changing data %s : %d , %d' % (name,value,self.vars[name])) # self.ctrl.config.set('axes',{name: value}) if not name in self.vars or self.vars[name] != value: @@ -253,7 +253,9 @@ class State(object): self.set(name, value) if name in keys and 'cycle' in self.vars: self.log.info('255 sanjay cycle: %s'%self.vars['cycle']) - self.log.info('256 name :{} value:{}'.format(name, value)) + self.log.info('256 changing data %s : %d , %d' % (name,value,self.vars[name])) + # if self.vars['cycle'] == 'mdi': + # self.ctrl.config.set('axes',{name: value}) def get(self, name, default = None): From 39c5867710ac471b50a738d366be8cb7f83f2ab9 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 19:53:24 +0530 Subject: [PATCH 27/30] chaged logging --- src/py/bbctrl/Config.py | 5 +++-- src/py/bbctrl/Pwr.py | 1 + src/py/bbctrl/State.py | 10 ++-------- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index afd1de6..4e0807a 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -155,8 +155,9 @@ class Config(object): elif 'min' in template and config[name] < template['min']: config[name] = template['min'] - # if name in ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z']: - # self.ctrl.state.set(name, config[name]) + if name in ['offset_x', 'offset_y', 'offset_z']: + self.log.info('159: name:{} default:{}'.format(name, config[name])) # make sure that cycle is idle + # self.ctrl.state.set(name, config[name]) if template['type'] == 'list': if 'index' in template: diff --git a/src/py/bbctrl/Pwr.py b/src/py/bbctrl/Pwr.py index 9c4579a..35690b4 100644 --- a/src/py/bbctrl/Pwr.py +++ b/src/py/bbctrl/Pwr.py @@ -161,6 +161,7 @@ class Pwr(): else: value /= 100.0 key = reg_names[i] + self.log.info('164 pwr: {}:{}'.format(key,value)) self.ctrl.state.set(key, value) if self.regs[i] != value: diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 1594c1a..0b1470a 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -234,8 +234,8 @@ class State(object): if name in keys and 'cycle' in self.vars: self.log.info('236 sanjay cycle: %s'%self.vars['cycle']) - self.log.info('237 changing data %s : %d , %d' % (name,value,self.vars[name])) - # if self.vars['cycle'] == 'mdi': + if self.vars['cycle'] == 'mdi': + self.log.info('238 changing data %s : %d , %d' % (name,value,self.vars[name])) # self.ctrl.config.set('axes',{name: value}) if not name in self.vars or self.vars[name] != value: @@ -248,14 +248,8 @@ class State(object): def update(self, update): - keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] for name, value in update.items(): self.set(name, value) - if name in keys and 'cycle' in self.vars: - self.log.info('255 sanjay cycle: %s'%self.vars['cycle']) - self.log.info('256 changing data %s : %d , %d' % (name,value,self.vars[name])) - # if self.vars['cycle'] == 'mdi': - # self.ctrl.config.set('axes',{name: value}) def get(self, name, default = None): From 2e2dff2d32ae906480085c4c1739d0c148c0dee9 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 20:16:42 +0530 Subject: [PATCH 28/30] logging the place to set state vars, settings config vars --- src/py/bbctrl/Mach.py | 5 +++++ src/py/bbctrl/Pwr.py | 1 - src/py/bbctrl/State.py | 7 ++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index 2aee1ef..f66cd93 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -275,6 +275,7 @@ class Mach(Comm): def home(self, axis, position = None): state = self.ctrl.state + config = self.ctrl.config if axis is None: axes = 'zxyabc' # TODO This should be configurable else: axes = '%c' % axis @@ -312,6 +313,10 @@ class Mach(Comm): self.planner.mdi(gcode, False) super().resume() + if 'offset_' + axis in config.values: + self.log.info('Set the state value from config: {} = {}'.format('offset_' + axis , config.values['offset_' + axis])) + else: + self.log.info('Values is not present in config:{}'.format('offset_' + axis)) def unhome(self, axis): self.mdi('G28.2 %c0' % axis) diff --git a/src/py/bbctrl/Pwr.py b/src/py/bbctrl/Pwr.py index 35690b4..9c4579a 100644 --- a/src/py/bbctrl/Pwr.py +++ b/src/py/bbctrl/Pwr.py @@ -161,7 +161,6 @@ class Pwr(): else: value /= 100.0 key = reg_names[i] - self.log.info('164 pwr: {}:{}'.format(key,value)) self.ctrl.state.set(key, value) if self.regs[i] != value: diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 0b1470a..dbae072 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -233,10 +233,11 @@ class State(object): keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] if name in keys and 'cycle' in self.vars: - self.log.info('236 sanjay cycle: %s'%self.vars['cycle']) + self.log.info('236 cycle:{} name:{} value:{}'.format(self.vars['cycle'], name, value)) if self.vars['cycle'] == 'mdi': - self.log.info('238 changing data %s : %d , %d' % (name,value,self.vars[name])) - # self.ctrl.config.set('axes',{name: value}) + self.log.info('238 changing data %s : %d , %d' % (name, value, self.vars[name])) + self.ctrl.config.set('axes', {name: value}) + if not name in self.vars or self.vars[name] != value: self.vars[name] = value From e5a8be5aa1af2c403445f10d52d271a1b9b267c8 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Wed, 17 Jul 2024 21:38:29 +0530 Subject: [PATCH 29/30] teseting first implementation --- src/js/control-view.js | 1 - src/py/bbctrl/Config.py | 1 - src/py/bbctrl/Mach.py | 4 +++- src/py/bbctrl/State.py | 2 +- src/resources/config-template.json | 12 ------------ 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/js/control-view.js b/src/js/control-view.js index 6eaabd3..ae58bea 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -748,7 +748,6 @@ module.exports = { if (typeof axis == "undefined") { api.put("home"); - console.log('store data') } else if (this[axis].homingMode != "manual") { api.put(`home/${axis}`); } else { diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index 4e0807a..b2d3228 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -102,7 +102,6 @@ class Config(object): config_data[name] = default self.save(config_data) - # self.values[name] = config_data[name] self.log.info('105: name:{} default:{}'.format(name, default)) except Exception: self.log.exception('Internal error: Failed to upgrade config') diff --git a/src/py/bbctrl/Mach.py b/src/py/bbctrl/Mach.py index f66cd93..c1d6a33 100644 --- a/src/py/bbctrl/Mach.py +++ b/src/py/bbctrl/Mach.py @@ -313,7 +313,9 @@ class Mach(Comm): self.planner.mdi(gcode, False) super().resume() - if 'offset_' + axis in config.values: + if 'offset_' + axis and axis + 'p' in config.values: + state.set('offset_' + axis, config.values['offset_' + axis]) + state.set(axis + 'p', 0) self.log.info('Set the state value from config: {} = {}'.format('offset_' + axis , config.values['offset_' + axis])) else: self.log.info('Values is not present in config:{}'.format('offset_' + axis)) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index dbae072..b12c273 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -230,7 +230,7 @@ class State(object): def set(self, name, value): name = self.resolve(name) - keys = ['xp', 'yp', 'zp', 'offset_x', 'offset_y', 'offset_z'] + keys = ['offset_x', 'offset_y', 'offset_z'] if name in keys and 'cycle' in self.vars: self.log.info('236 cycle:{} name:{} value:{}'.format(self.vars['cycle'], name, value)) diff --git a/src/resources/config-template.json b/src/resources/config-template.json index eb7a4fe..535843b 100644 --- a/src/resources/config-template.json +++ b/src/resources/config-template.json @@ -654,18 +654,6 @@ }, "axes": { - "xp": { - "type": "float", - "default": 0 - }, - "yp": { - "type": "float", - "default": 0 - }, - "zp": { - "type": "float", - "default": 0 - }, "offset_x": { "type": "float", "default": 0 From ba1385770eade33a92989bd26d7fd6c071ccfdc0 Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Thu, 18 Jul 2024 17:50:20 +0530 Subject: [PATCH 30/30] removed logs --- src/py/bbctrl/Config.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/py/bbctrl/Config.py b/src/py/bbctrl/Config.py index b2d3228..429848d 100644 --- a/src/py/bbctrl/Config.py +++ b/src/py/bbctrl/Config.py @@ -153,10 +153,6 @@ class Config(object): elif 'min' in template and config[name] < template['min']: config[name] = template['min'] - - if name in ['offset_x', 'offset_y', 'offset_z']: - self.log.info('159: name:{} default:{}'.format(name, config[name])) # make sure that cycle is idle - # self.ctrl.state.set(name, config[name]) if template['type'] == 'list': if 'index' in template: