klippy: separate initial config file load into load_config() method

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2016-11-22 12:14:25 -05:00
parent 7e7e607e3f
commit 6ebb1a68cb
1 changed files with 23 additions and 19 deletions

View File

@ -32,19 +32,31 @@ class ConfigWrapper:
class Printer: class Printer:
def __init__(self, conffile, input_fd, is_fileinput=False): def __init__(self, conffile, input_fd, is_fileinput=False):
self.fileconfig = ConfigParser.RawConfigParser() self.conffile = conffile
self.fileconfig.read(conffile)
self.reactor = reactor.Reactor() self.reactor = reactor.Reactor()
self.gcode = gcode.GCodeParser(self, input_fd, is_fileinput) self.gcode = gcode.GCodeParser(self, input_fd, is_fileinput)
self.mcu = mcu.MCU(self, ConfigWrapper(self, 'mcu')) self.stats_timer = self.reactor.register_timer(self.stats)
self.stats_timer = self.reactor.register_timer(
self.stats, self.reactor.NOW)
self.connect_timer = self.reactor.register_timer( self.connect_timer = self.reactor.register_timer(
self.connect, self.reactor.NOW) self.connect, self.reactor.NOW)
self.debugoutput = self.dictionary = None self.debugoutput = self.dictionary = None
self.fileconfig = None
self.mcu = None
self.objects = {} self.objects = {}
def set_fileoutput(self, debugoutput, dictionary):
self.debugoutput = debugoutput
self.dictionary = dictionary
def stats(self, eventtime):
out = []
out.append(self.gcode.stats(eventtime))
toolhead = self.objects.get('toolhead')
out.append(toolhead.stats(eventtime))
out.append(self.mcu.stats(eventtime))
logging.info("Stats %.0f: %s" % (eventtime, ' '.join(out)))
return eventtime + 1.
def load_config(self):
self.fileconfig = ConfigParser.RawConfigParser()
self.fileconfig.read(self.conffile)
self.mcu = mcu.MCU(self, ConfigWrapper(self, 'mcu'))
if self.fileconfig.has_section('fan'): if self.fileconfig.has_section('fan'):
self.objects['fan'] = fan.PrinterFan( self.objects['fan'] = fan.PrinterFan(
self, ConfigWrapper(self, 'fan')) self, ConfigWrapper(self, 'fan'))
@ -56,24 +68,16 @@ class Printer:
self, ConfigWrapper(self, 'heater_bed')) self, ConfigWrapper(self, 'heater_bed'))
self.objects['toolhead'] = toolhead.ToolHead( self.objects['toolhead'] = toolhead.ToolHead(
self, ConfigWrapper(self, 'printer')) self, ConfigWrapper(self, 'printer'))
def set_fileoutput(self, debugoutput, dictionary):
self.debugoutput = debugoutput
self.dictionary = dictionary
def stats(self, eventtime):
out = []
out.append(self.gcode.stats(eventtime))
out.append(self.objects['toolhead'].stats(eventtime))
out.append(self.mcu.stats(eventtime))
logging.info("Stats %.0f: %s" % (eventtime, ' '.join(out)))
return eventtime + 1.
def build_config(self): def build_config(self):
for oname in sorted(self.objects.keys()): for oname in sorted(self.objects.keys()):
self.objects[oname].build_config() self.objects[oname].build_config()
self.gcode.build_config() self.gcode.build_config()
self.mcu.build_config() self.mcu.build_config()
def connect(self, eventtime): def connect(self, eventtime):
if self.debugoutput is not None: self.load_config()
self.reactor.update_timer(self.stats_timer, self.reactor.NEVER) if self.debugoutput is None:
self.reactor.update_timer(self.stats_timer, self.reactor.NOW)
else:
self.mcu.connect_file(self.debugoutput, self.dictionary) self.mcu.connect_file(self.debugoutput, self.dictionary)
self.mcu.connect() self.mcu.connect()
self.build_config() self.build_config()