MCPcopy Create free account
hub / github.com/AstroPrint/AstroBox / scan

Method scan

src/ext/makerbot_driver/MachineDetector.py:95–127  ·  view source on GitHub ↗

scans for connected machines, updates internal list of machines based on scan results @param machineTypes. An individual MachineClass name, or a list of machine class names

(self, machineTypes=None)

Source from the content-addressed store, hash-verified

93 return machine_name
94
95 def scan(self, machineTypes=None):
96 """ scans for connected machines, updates internal list of machines
97 based on scan results
98 @param machineTypes. An individual MachineClass name, or a list
99 of machine class names
100 """
101 # scan for all machine types
102 scanNameList = []
103 if machineTypes is None:
104 scanNameList.extend(gMachineClasses.keys())
105 elif isinstance(machineTypes, str) or isinstance(machineTypes, unicode):
106 scanNameList.append(machineTypes)
107 else:
108 scanNameList.extend(machineTypes)
109 # Empty the machines just seen list. We are rescanning
110 # all machines connected to the system.
111 self.machines_just_seen = {}
112 for machineClass in scanNameList:
113 self._log.debug("scanning for MachineClass %s", str(machineClass))
114 #Not all machine classes have a defined VID/PID
115 try:
116 vid = gMachineClasses[machineClass]['vid']
117 pid_list = gMachineClasses[machineClass]['pid']
118
119 new_machines = []
120 for pid in pid_list:
121 new_machines.extend(self.list_ports_by_vid_pid(vid, pid))
122
123 for machine in list(new_machines):
124 self.machines_just_seen[machine['port']] = machine
125 self.machines_recently_seen.update(self.machines_just_seen)
126 except KeyError:
127 continue # The machine doesnt have a VID/PID, so we cant scan for it
128
129 def vid_pid_from_portname(self, portname):
130 """ return pid/vid based on a passed portname."""

Callers 1

Calls 2

appendMethod · 0.80
updateMethod · 0.80

Tested by

no test coverage detected