Browse Source

Don't switch unnecessarily. Also "\n" the ";S" request

Alex Voinea 3 years ago
parent
commit
2c2926882a
1 changed files with 8 additions and 10 deletions
  1. 8 10
      Firmware/Marlin_main.cpp

+ 8 - 10
Firmware/Marlin_main.cpp

@@ -3287,25 +3287,23 @@ void gcode_M701()
 static void gcode_PRUSA_SN()
 {
     uint8_t selectedSerialPort_bak = selectedSerialPort;
+    char SN[20];
     selectedSerialPort = 0;
-    putchar(';');
-    putchar('S');
-    int numbersRead = 0;
+    SERIAL_ECHOLNRPGM(PSTR(";S"));
+    uint8_t numbersRead = 0;
     ShortTimer timeout;
     timeout.start();
 
-    while (numbersRead < 19) {
-        while (MSerial.available() > 0) {
-            uint8_t serial_char = MSerial.read();
-            selectedSerialPort = selectedSerialPort_bak;
-            putchar(serial_char);
+    while (numbersRead < (sizeof(SN) - 1)) {
+        if (MSerial.available() > 0) {
+            SN[numbersRead] = MSerial.read();
             numbersRead++;
-            selectedSerialPort = 0;
         }
         if (timeout.expired(100u)) break;
     }
+    SN[numbersRead] = 0;
     selectedSerialPort = selectedSerialPort_bak;
-    putchar('\n');
+    SERIAL_ECHOLN(SN);
 }
 //! Detection of faulty RAMBo 1.1b boards equipped with bigger capacitors
 //! at the TACH_1 pin, which causes bad detection of print fan speed.