Commit Graph

66 Commits

Author SHA1 Message Date
Scott Lahteine
53730be606
Fix MarlinSerial (#10992) 2018-06-10 20:04:52 -05:00
Scott Lahteine
095cc75838 Add hidden Serial debug options
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 22:23:10 -05:00
Scott Lahteine
17a965de17 Fix serial XON/XOFF handshaking
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
2018-06-09 22:23:10 -05:00
Scott Lahteine
1dd4e63402 MarlinSerial.cpp formatting tweak 2018-06-08 19:53:39 -05:00
Scott Lahteine
3b06a8e917
[1.1.x] Assorted fixes and improvements (#10914)
Co-Authored-By: ejtagle
2018-06-01 19:00:59 -05:00
Scott Lahteine
27c5ede796 Add USE_MARLINSERIAL conditional 2018-05-24 05:51:14 -05:00
Scott Lahteine
11bbcfd69e
Update emergency_parser for 2.0.x parity (#10530) 2018-04-25 22:42:43 -05:00
Scott Lahteine
5ce64f6d16 Combine __AVR__ and USBCON for 2.0.x parity 2018-03-10 01:51:35 -06:00
Scott Lahteine
b6fa55aa37
Fix: M112 calling kill from interrupt (#9922)
Fix #9906
2018-03-03 23:13:53 -06:00
Roxy-3D
0edf5a2ab5
Better handle serial over runs... 2018-01-18 16:51:27 -06:00
Roxy-3D
cbdbeb3e69
PronterFace M105 work around (#9227)
PronterFace keeps sending M105 requests during long operations like G29 P1, G29 P2, G29 P4 and G26. The serial buffer fills up before the operation is complete. The problem is, a corrupted command gets executed. It is very typical for the M105 to turn into a M1 (actually... M1M105 is typical).

This causes the printer to say "Click to resume..."

This is a temporary fix until we figure out the correct way to resolve the issue.

More work needed for G26.
2018-01-17 22:51:19 -06:00
Scott Lahteine
e17869ca20 Fix Emergency Parser
Followup to #7459
2017-10-14 15:58:07 -05:00
Scott Lahteine
0ec9a7f090 Fix xon_xoff_state initialization 2017-10-04 12:10:15 -05:00
Scott Lahteine
4e19ff75b6 XON/XOFF corrections, tweaks, formatting, etc. 2017-10-02 03:52:42 -05:00
etagle
534bbb81ff Adding XON/XOFF and STATISTICS implementation 2017-08-08 02:46:37 -03:00
Scott Lahteine
57a51fd5db Tweak some else clauses 2017-06-10 16:40:10 -05:00
Scott Lahteine
de4e19f17e Patch MarlinSerial to match up with 32-bit version 2017-04-02 04:39:18 -05:00
Scott Lahteine
eaa66f3c46 Indent MarlinSerial code 2017-04-02 01:05:25 -05:00
Scott Lahteine
cd882b88db #if defined => #ifdef / PIN_EXISTS 2017-03-22 20:51:11 -05:00
Scott Lahteine
50ee749082 Centralize click-handling in the LCD loop 2016-10-28 20:57:21 -05:00
Scott Lahteine
c5fa70809b Implement M0/M1 for EMERGENCY_PARSER 2016-09-13 03:33:00 -05:00
AnHardt
7e36b76af2 Repair MarlinSerial with TX-buffer
These '{' are important to avoid the redefinition of `unsigned char _sreg = SREG;`
at the same level.
Used in
```
#define CRITICAL_SECTION_START  unsigned char _sreg = SREG; cli();
```
2016-08-22 23:40:09 +02:00
Scott Lahteine
14395a1a96 Optimize, reduce size of MarlinSerial 2016-08-19 16:53:20 -05:00
Scott Lahteine
1a558ef486 Tweak MarlinSerial precursor 2016-08-11 12:47:06 -07:00
Scott Lahteine
b73203a0b7 Move some includes around to uncover missing deps 2016-08-02 19:37:46 -07:00
Scott Lahteine
83d341c394 Make Conditionals.h a catch-all for old configs 2016-07-30 04:25:30 -07:00
João Brázio
3ebad4e020 Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
esenapaj
58177a1602 Suppress warnings 2016-07-12 08:22:24 +09:00
Scott Lahteine
51c9c3fe2c Indentation in MarlinSerial.cpp 2016-07-09 17:57:53 -07:00
AnHardt
4b44a23a36 Add TX-buffer for MarlinSerial
Similar to the current Arduino HardwareSerial
but with max. 256 byte buffer-size.

Deactivated by default.

The boards with AT90USB processor (USBCON) already use a TX-buffer.
2016-07-08 17:25:21 +02:00
Scott Lahteine
bd5a825b8b Wait for end of line before invoking action 2016-07-07 16:37:23 -07:00
Scott Lahteine
ea47803ae2 Simplify emergency parser (only parse initial command) 2016-07-07 16:37:22 -07:00
Scott Lahteine
834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 2016-07-07 16:37:22 -07:00
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
Scott Lahteine
0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
5e5d250832 Added gplv3 header to all Marlin files 2016-03-24 18:01:20 +00:00
Lukas Abfalterer
83795d3e63 deleted double used comments 2016-03-06 05:51:58 -08:00
Scott Lahteine
e4945b30d2 sbi and cbi are deprecated 2016-03-06 05:51:55 -08:00
Scott Lahteine
ff13070b59 Use _BV macros, patch up others 2016-03-06 05:51:55 -08:00
AnHardt
cb88fdd242 Protect MarlinSerial against interrupts
Protect MarlinSerial against interrupts
by shielding the CRITICAL_SECTIONs

Now with a test if RX_BUFFER_SIZE is in the required range.
Code in peek() and read() is now optimized for readability and showing the similarity between the two.

Maybe a bit overprotected in checkRx() and store_char(), but now some days without detected errors from this source.
2016-02-24 17:18:12 +01:00
AnHardt
dc0f41868e Make rx tail/head atomic 2016-02-24 15:51:34 +01:00
Scott Lahteine
9bdab4f3a8 Clean up "else" and other spacing 2015-11-12 00:03:21 -06:00
Scott Lahteine
0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Richard Wackerbarth
4b9d5cd352 Use lowercase names for serial instances 2015-08-02 23:01:39 -05:00
Scott Lahteine
1e2deff4fd Rename BTENABLED to BLUETOOTH
- For some reason it’s easy to forget what BT stands for, but it
doesn’t need an abbreviation.
2015-08-02 22:56:50 -05:00
Scott Lahteine
58cfcd4239 Overridable Options - Part 5
Apply `ENABLED` / `DISABLED` macros to files needing only a small
number of changes.
2015-07-31 01:24:20 -05:00
Richard Wackerbarth
e83575537a Compiler defines USBCON for USB devices (PR#2433) 2015-07-15 10:32:11 -05:00
Scott Lahteine
c065da52ec Spacing and spelling 2015-04-03 22:54:48 -07:00
Scott Lahteine
1e5c18bb14 Add code_value_short and SERIAL_CHAR 2015-04-03 21:43:30 -07:00
Scott Lahteine
c37f7d15c9 - Rename WRITE_E_STEP for consistency
- Add BIT and TEST macros
- Add _APPLY_ macros to stepper.cpp to help with consolidation
- Consolidate code in stepper.cpp using macros
- Apply standards in stepper.cpp
- Use >= 0 instead of > -1 as a better semantic
- Replace DUAL_Y_CARRIAGE with Y_DUAL_STEPPER_DRIVERS
2015-03-14 04:28:22 -07:00