Exemple #1
0
  def __init__(self, **kwargs):
    self.initializing = True
    self.max_w_val = 0
    pronsole.pronsole.__init__(self)
    EventEmitter.__init__(self)
    self.settings.sensor_names = {'T': 'extruder', 'B': 'bed'}
    self.settings.sensor_poll_rate = 1 # seconds
    self.p.loud = kwargs['loud']
    self.dry_run = kwargs['dry_run']
    self.heaptrace = kwargs['heaptrace']
    self.stdout = sys.stdout
    self.load_default_rc()
    self.p.sendcb = self.sendcb
    self.initializing = False

    dir = os.path.dirname(__file__)
    self.server = ConstructServer(
      printer= self,
      settings= dict(
        pause_between_prints = self.settings.pause_between_prints,
        sensor_poll_rate = self.settings.sensor_poll_rate * 1000
      ),
      components= dict(
        temps= ["e0", "b"],
        fans= ["f0"],
        conveyors= ["c0"],
        axes= []
        # In the far off future we may have axes like these for position data:
        # axes= ["x", "y", "z"]
      ),
      server_settings= dict(
        template_path= os.path.join(dir, "server", "templates"),
        static_path= os.path.join(dir, "server", "static"),
        debug= True
      ),
      routes= [
        (r"/", RootHandler),
        (r"/inspect", InspectHandler)
      ]
    )
    def __init__(self, **kwargs):
        self.printer = kwargs["printer"]
        EventEmitter.__init__(self)

        # Configuring the Web Server
        if not kwargs["routes"]: kwargs["routes"] = []
        routes = kwargs["routes"] + [
            (r"/socket", ConstructSocketHandler),
            (r"/jobs", ConstructJobUploadHandler),
        ]
        server_settings = kwargs["server_settings"]
        if server_settings == None: server_settings = {}
        self.clients = {}
        self.ioloop = tornado.ioloop.IOLoop.instance()
        signal.signal(signal.SIGINT, self.sigint_handler)
        tornado.web.Application.__init__(self, routes, **server_settings)

        # Configuring the print job queue
        self.jobs = PrintJobQueue(self)
        self.jobs.listeners.add(self)

        # Configuring the printer components
        self.components = dict(motors=dict(enabled=False),
                               jobs=dict(),
                               pause_between_prints=True,
                               sensor_poll_rate=3000,
                               sessions_count=0,
                               status='idle')
        self.components = dict(self.components, **kwargs["settings"])
        for t, default_vals in self.component_defaults.iteritems():
            for key in kwargs["components"][inflection.pluralize(t)]:
                self.components[key] = copy.deepcopy(default_vals)
                self.components[key]["type"] = t

        # Setting the printer's initial values
        self.sensor_update_received = True
        self.reset_timeout = 0
        self.blockers = []