Browse Source

new timout/add adv_ok

pull/1/head
Wurstnase 10 years ago
parent
commit
92575cecca
  1. 10
      Marlin/Configuration_adv.h
  2. 8
      Marlin/Marlin_main.cpp

10
Marlin/Configuration_adv.h

@ -374,9 +374,13 @@ const unsigned int dropsegments=5; //everything with less than this number of st
#define MAX_CMD_SIZE 96 #define MAX_CMD_SIZE 96
#define BUFSIZE 4 #define BUFSIZE 4
// Some Hosts doesn't have a timeout for resend a command. // Bad Serial-connections can miss a received command by sending an 'ok'
// This is a workaround for them. If your printer sometimes stuck and stop printing this could help. // Therefore some clients go after 30 seconds in a timeout. Some other clients start sending commands while receiving a 'wait'.
// #define NO_TIMEOUTS // This wait is only send when the buffer is empty. The timeout-length is in milliseconds. 1000 is a good value.
// #define NO_TIMEOUTS 1000
// Some clients will have this feature soon. This should make the NO_TIMEOUTS unnecessary.
// #define ADVANCED_OK
// @section fwretract // @section fwretract

8
Marlin/Marlin_main.cpp

@ -728,7 +728,7 @@ void get_command() {
static millis_t last_command_time = 0; static millis_t last_command_time = 0;
millis_t ms = millis(); millis_t ms = millis();
if (!MYSERIAL.available() && commands_in_queue == 0 && ms - last_command_time > 1000) { if (!MYSERIAL.available() && commands_in_queue == 0 && ms - last_command_time > NO_TIMEOUTS) {
SERIAL_ECHOLNPGM(MSG_WAIT); SERIAL_ECHOLNPGM(MSG_WAIT);
last_command_time = ms; last_command_time = ms;
} }
@ -5299,7 +5299,11 @@ void ClearToSend() {
#ifdef SDSUPPORT #ifdef SDSUPPORT
if (fromsd[cmd_queue_index_r]) return; if (fromsd[cmd_queue_index_r]) return;
#endif #endif
SERIAL_PROTOCOLLNPGM(MSG_OK); SERIAL_PROTOCOLPGM(MSG_OK);
#ifdef ADVANCED_OK
SERIAL_PROTOCOLPGM(" N"); SERIAL_PROTOCOL(gcode_LastN);
SERIAL_PROTOCOLPGM(" S"); SERIAL_PROTOCOLLN(commands_in_queue);
#endif
} }
void get_coordinates() { void get_coordinates() {

Loading…
Cancel
Save