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
blinkm.cpp
blinkm.h
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
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
dogm_bitmaps.h
dogm_custom_bitmaps.h Custom Splash Screen 2016-06-14 09:39:28 +02:00
dogm_font_data_6x9_marlin.h
dogm_font_data_HD44780_C.h
dogm_font_data_HD44780_J.h
dogm_font_data_HD44780_W.h
dogm_font_data_ISO10646_1.h
dogm_font_data_ISO10646_5_Cyrillic.h
dogm_font_data_ISO10646_CN.h
dogm_font_data_ISO10646_Kana.h
dogm_font_data_Marlin_symbols.h
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
fastio.h
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
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
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
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
mesh_bed_leveling.h
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
planner_bezier.h
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
qr_solve.h
SanityCheck.h Add an emergency-command parser to MarlinSerial (supporting M108) 2016-07-07 16:37:22 -07:00
Sd2Card.cpp
Sd2Card.h
Sd2PinMap.h
SdBaseFile.cpp
SdBaseFile.h
SdFatConfig.h
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h
SdFile.cpp
SdFile.h
SdInfo.h
SdVolume.cpp
SdVolume.h
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
stepper_dac.cpp Merge pull request #4161 from thinkyhead/rc_general_cleanup 2016-06-27 20:46:26 -07:00
stepper_dac.h
stepper_indirection.cpp
stepper_indirection.h
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
stopwatch.h
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
twibus.h
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
vector_3.cpp
vector_3.h
Version.h Updated all example configuration files 2016-06-12 00:36:15 +01:00
watchdog.cpp
watchdog.h