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;
}
#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)
#include "gcode/control/M108.h"
#include "gcode/control/M112.h"
@ -902,7 +885,7 @@ void idle(
#endif
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
auto_report_temperatures();
thermalManager.auto_report_temperatures();
#endif
manage_inactivity(

View File

@ -144,7 +144,6 @@ extern void gcode_M140();
extern void gcode_M145();
extern void gcode_M149();
extern void gcode_M150();
extern void gcode_M155();
extern void gcode_M163();
extern void gcode_M164();
extern void gcode_M165();
@ -495,9 +494,7 @@ void GcodeSuite::process_next_command() {
return; // "ok" already printed
#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED)
case 155: // M155: Set temperature auto-report interval
gcode_M155();
break;
case 155: M155(); break; // M155: Set temperature auto-report interval
#endif
#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>
*/
void gcode_M155() {
if (parser.seenval('S')) {
auto_report_temp_interval = parser.value_byte();
NOMORE(auto_report_temp_interval, 60);
next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval;
}
void GcodeSuite::M155() {
if (parser.seenval('S'))
thermalManager.set_auto_report_interval(parser.value_byte());
}
#endif // AUTO_REPORT_TEMPERATURES && (HAS_TEMP_HOTEND || HAS_TEMP_BED)

View File

@ -2259,4 +2259,19 @@ void Temperature::isr() {
#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

View File

@ -527,6 +527,16 @@ class Temperature {
#if HAS_TEMP_HOTEND || HAS_TEMP_BED
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
private: