From 49efa31281dc74c9ea08810a7c00c8d38633bbfc Mon Sep 17 00:00:00 2001 From: sanjayk03-dev Date: Mon, 8 Jul 2024 19:00:26 +0530 Subject: [PATCH] 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))