Move M155 to cpp, auto-report to Temperature

This commit is contained in:
Scott Lahteine 2017-09-16 13:05:01 -05:00
parent df031ab100
commit df0432c7c8
5 changed files with 41 additions and 28 deletions

View file

@ -374,23 +374,6 @@ bool pin_is_protected(const int8_t pin) {
return false; return false;
} }
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
static uint8_t auto_report_temp_interval;
static millis_t next_temp_report_ms;
inline void auto_report_temperatures() {
if (auto_report_temp_interval && ELAPSED(millis(), next_temp_report_ms)) {
next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval;
thermalManager.print_heaterstates();
SERIAL_EOL();
}
}
#include "gcode/temperature/M155.h"
#endif // AUTO_REPORT_TEMPERATURES && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
#if DISABLED(EMERGENCY_PARSER) #if DISABLED(EMERGENCY_PARSER)
#include "gcode/control/M108.h" #include "gcode/control/M108.h"
#include "gcode/control/M112.h" #include "gcode/control/M112.h"
@ -902,7 +885,7 @@ void idle(
#endif #endif
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED) #if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
auto_report_temperatures(); thermalManager.auto_report_temperatures();
#endif #endif
manage_inactivity( manage_inactivity(

View file

@ -144,7 +144,6 @@ extern void gcode_M140();
extern void gcode_M145(); extern void gcode_M145();
extern void gcode_M149(); extern void gcode_M149();
extern void gcode_M150(); extern void gcode_M150();
extern void gcode_M155();
extern void gcode_M163(); extern void gcode_M163();
extern void gcode_M164(); extern void gcode_M164();
extern void gcode_M165(); extern void gcode_M165();
@ -495,9 +494,7 @@ void GcodeSuite::process_next_command() {
return; // "ok" already printed return; // "ok" already printed
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED) #if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
case 155: // M155: Set temperature auto-report interval case 155: M155(); break; // M155: Set temperature auto-report interval
gcode_M155();
break;
#endif #endif
#if HAS_TEMP_BED #if HAS_TEMP_BED

View file

@ -20,13 +20,21 @@
* *
*/ */
#include "../../inc/MarlinConfig.h"
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
#include "../gcode.h"
#include "../../module/temperature.h"
/** /**
* M155: Set temperature auto-report interval. M155 S<seconds> * M155: Set temperature auto-report interval. M155 S<seconds>
*/ */
void gcode_M155() { void GcodeSuite::M155() {
if (parser.seenval('S')) {
auto_report_temp_interval = parser.value_byte(); if (parser.seenval('S'))
NOMORE(auto_report_temp_interval, 60); thermalManager.set_auto_report_interval(parser.value_byte());
next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval;
}
} }
#endif // AUTO_REPORT_TEMPERATURES && (HAS_TEMP_HOTEND || HAS_TEMP_BED)

View file

@ -2259,4 +2259,19 @@ void Temperature::isr() {
#endif #endif
} }
#if ENABLED(AUTO_REPORT_TEMPERATURES)
uint8_t Temperature::auto_report_temp_interval;
millis_t Temperature::next_temp_report_ms;
void Temperature::auto_report_temperatures() {
if (auto_report_temp_interval && ELAPSED(millis(), next_temp_report_ms)) {
next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval;
print_heaterstates();
SERIAL_EOL();
}
}
#endif // AUTO_REPORT_TEMPERATURES
#endif // HAS_TEMP_HOTEND || HAS_TEMP_BED #endif // HAS_TEMP_HOTEND || HAS_TEMP_BED

View file

@ -527,6 +527,16 @@ class Temperature {
#if HAS_TEMP_HOTEND || HAS_TEMP_BED #if HAS_TEMP_HOTEND || HAS_TEMP_BED
static void print_heaterstates(); static void print_heaterstates();
#if ENABLED(AUTO_REPORT_TEMPERATURES)
static uint8_t auto_report_temp_interval;
static millis_t next_temp_report_ms;
static void auto_report_temperatures(void);
FORCE_INLINE void set_auto_report_interval(uint8_t v) {
NOMORE(v, 60);
auto_report_temp_interval = v;
next_temp_report_ms = millis() + 1000UL * v;
}
#endif
#endif #endif
private: private: