Re-factored system states and alarm management. Serial baud support greater than 57600.
- Refactored system states to be more clear and concise. Alarm locks processes when position is unknown to indicate to user something has gone wrong. - Changed mc_alarm to mc_reset, which now manages the system reset function. Centralizes it. - Renamed '$X' kill homing lock to kill alarm lock. - Created an alarm error reporting method to clear up what is an alarm: message vs a status error: message. For GUIs mainly. Alarm codes are negative. Status codes are positive. - Serial baud support upto 115200. Previous baudrate calc was unstable for 57600 and above. - Alarm state locks out all g-code blocks, including startup scripts, but allows user to access settings and internal commands. For example, to disable hard limits, if they are problematic. - Hard limits do not respond in an alarm state. - Fixed a problem with the hard limit interrupt during the homing cycle. The interrupt register is still active during the homing cycle and still signal the interrupt to trigger when re-enabled. Instead, just disabled the register. - Homing rate adjusted. All axes move at homing seek rate, regardless of how many axes move at the same time. This is unlike how the stepper module does it as a point to point rate. - New config.h settings to disable the homing rate adjustment and the force homing upon powerup. - Reduced the number of startup lines back down to 2 from 3. This discourages users from placing motion block in there, which can be very dangerous. - Startup blocks now run only after an alarm-free reset or after a homing cycle. Does not run when $X kill is called. For satefy reasons
This commit is contained in:
35
report.h
35
report.h
@ -29,27 +29,32 @@
|
||||
#define STATUS_ARC_RADIUS_ERROR 4
|
||||
#define STATUS_MODAL_GROUP_VIOLATION 5
|
||||
#define STATUS_INVALID_STATEMENT 6
|
||||
#define STATUS_HARD_LIMIT 7
|
||||
#define STATUS_SETTING_DISABLED 8
|
||||
#define STATUS_SETTING_VALUE_NEG 9
|
||||
#define STATUS_SETTING_STEP_PULSE_MIN 10
|
||||
#define STATUS_SETTING_READ_FAIL 11
|
||||
#define STATUS_IDLE_ERROR 12
|
||||
#define STATUS_ABORT_CYCLE 13
|
||||
#define STATUS_HOMING_LOCK 14
|
||||
#define STATUS_SETTING_DISABLED 7
|
||||
#define STATUS_SETTING_VALUE_NEG 8
|
||||
#define STATUS_SETTING_STEP_PULSE_MIN 9
|
||||
#define STATUS_SETTING_READ_FAIL 10
|
||||
#define STATUS_IDLE_ERROR 11
|
||||
#define STATUS_ALARM_LOCK 12
|
||||
|
||||
// Define Grbl feedback message codes. Less than zero to distinguish message from error.
|
||||
#define MESSAGE_CRITICAL_EVENT -1
|
||||
#define MESSAGE_HOMING_ALARM -2
|
||||
#define MESSAGE_ENABLED -3
|
||||
#define MESSAGE_DISABLED -4
|
||||
#define MESSAGE_HOMING_UNLOCK -5
|
||||
// Define Grbl alarm codes. Less than zero to distinguish alarm error from status error.
|
||||
#define ALARM_HARD_LIMIT -1
|
||||
#define ALARM_ABORT_CYCLE -2
|
||||
|
||||
// Define Grbl feedback message codes.
|
||||
#define MESSAGE_CRITICAL_EVENT 1
|
||||
#define MESSAGE_ALARM_LOCK 2
|
||||
#define MESSAGE_ALARM_UNLOCK 3
|
||||
#define MESSAGE_ENABLED 4
|
||||
#define MESSAGE_DISABLED 5
|
||||
|
||||
// Prints system status messages.
|
||||
void report_status_message(uint8_t status_code);
|
||||
|
||||
// Prints system alarm messages.
|
||||
void report_alarm_message(int8_t alarm_code);
|
||||
|
||||
// Prints miscellaneous feedback messages.
|
||||
void report_feedback_message(int8_t message_code);
|
||||
void report_feedback_message(uint8_t message_code);
|
||||
|
||||
// Prints welcome message
|
||||
void report_init_message();
|
||||
|
Reference in New Issue
Block a user