Browse Source

Increase baud rate detection timeout and do not send \n between M105

Improves printer detection rate on MacOSX

Contributes to #82
Arjen Hiemstra 9 years ago
parent
commit
c1d8e204b7
1 changed files with 5 additions and 3 deletions
  1. 5 3
      plugins/USBPrinting/PrinterConnection.py

+ 5 - 3
plugins/USBPrinting/PrinterConnection.py

@@ -201,18 +201,18 @@ class PrinterConnection(SignalEmitter):
                     continue # Could not set the baud rate, go to the next
             time.sleep(1.5) # Ensure that we are not talking to the bootloader. 1.5 sec seems to be the magic number
             sucesfull_responses = 0
-            timeout_time = time.time() + 5  
+            timeout_time = time.time() + 15
             self._serial.write(b"\n")
             self._sendCommand("M105")  # Request temperature, as this should (if baudrate is correct) result in a command with "T:" in it
+
             while timeout_time > time.time():
-                line = self._readline() 
+                line = self._readline()
                 if line is None:
                     self.setIsConnected(False) # Something went wrong with reading, could be that close was called.
                     return
                 
                 if b"T:" in line:
                     self._serial.timeout = 0.5
-                    self._serial.write(b"\n")
                     self._sendCommand("M105")
                     sucesfull_responses += 1
                     if sucesfull_responses >= self._required_responses_auto_baud:
@@ -220,6 +220,8 @@ class PrinterConnection(SignalEmitter):
                         self.setIsConnected(True)
                         Logger.log("i", "Established printer connection on port %s" % self._serial_port)
                         return 
+
+        Logger.log("e", "Baud rate detection for %s failed", self._serial_port)
         self.close() # Unable to connect, wrap up.
         self.setIsConnected(False)