def setUp(self): self.s3g_mock = mock.Mock(makerbot_driver.s3g) self.inquisitor = makerbot_driver.MachineInquisitor('/dev/dummy_port') self.inquisitor.create_s3g = mock.Mock() self.inquisitor.create_s3g.return_value = self.s3g_mock self.factory = makerbot_driver.MachineFactory() self.factory.create_inquisitor = mock.Mock() self.factory.create_inquisitor.return_value = self.inquisitor
def create_parser(self): factory = makerbot_driver.MachineFactory() machine = factory.build_from_port(self.usb_info.get('COM')) assembler = makerbot_driver.GcodeAssembler(machine.profile) parser = machine.gcodeparser start, end, variables = assembler.assemble_recipe() parser.environment.update(variables) return parser
def _connect( self, port, condition ): # TODO: move this to the machine's `connect` since that's the only place it is currently used machine_factory = makerbot_driver.MachineFactory(self._profile_dir) return_object = machine_factory.build_from_port(port.path, condition=condition) s3g = return_object.s3g return s3g
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)
def new_machine_from_port(self, port, profile): machine = port.get_machine() if None is not machine: if None is not profile and profile != machine.get_profile(): raise conveyor.error.ProfileMismatchException() else: if None is not profile: s3g_profile = profile._s3g_profile else: machine_factory = makerbot_driver.MachineFactory( self._profile_dir) while True: try: return_object = machine_factory.build_from_port( port.path, False) except makerbot_driver.BuildCancelledError: pass else: break s3g_profile = return_object.profile machine_name = port.get_machine_name() profile = _S3gProfile._create(s3g_profile.name, self, s3g_profile) machine = _S3gMachine._create(machine_name, self, profile) return machine
"--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.factory = makerbot_driver.MachineFactory()
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)