mirror of
https://github.com/grblHAL/core.git
synced 2026-03-24 05:12:31 +08:00
Removed IDLE state requirement for executing G65 macros, an error will no longer be returned and the macro will be run. Added event handler for outputting welcome message on "native" USB connect for drivers that provides the linestate changed event.
140 lines
4.3 KiB
C
140 lines
4.3 KiB
C
/*
|
|
errors.h -
|
|
|
|
Part of grblHAL
|
|
|
|
Copyright (c) 2017-2024 Terje Io
|
|
Copyright (c) 2011-2016 Sungeun K. Jeon for Gnea Research LLC
|
|
Copyright (c) 2009-2011 Simen Svale Skogsrud
|
|
|
|
grblHAL is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
grblHAL is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with grblHAL. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef _ERRORS_H_
|
|
#define _ERRORS_H_
|
|
|
|
#include <stddef.h>
|
|
|
|
// Define grblHAL status codes. Valid values (0-255)
|
|
typedef enum {
|
|
Status_OK = 0,
|
|
Status_ExpectedCommandLetter = 1,
|
|
Status_BadNumberFormat = 2,
|
|
Status_InvalidStatement = 3,
|
|
Status_NegativeValue = 4,
|
|
Status_HomingDisabled = 5,
|
|
Status_SettingStepPulseMin = 6,
|
|
Status_SettingReadFail = 7,
|
|
Status_IdleError = 8,
|
|
Status_SystemGClock = 9,
|
|
Status_SoftLimitError = 10,
|
|
Status_Overflow = 11,
|
|
Status_MaxStepRateExceeded = 12,
|
|
Status_CheckDoor = 13,
|
|
Status_LineLengthExceeded = 14,
|
|
Status_TravelExceeded = 15,
|
|
Status_InvalidJogCommand = 16,
|
|
Status_SettingDisabledLaser = 17,
|
|
Status_Reset = 18,
|
|
Status_NonPositiveValue = 19,
|
|
|
|
Status_GcodeUnsupportedCommand = 20,
|
|
Status_GcodeModalGroupViolation = 21,
|
|
Status_GcodeUndefinedFeedRate = 22,
|
|
Status_GcodeCommandValueNotInteger = 23,
|
|
Status_GcodeAxisCommandConflict = 24,
|
|
Status_GcodeWordRepeated = 25,
|
|
Status_GcodeNoAxisWords = 26,
|
|
Status_GcodeInvalidLineNumber = 27,
|
|
Status_GcodeValueWordMissing = 28,
|
|
Status_GcodeUnsupportedCoordSys = 29,
|
|
Status_GcodeG53InvalidMotionMode = 30,
|
|
Status_GcodeAxisWordsExist = 31,
|
|
Status_GcodeNoAxisWordsInPlane = 32,
|
|
Status_GcodeInvalidTarget = 33,
|
|
Status_GcodeArcRadiusError = 34,
|
|
Status_GcodeNoOffsetsInPlane = 35,
|
|
Status_GcodeUnusedWords = 36,
|
|
Status_GcodeG43DynamicAxisError = 37,
|
|
Status_GcodeIllegalToolTableEntry = 38,
|
|
Status_GcodeValueOutOfRange = 39,
|
|
Status_GcodeToolChangePending = 40,
|
|
Status_GcodeSpindleNotRunning = 41,
|
|
Status_GcodeIllegalPlane = 42,
|
|
Status_GcodeMaxFeedRateExceeded = 43,
|
|
Status_GcodeRPMOutOfRange = 44,
|
|
Status_LimitsEngaged = 45,
|
|
Status_HomingRequired = 46,
|
|
Status_GCodeToolError = 47,
|
|
Status_ValueWordConflict = 48,
|
|
Status_SelfTestFailed = 49,
|
|
Status_EStop = 50,
|
|
Status_MotorFault = 51,
|
|
Status_SettingValueOutOfRange = 52,
|
|
Status_SettingDisabled = 53,
|
|
Status_GcodeInvalidRetractPosition = 54,
|
|
Status_IllegalHomingConfiguration = 55,
|
|
Status_GCodeCoordSystemLocked = 56,
|
|
|
|
// Some error codes as defined in bdring's ESP32 port
|
|
Status_SDMountError = 60,
|
|
Status_SDReadError = 61,
|
|
Status_SDFailedOpenDir = 62,
|
|
Status_SDDirNotFound = 63,
|
|
Status_SDFileEmpty = 64,
|
|
|
|
Status_BTInitError = 70,
|
|
|
|
//
|
|
Status_ExpressionUknownOp = 71,
|
|
Status_ExpressionDivideByZero = 72,
|
|
Status_ExpressionArgumentOutOfRange = 73,
|
|
Status_ExpressionInvalidArgument = 74,
|
|
Status_ExpressionSyntaxError = 75,
|
|
Status_ExpressionInvalidResult = 76,
|
|
|
|
Status_AuthenticationRequired = 77,
|
|
Status_AccessDenied = 78,
|
|
Status_NotAllowedCriticalEvent = 79,
|
|
|
|
Status_FlowControlNotExecutingMacro = 80,
|
|
Status_FlowControlSyntaxError = 81,
|
|
Status_FlowControlStackOverflow = 82,
|
|
Status_FlowControlOutOfMemory = 83,
|
|
Status_FileOpenFailed = 84,
|
|
Status_StatusMax = Status_FlowControlOutOfMemory,
|
|
Status_UserException = 253,
|
|
Status_Handled, // For internal use only
|
|
Status_Unhandled // For internal use only
|
|
} __attribute__ ((__packed__)) status_code_t;
|
|
|
|
typedef struct {
|
|
status_code_t id;
|
|
const char *description;
|
|
} status_detail_t;
|
|
|
|
typedef struct error_details {
|
|
const uint16_t n_errors;
|
|
const status_detail_t *errors;
|
|
struct error_details *next;
|
|
} error_details_t;
|
|
|
|
typedef error_details_t *(*on_get_errors_ptr)(void);
|
|
|
|
error_details_t *errors_get_details (void);
|
|
const char *errors_get_description (status_code_t id);
|
|
void errors_register (error_details_t *details);
|
|
|
|
#endif
|