Marlin_Firmware/Marlin
AnHardt a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
2016-07-07 16:37:22 -07:00
..
example_configurations Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
fonts Rename README file for fonts 2016-04-18 20:09:03 -07:00
blinkm.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
blinkm.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
boards.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
buzzer.h Heal the watchgog 2016-06-12 00:34:31 +02:00
cardreader.cpp Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
cardreader.h Add an SD Card stop function, use in ultralcd 2016-06-17 18:27:14 -07:00
circularqueue.h Non-blocking buzzer 2016-06-09 20:20:05 -07:00
Conditionals.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
Configuration_adv.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
configuration_store.cpp Extra comments to clarify EEPROM code 2016-06-30 16:28:01 -07:00
configuration_store.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
Configuration.h Fix spelling in a config comment 2016-06-28 16:49:13 -07:00
dac_mcp4728.cpp Support for newer Wire library 2016-06-27 20:25:03 -07:00
dac_mcp4728.h Support for newer Wire library 2016-06-27 20:25:03 -07:00
digipot_mcp4451.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_bitmaps.h SINGLENOZZLE: EXTRUDERS versus HOTENDS 2016-06-03 17:38:03 -07:00
dogm_custom_bitmaps.h Custom Splash Screen 2016-06-14 09:39:28 +02:00
dogm_font_data_6x9_marlin.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_HD44780_C.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_HD44780_J.h Update Kana font 2016-03-31 10:02:47 +09:00
dogm_font_data_HD44780_W.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_1.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_5_Cyrillic.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_CN.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_font_data_ISO10646_Kana.h Update Kana font 2016-03-31 10:02:47 +09:00
dogm_font_data_Marlin_symbols.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
dogm_lcd_implementation.h Use STATIC_ITEM for LCD message display 2016-07-02 15:47:15 -07:00
endstops.cpp Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
endstops.h Drop FORCE_INLINE from endstops.h 2016-05-30 17:08:56 -07:00
fastio.h Enclose all #error strings with apostrophes 2016-05-13 21:10:23 +09:00
language_an.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_bg.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_ca.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_cn.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_cz.h Update language_cz.h 2016-07-06 21:04:34 +02:00
language_da.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_de.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_en.h Shorter labels for Print Stats info 2016-07-03 16:00:24 -07:00
language_es.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_eu.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_fi.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_fr.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_gl.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_hr.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_it.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_kana_utf8.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_kana.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_nl.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_pl.h Tab to Space 2016-07-02 08:07:33 +09:00
language_pt_utf8.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_pt-br_utf8.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_pt-br.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_pt.h universalize axis_unhomed_error() 2016-06-27 20:19:51 -07:00
language_ru.h Cosmetic changes for language files 2016-06-21 21:13:25 +09:00
language_test.h Fix minor spelling in comments 2016-04-14 20:06:59 -07:00
language.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
M100_Free_Mem_Chk.cpp Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
macros.h Simplified variable-size array macros 2016-07-01 20:36:05 -07:00
Makefile Merge pull request #3224 from yarda/fix-melzi2-arduino-1.6.x 2016-05-08 19:33:37 -07:00
Marlin_main.cpp Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
Marlin.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
Marlin.ino Update U8glib URL 2016-03-30 14:26:28 +09:00
MarlinSerial.cpp Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
MarlinSerial.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
mesh_bed_leveling.cpp Use memset in mbl.reset to save 58 bytes 2016-06-08 16:05:18 -07:00
mesh_bed_leveling.h MBL: cel => cell 2016-06-07 19:10:39 -07:00
pins_3DRAG.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
pins_5DPRINT.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_99.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_A4JP.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X1.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X3_PRO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_AZTEEG_X3.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BAM_DICE_DUE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BQ_ZUM_MEGA_3D.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BRAINWAVE_PRO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_BRAINWAVE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_CHEAPTRONIC.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_CNCONTROLS_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_ELEFU_3.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_FELIX2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN3_MONOLITHIC.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN3_PLUS.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN6_DELUXE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN6.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_14.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_GEN7_CUSTOM.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_K8200.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_K8400.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
pins_LEAPFROG.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MEGACONTROLLER.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MEGATRONICS_2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MEGATRONICS_3.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MEGATRONICS.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MELZI_MAKR3D.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MELZI.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MINIRAMBO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MINITRONICS.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MKS_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_MKS_BASE.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_OMCA_A.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_OMCA.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_PRINTRBOARD_REVF.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_PRINTRBOARD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMBO.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_13_EFB.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_13.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_14_EFB.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_14.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RAMPS_OLD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RIGIDBOARD_V2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RIGIDBOARD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_RUMBA.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SAINSMART_2IN1.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SANGUINOLOLU_11.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SANGUINOLOLU_12.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SAV_MKI.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_SETHI.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_STB_11.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_TEENSY2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_TEENSYLU.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_ULTIMAIN_2.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_ULTIMAKER_OLD.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins_ULTIMAKER.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
pins.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
planner_bezier.cpp Update comments, rename next_ping_ms, followup to #3797 2016-05-19 16:44:57 -07:00
planner_bezier.h Add BEZIER_CURVE_SUPPORT (G5 XYZEFIJPQ) 2016-05-14 14:52:08 -07:00
planner.cpp Fixes somes compiler warnings 2016-06-23 03:12:55 +01:00
planner.h Fix feedrate in gcode_T (max_feedrate is mm/s) 2016-06-16 16:03:14 -07:00
printcounter.cpp Tweak spacing in printcounter.cpp 2016-07-02 15:22:33 -07:00
printcounter.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
qr_solve.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
qr_solve.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SanityCheck.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
Sd2Card.cpp Enclose all #error strings with apostrophes 2016-05-13 21:10:23 +09:00
Sd2Card.h Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
Sd2PinMap.h Enclose all #error strings with apostrophes 2016-05-13 21:10:23 +09:00
SdBaseFile.cpp 8.3-filenames second try 2016-05-02 15:58:04 +02:00
SdBaseFile.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatConfig.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatStructs.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatUtil.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdFatUtil.h Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdFile.cpp Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdFile.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
SdInfo.h Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdVolume.cpp Converted all files on src to Unix file format 2016-04-26 21:23:39 +01:00
SdVolume.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
servo.cpp Tab to Space 2016-07-02 08:07:33 +09:00
servo.h SERVO_DEACTIVATION_DELAY => SERVO_DELAY 2016-06-23 14:33:29 -07:00
speaker.h Non-blocking buzzer 2016-06-09 20:20:05 -07:00
speed_lookuptable.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
stepper_dac.cpp Merge pull request #4161 from thinkyhead/rc_general_cleanup 2016-06-27 20:46:26 -07:00
stepper_dac.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
stepper_indirection.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
stepper_indirection.h Automatically set X2 stepper pins 2016-05-18 19:09:09 -07:00
stepper.cpp Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
stepper.h make motor_current_setting static and constexpr 2016-06-21 19:50:08 -07:00
stopwatch.cpp Fixes #3809 and adds several improvements to the Stopwatch and 2016-05-22 01:59:59 +01:00
stopwatch.h Fixes #3809 and adds several improvements to the Stopwatch and 2016-05-22 01:59:59 +01:00
temperature.cpp Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
temperature.h Fix compile error with watch_bed_next_ms 2016-06-21 02:13:41 -07:00
thermistornames.h Add "About Printer" information menu. 2016-07-02 15:22:26 -07:00
thermistortables.h Cosmetic changes and small fix for thermistortables.h 2016-06-21 21:19:47 +09:00
twibus.cpp Shrink debug code in TWIBus and disable by default 2016-04-20 12:44:30 -07:00
twibus.h Shrink debug code in TWIBus and disable by default 2016-04-20 12:44:30 -07:00
ultralcd_implementation_hitachi_HD44780.h Use STATIC_ITEM for LCD message display 2016-07-02 15:47:15 -07:00
ultralcd_st7920_u8glib_rrd.h Add a ported example configuration for the Velleman K8400 (Vertex) printer. 2016-07-03 22:09:08 +01:00
ultralcd.cpp Change cancel_heatup to wait_for_heatup 2016-07-06 09:17:50 -07:00
ultralcd.h Change cancel_heatup to wait_for_heatup 2016-07-06 09:17:50 -07:00
utf_mapper.h Tweaks to some verbiage 2016-05-14 15:06:09 -07:00
vector_3.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
vector_3.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
Version.h Updated all example configuration files 2016-06-12 00:36:15 +01:00
watchdog.cpp Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00
watchdog.h Further cleanup of comments, partial Doxygen-style 2016-03-25 00:45:56 -07:00