From 6da401be564b2621be8d4c49e3f07ec2e4b77321 Mon Sep 17 00:00:00 2001
From: 3d-gussner <3d.gussner@gmail.com>
Date: Mon, 30 Mar 2020 16:53:58 +0200
Subject: [PATCH] Move few D-codes command from Marlin_main to Dcodes D80, D81
and D106 have been added to `Marlin_main.cpp` but all other D-codes moved to
`Dcodes.cpp/.h`
---
Firmware/Dcodes.cpp | 92 ++++++++++++++++++++++++++++++++++++++++
Firmware/Dcodes.h | 22 ++++++++--
Firmware/Marlin_main.cpp | 54 ++---------------------
3 files changed, 113 insertions(+), 55 deletions(-)
diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp
index 79695c9e..7506e7fc 100644
--- a/Firmware/Dcodes.cpp
+++ b/Firmware/Dcodes.cpp
@@ -635,6 +635,98 @@ void dcode_12()
}
+#ifdef HEATBED_ANALYSIS
+ /*!
+ ### D80 - Bed check D80: Bed check
+ This command will log data to SD card file "mesh.txt".
+ #### Usage
+
+ D80 [ E | F | G | H | I | J ]
+
+ #### Parameters
+ - `E` - Dimension X (default 40)
+ - `F` - Dimention Y (default 40)
+ - `G` - Points X (default 40)
+ - `H` - Points Y (default 40)
+ - `I` - Offset X (default 74)
+ - `J` - Offset Y (default 34)
+ */
+void dcode_80()
+{
+ float dimension_x = 40;
+ float dimension_y = 40;
+ int points_x = 40;
+ int points_y = 40;
+ float offset_x = 74;
+ float offset_y = 33;
+
+ if (code_seen('E')) dimension_x = code_value();
+ if (code_seen('F')) dimension_y = code_value();
+ if (code_seen('G')) {points_x = code_value(); }
+ if (code_seen('H')) {points_y = code_value(); }
+ if (code_seen('I')) {offset_x = code_value(); }
+ if (code_seen('J')) {offset_y = code_value(); }
+ printf_P(PSTR("DIM X: %f\n"), dimension_x);
+ printf_P(PSTR("DIM Y: %f\n"), dimension_y);
+ printf_P(PSTR("POINTS X: %d\n"), points_x);
+ printf_P(PSTR("POINTS Y: %d\n"), points_y);
+ printf_P(PSTR("OFFSET X: %f\n"), offset_x);
+ printf_P(PSTR("OFFSET Y: %f\n"), offset_y);
+ bed_check(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y);
+}
+
+
+ /*!
+ ### D81 - Bed analysis D80: Bed analysis
+ This command will log data to SD card file "wldsd.txt".
+ #### Usage
+
+ D81 [ E | F | G | H | I | J ]
+
+ #### Parameters
+ - `E` - Dimension X (default 40)
+ - `F` - Dimention Y (default 40)
+ - `G` - Points X (default 40)
+ - `H` - Points Y (default 40)
+ - `I` - Offset X (default 74)
+ - `J` - Offset Y (default 34)
+ */
+void dcode_81()
+{
+ float dimension_x = 40;
+ float dimension_y = 40;
+ int points_x = 40;
+ int points_y = 40;
+ float offset_x = 74;
+ float offset_y = 33;
+
+ if (code_seen('E')) dimension_x = code_value();
+ if (code_seen('F')) dimension_y = code_value();
+ if (code_seen("G")) { strchr_pointer+=1; points_x = code_value(); }
+ if (code_seen("H")) { strchr_pointer+=1; points_y = code_value(); }
+ if (code_seen("I")) { strchr_pointer+=1; offset_x = code_value(); }
+ if (code_seen("J")) { strchr_pointer+=1; offset_y = code_value(); }
+
+ bed_analysis(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y);
+
+}
+
+#endif //HEATBED_ANALYSIS
+
+ /*!
+ ### D106 - Print measured fan speed for different pwm values D106: Print measured fan speed for different pwm values
+ */
+void dcode_106()
+{
+ for (int i = 255; i > 0; i = i - 5) {
+ fanSpeed = i;
+ //delay_keep_alive(2000);
+ for (int j = 0; j < 100; j++) {
+ delay_keep_alive(100);
+ }
+ printf_P(_N("%d: %d\n"), i, fan_speed[1]);
+ }
+}
#ifdef TMC2130
#include "planner.h"
diff --git a/Firmware/Dcodes.h b/Firmware/Dcodes.h
index eaf849ed..894cba52 100644
--- a/Firmware/Dcodes.h
+++ b/Firmware/Dcodes.h
@@ -2,26 +2,40 @@
#define DCODES_H
extern void dcode__1(); //D-1 - Endless loop (to simulate deadlock)
-
extern void dcode_0(); //D0 - Reset
extern void dcode_1(); //D1 - Clear EEPROM
extern void dcode_2(); //D2 - Read/Write RAM
+
+#ifdef DEBUG_DCODE3
extern void dcode_3(); //D3 - Read/Write EEPROM
+#endif //DEBUG_DCODE3
+
extern void dcode_4(); //D4 - Read/Write PIN
+
+#ifdef DEBUG_DCODE5
extern void dcode_5(); //D5 - Read/Write FLASH
+#endif //DEBUG_DCODE5
+
extern void dcode_6(); //D6 - Read/Write external FLASH
extern void dcode_7(); //D7 - Read/Write Bootloader
extern void dcode_8(); //D8 - Read/Write PINDA
extern void dcode_9(); //D9 - Read/Write ADC (Write=enable simulated, Read=disable simulated)
-
extern void dcode_10(); //D10 - XYZ calibration = OK
+extern void dcode_12(); //D12 - Log time. Writes the current time in the log file.
+
+#ifdef HEATBED_ANALYSIS
+extern void dcode_80(); //D80 - Bed check. This command will log data to SD card file "mesh.txt".
+extern void dcode_81(); //D81 - Bed analysis. This command will log data to SD card file "wldsd.txt".
+#endif //HEATBED_ANALYSIS
+
+ extern void dcode_106(); //D106 - Print measured fan speed for different pwm values
#ifdef TMC2130
-extern void dcode_2130(); //D2130 - TMC2130
+ extern void dcode_2130(); //D2130 - TMC2130
#endif //TMC2130
#ifdef PAT9125
-extern void dcode_9125(); //D9125 - PAT9125
+ extern void dcode_9125(); //D9125 - PAT9125
#endif //PAT9125
diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp
index e4e40cfb..c4948a20 100755
--- a/Firmware/Marlin_main.cpp
+++ b/Firmware/Marlin_main.cpp
@@ -8976,28 +8976,7 @@ Sigma_Exit:
- `J` - Offset Y (default 34)
*/
case 80:
- {
- float dimension_x = 40;
- float dimension_y = 40;
- int points_x = 40;
- int points_y = 40;
- float offset_x = 74;
- float offset_y = 33;
-
- if (code_seen('E')) dimension_x = code_value();
- if (code_seen('F')) dimension_y = code_value();
- if (code_seen('G')) {points_x = code_value(); }
- if (code_seen('H')) {points_y = code_value(); }
- if (code_seen('I')) {offset_x = code_value(); }
- if (code_seen('J')) {offset_y = code_value(); }
- printf_P(PSTR("DIM X: %f\n"), dimension_x);
- printf_P(PSTR("DIM Y: %f\n"), dimension_y);
- printf_P(PSTR("POINTS X: %d\n"), points_x);
- printf_P(PSTR("POINTS Y: %d\n"), points_y);
- printf_P(PSTR("OFFSET X: %f\n"), offset_x);
- printf_P(PSTR("OFFSET Y: %f\n"), offset_y);
- bed_check(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y);
- }break;
+ dcode_80(); break;
/*!
### D81 - Bed analysis D80: Bed analysis
@@ -9015,24 +8994,7 @@ Sigma_Exit:
- `J` - Offset Y (default 34)
*/
case 81:
- {
- float dimension_x = 40;
- float dimension_y = 40;
- int points_x = 40;
- int points_y = 40;
- float offset_x = 74;
- float offset_y = 33;
-
- if (code_seen('E')) dimension_x = code_value();
- if (code_seen('F')) dimension_y = code_value();
- if (code_seen("G")) { strchr_pointer+=1; points_x = code_value(); }
- if (code_seen("H")) { strchr_pointer+=1; points_y = code_value(); }
- if (code_seen("I")) { strchr_pointer+=1; offset_x = code_value(); }
- if (code_seen("J")) { strchr_pointer+=1; offset_y = code_value(); }
-
- bed_analysis(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y);
-
- } break;
+ dcode_81(); break;
#endif //HEATBED_ANALYSIS
#ifdef DEBUG_DCODES
@@ -9041,17 +9003,7 @@ Sigma_Exit:
### D106 - Print measured fan speed for different pwm values D106: Print measured fan speed for different pwm values
*/
case 106:
- {
- for (int i = 255; i > 0; i = i - 5) {
- fanSpeed = i;
- //delay_keep_alive(2000);
- for (int j = 0; j < 100; j++) {
- delay_keep_alive(100);
-
- }
- printf_P(_N("%d: %d\n"), i, fan_speed[1]);
- }
- }break;
+ dcode_106(); break;
#ifdef TMC2130
/*!