From 478627b6bc368fc564691dcbd19a7d9d14b175cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sat, 3 Dec 2022 11:50:12 +0000 Subject: [PATCH] Simplify parsing M862 This gets rid of float conversion. We just need to check the 6th character when M862 is detected. This character gives us the digit after the dot. Change in memory: Flash: -20 bytes SRAM: 0 bytes --- Firmware/Marlin_main.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 50453ae07..e0f9462a0 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8021,10 +8021,9 @@ Sigma_Exit: */ case 862: // M862: print checking - float nDummy; - uint8_t nCommand; - nCommand=(uint8_t)(modff(code_value(),&nDummy)*10.0+0.5); - switch((ClPrintChecking)nCommand) + { + ClPrintChecking nCommand = static_cast(strtol(strchr_pointer+5, NULL, 10)); + switch(nCommand) { case ClPrintChecking::_Nozzle: // ~ .1 uint16_t nDiameter; @@ -8074,7 +8073,8 @@ Sigma_Exit: SERIAL_PROTOCOLLN(GCODE_LEVEL); break; } - break; + break; + } #ifdef LIN_ADVANCE /*!