Merge pull request #3414 from thinkyhead/rc_host_timeout_mods

Host Keepalive configurable timeout with 2s default
This commit is contained in:
Scott Lahteine 2016-04-08 21:45:45 -07:00
commit 50c3140040
21 changed files with 104 additions and 20 deletions

View File

@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -327,6 +327,10 @@ extern bool axis_homed[3]; // axis[n].is_homed
extern float zprobe_zoffset; extern float zprobe_zoffset;
#endif #endif
#if ENABLED(HOST_KEEPALIVE_FEATURE)
extern uint8_t host_keepalive_interval;
#endif
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE) #if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
extern float extrude_min_temp; extern float extrude_min_temp;
#endif #endif

View File

@ -155,6 +155,7 @@
* M110 - Set the current line number * M110 - Set the current line number
* M111 - Set debug flags with S<mask>. See flag bits defined in Marlin.h. * M111 - Set debug flags with S<mask>. See flag bits defined in Marlin.h.
* M112 - Emergency stop * M112 - Emergency stop
* M113 - Get or set the timeout interval for Host Keepalive "busy" messages
* M114 - Output current position to serial port * M114 - Output current position to serial port
* M115 - Capabilities string * M115 - Capabilities string
* M117 - Display a message on the controller screen * M117 - Display a message on the controller screen
@ -456,6 +457,7 @@ static bool send_ok[BUFSIZE];
static MarlinBusyState busy_state = NOT_BUSY; static MarlinBusyState busy_state = NOT_BUSY;
static millis_t next_busy_signal_ms = -1; static millis_t next_busy_signal_ms = -1;
uint8_t host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL;
#define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0) #define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0)
#else #else
#define host_keepalive() ; #define host_keepalive() ;
@ -2297,7 +2299,7 @@ void unknown_command_error() {
break; break;
} }
} }
next_busy_signal_ms = ms + 10000UL; // "busy: ..." message every 10s next_busy_signal_ms = host_keepalive_interval ? ms + 1000UL * host_keepalive_interval : -1;
} }
#endif //HOST_KEEPALIVE_FEATURE #endif //HOST_KEEPALIVE_FEATURE
@ -4427,6 +4429,27 @@ inline void gcode_M111() {
*/ */
inline void gcode_M112() { kill(PSTR(MSG_KILLED)); } inline void gcode_M112() { kill(PSTR(MSG_KILLED)); }
#if ENABLED(HOST_KEEPALIVE_FEATURE)
/**
* M113: Get or set Host Keepalive interval (0 to disable)
*
* S<seconds> Optional. Set the keepalive interval.
*/
inline void gcode_M113() {
if (code_seen('S')) {
host_keepalive_interval = (uint8_t)code_value_short();
NOMORE(host_keepalive_interval, 60);
}
else {
SERIAL_ECHO_START;
SERIAL_ECHOPAIR("M113 S", (unsigned long)host_keepalive_interval);
SERIAL_EOL;
}
}
#endif
#if ENABLED(BARICUDA) #if ENABLED(BARICUDA)
#if HAS_HEATER_1 #if HAS_HEATER_1

View File

@ -704,9 +704,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -701,9 +701,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -713,9 +713,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -715,9 +715,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -738,9 +738,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -716,9 +716,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -729,9 +729,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -742,9 +742,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -713,9 +713,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -843,9 +843,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -843,9 +843,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -847,9 +847,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -840,9 +840,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -757,9 +757,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -724,9 +724,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher

View File

@ -715,9 +715,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Host Keepalive // Host Keepalive
// //
// By default Marlin will send a busy status message to the host // By default Marlin will send a busy status message to the host
// every 10 seconds when it can't accept commands. // every couple of seconds when it can't accept commands.
// //
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
#if DISABLED(DISABLE_HOST_KEEPALIVE)
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
#endif
// //
// M100 Free Memory Watcher // M100 Free Memory Watcher