@@ -104,39 +104,35 @@ def __init__(self):
104
104
105
105
self .defaults = configparser .ConfigParser ()
106
106
self .defaults .read (DEFAULTS_FILE_PATH )
107
- self .saved_settings = self .get_persistent_config ()
107
+ self ._create_saved_settings_file ()
108
+ self .saved_settings = configparser .ConfigParser ()
109
+ self .saved_settings .read (CONFIG_FILE_PATH )
110
+ self ._copy_defaults_to_settings ()
108
111
self ._apply_settings ()
109
112
110
- def get_persistent_config (self ):
111
-
112
- persistent_config = configparser .ConfigParser ()
113
+ def _create_saved_settings_file (self ):
113
114
if not os .path .isdir (CONFIG_DIR_PATH ):
114
115
os .mkdir (CONFIG_DIR_PATH )
115
116
if not os .path .isfile (CONFIG_FILE_PATH ):
116
- for section in self .defaults .sections ():
117
- persistent_config [section ] = self .defaults [section ]
118
117
with open (CONFIG_FILE_PATH , 'w' ) as configfile :
119
- persistent_config .write (configfile )
120
- else :
121
- persistent_config .read (CONFIG_FILE_PATH )
118
+ configfile .write ('' )
122
119
123
- for section_name in self .defaults .sections ():
124
- section = self .defaults [section_name ]
125
- if section_name not in persistent_config :
126
- persistent_config [section_name ] = section
127
- for key , val in section .items ():
128
- if key not in persistent_config [section_name ]:
129
- persistent_config [section ][key ] = val
130
-
131
- return persistent_config
120
+ def _copy_defaults_to_settings (self ):
121
+ for n in self .defaults .sections ():
122
+ if n not in self .saved_settings :
123
+ self .saved_settings [n ] = self .defaults [n ]
124
+ for key , val in self .defaults [n ].items ():
125
+ if key not in self .saved_settings [n ]:
126
+ self .saved_settings [n ][key ] = val
132
127
133
128
def _apply_settings (self ):
134
129
self .serial_timeout = float (
135
- self .saved_settings ['DEFAULT ' ].get ('timeout' , 0.1 ))
130
+ self .saved_settings ['serial ' ].get ('timeout' , 0.1 ))
136
131
self .serial_baudrate = int (
137
- self .saved_settings ['DEFAULT' ].get ('baudrate' , 115200 ))
132
+ self .saved_settings ['serial' ].get ('baudrate' , 115200 ))
133
+
138
134
self .head_speed = int (
139
- self .saved_settings ['DEFAULT ' ].get ('head_speed' , 3000 ))
135
+ self .saved_settings ['state ' ].get ('head_speed' , 3000 ))
140
136
141
137
self .COMPATIBLE_FIRMARE = json .loads (
142
138
self .saved_settings ['versions' ].get ('firmware' , '[]' ))
@@ -527,7 +523,7 @@ def calibrate_steps_per_mm(self, axis, expected_travel, actual_travel):
527
523
def set_head_speed (self , rate = None ):
528
524
if rate :
529
525
self .head_speed = rate
530
- self .saved_settings ['DEFAULT ' ]['head_speed' ] = str (self .head_speed )
526
+ self .saved_settings ['state ' ]['head_speed' ] = str (self .head_speed )
531
527
with open (CONFIG_FILE_PATH , 'w' ) as configfile :
532
528
self .saved_settings .write (configfile )
533
529
kwargs = {"F" : self .head_speed }
0 commit comments