82 lines
2.4 KiB
Python

import logging
class Printer:
def __init__(self, data):
self.config = data['configfile']['config']
logging.info("### Reading printer config")
self.toolcount = 0
self.extrudercount = 0
self.tools = []
self.devices = {}
self.state = data['print_stats']['state']
self.data = data
for x in self.config.keys():
if x.startswith('extruder'):
if x.startswith('extruder_stepper'):
continue
self.devices[x] = {
"temperature": 0,
"target": 0
}
self.tools.append(x)
if "shared_heater" in self.config[x]:
self.toolcount += 1
continue
self.extrudercount += 1
if x.startswith('heater_bed'):
self.devices[x] = {
"temperature": 0,
"target": 0
}
print (self.devices)
print (self.tools)
logging.info("### Toolcount: " + str(self.toolcount) + " Heaters: " + str(self.extrudercount))
def process_update(self, data):
keys = ['virtual_sdcard','pause_resume','idle_timeoue','print_stats']
for x in keys:
if x in data:
for y in data[x]:
self.data[x][y] = data[x][y]
def get_stat(self, stat, substat = None):
if substat != None:
return self.data[stat][substat]
return self.data[stat]
def set_dev_temps(self, dev, temp, target=None):
if dev in self.devices:
self.devices[dev]['temperature'] = temp
if target != None:
self.devices[dev]['target'] = target
def get_dev_stats(self, dev):
if dev in self.devices:
return self.devices[dev]
return None
def get_dev_stat(self, dev, stat):
if dev in self.devices and stat in self.devices[dev]:
return self.devices[dev][stat]
return None
def get_extruder_count(self):
return self.extrudercount
def get_tools(self):
return self.tools
def get_tool_number(self, tool):
return self.tools.index(tool)
def set_dev_stat(self, dev, stat, value):
if dev not in self.devices:
return
self.devices[dev][stat] = value