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

This commit is contained in:
Alex Voinea 2020-08-18 19:29:18 +03:00
parent e2856ba4f5
commit 2c2926882a
No known key found for this signature in database
GPG Key ID: F5034E7CFCF2F973

View File

@ -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.