pass
def monitorStdin(self):
- while not self._comm.isClosed():
- line = sys.stdin.readline().strip()
- line = line.split(':', 1)
+ while not (self._comm.isClosed() or sys.stdin.closed):
+ line = sys.stdin.readline()
+ # If readline returns an empty string it means that
+ # we've hit stdin's EOF, probably because the parent was
+ # closed, so we need to exit as well instead of spamming stderr.
+ if line == '':
+ break
+ line = line.strip().split(':', 1)
if line[0] == 'STOP':
self._comm.cancelPrint()
self._gcodeList = ['M110']
self._comm.sendCommand(line[1])
elif line[0] == 'START':
self._comm.printGCode(self._gcodeList)
+ elif line[0] == 'PAUSE':
+ self._comm.setPause(True)
+ elif line[0] == 'RESUME':
+ self._comm.setPause(False)
else:
sys.stderr.write(str(line))
thread = threading.Thread(target=comm.monitorStdin)
thread.start()
while thread.is_alive():
- time.sleep(0)
+ time.sleep(0.1)
def main():
if len(sys.argv) != 3: