def setUp(self): self.md = makerbot_driver.MachineDetector() self.list_ports_mock = mock.Mock() self.md.list_ports_by_vid_pid = self.list_ports_mock self.s3g_mock = mock.Mock() self.md.create_s3g = mock.Mock() self.md.create_s3g.return_value = self.s3g_mock
def __init__(self, config, server): conveyor.stoppable.StoppableThread.__init__(self) self._available = {} self._blacklist = {} self._config = config self._condition = threading.Condition() self._detector = makerbot_driver.MachineDetector() self._log = logging.getLogger(self.__class__.__name__) self._server = server self._stop = False
def test_leaves_bot_open(self): ignore = raw_input("Please Verify a valid MakerBot is connected(Y/n)>") self.assertEqual(ignore.lower(), 'Y'.lower()) md = makerbot_driver.MachineDetector() md.scan() availMachine = md.get_first_machine() self.assertTrue(availMachine != None) print(availMachine) bFact = makerbot_driver.BotFactory() s3gObj, profile = bFact.build_from_port(availMachine, False) # re-opening s3g here fails self.assertFalse(s3gObj.is_open())
def autoConnect(self): self.connected = False machineDetector = makerbot_driver.MachineDetector() machineDetector.scan() machines = machineDetector.get_available_machines() ports = machines.keys() for port in ports: machineName = machineDetector.get_machine_name_from_vid_pid(machines[port]["VID"], machines[port]["PID"]) if machineName != None: try: self.connect(port, machineName) except Exception as e: raise e if self.connected: break
def main(): parser = optparse.OptionParser() parser.add_option( "-m", "--machine", dest="machine", help="machine type to scan for, example ReplicatorSingle", default="The Replicator 2") parser.add_option("-p", "--port", dest="port", help="The port you want to connect to (OPTIONAL)", default=None) parser.add_option( "-s", "--sequences", dest="sequences", help="Flag to not use makerbot_driver's start/end sequences", default=False, action="store_true") (options, args) = parser.parse_args() if options.port is None: md = makerbot_driver.MachineDetector() md.scan(options.machine) port = md.get_first_machine() if port is None: print "Can't Find %s" % (options.machine) sys.exit() else: port = options.port factory = makerbot_driver.MachineFactory() obj = factory.build_from_port(port) reset = True filenames = [] filename = True while filename: filename = str(obj.s3g.get_next_filename(reset)[:-1]) reset = False if filename: filenames.append(filename) print(filenames)
"-c", "--context", dest="context", help= "context for the eeprom_entry, as comma separated values surrounded by quotes", default="") (options, args) = parser.parse_args() context = options.context.replace(' ', '') context = context.split(',') for c in context: if c == '': context.remove(c) if options.port is None: md = makerbot_driver.MachineDetector() md.scan(options.machine) port = md.get_first_machine() if port is None: print "Cant Find %s" % (options.machine) sys.exit() else: port = options.port factory = makerbot_driver.MachineFactory() returnobj = factory.build_from_port(port) r = getattr(returnobj, 's3g') reader = makerbot_driver.EEPROM.EepromReader.factory( r, firmware_version=options.version) print reader.read_data(options.eeprom_entry, context)
def setUp(self): self.md = makerbot_driver.MachineDetector()
def setUp(self): self.md = makerbot_driver.MachineDetector() self.list_ports_mock = mock.Mock() self.md.list_ports_by_vid_pid = self.list_ports_mock
def main(): parser = optparse.OptionParser() parser.add_option( "-f", "--filename", dest="filename", help="gcode file to print", default=False) parser.add_option( "-m", "--machine", dest="machine", help="machine type to scan for, example ReplicatorSingle", default="The Replicator 2") parser.add_option( "-p", "--port", dest="port", help="The port you want to connect to (OPTIONAL)", default=None) parser.add_option( "-s", "--sequences", dest="sequences", help="Flag to not use makerbot_driver's start/end sequences", default=False, action="store_true") (options, args) = parser.parse_args() if options.port is None: md = makerbot_driver.MachineDetector() md.scan(options.machine) port = md.get_first_machine() if port is None: print "Can't Find %s" % (options.machine) sys.exit() else: port = options.port factory = makerbot_driver.MachineFactory() obj = factory.build_from_port(port) assembler = makerbot_driver.GcodeAssembler(getattr(obj, 'profile')) start, end, variables = assembler.assemble_recipe() start_gcode = assembler.assemble_start_sequence(start) end_gcode = assembler.assemble_end_sequence(end) filename = os.path.basename(options.filename) filename = os.path.splitext(filename)[0] parser = getattr(obj, 'gcodeparser') parser.environment.update(variables) parser.state.values["build_name"] = filename[:15] log.info('Using %s on %s with %s', factory, port, variables) def exec_line(line): while True: try: parser.execute_line(line) break except makerbot_driver.BufferOverflowError: try: parser.s3g.writer._condition.wait(.2) except RuntimeError: time.sleep(.2) if options.sequences: for line in start_gcode: exec_line(line) with open(options.filename) as f: for line in f: exec_line(line) if options.sequences: for line in end_gcode: exec_line(line)