123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /**
- * Marlin 3D Printer Firmware
- * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program 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.
- *
- * This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
- #ifndef __ENUM_H__
- #define __ENUM_H__
-
- /**
- * Axis indices as enumerated constants
- *
- * Special axis:
- * - A_AXIS and B_AXIS are used by COREXY printers
- * - X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship
- * between X_AXIS and X Head movement, like CoreXY bots
- */
- enum AxisEnum {
- NO_AXIS = -1,
- X_AXIS = 0,
- A_AXIS = 0,
- Y_AXIS = 1,
- B_AXIS = 1,
- Z_AXIS = 2,
- C_AXIS = 2,
- E_AXIS = 3,
- X_HEAD = 4,
- Y_HEAD = 5,
- Z_HEAD = 5
- };
-
- #define LOOP_XYZ(VAR) for (uint8_t VAR=X_AXIS; VAR<=Z_AXIS; VAR++)
- #define LOOP_XYZE(VAR) for (uint8_t VAR=X_AXIS; VAR<=E_AXIS; VAR++)
-
- typedef enum {
- LINEARUNIT_MM,
- LINEARUNIT_INCH
- } LinearUnit;
-
- typedef enum {
- TEMPUNIT_C,
- TEMPUNIT_K,
- TEMPUNIT_F
- } TempUnit;
-
- /**
- * Debug flags
- * Not yet widely applied
- */
- enum DebugFlags {
- DEBUG_NONE = 0,
- DEBUG_ECHO = _BV(0), ///< Echo commands in order as they are processed
- DEBUG_INFO = _BV(1), ///< Print messages for code that has debug output
- DEBUG_ERRORS = _BV(2), ///< Not implemented
- DEBUG_DRYRUN = _BV(3), ///< Ignore temperature setting and E movement commands
- DEBUG_COMMUNICATION = _BV(4), ///< Not implemented
- DEBUG_LEVELING = _BV(5) ///< Print detailed output for homing and leveling
- };
-
- enum EndstopEnum {
- X_MIN,
- Y_MIN,
- Z_MIN,
- Z_MIN_PROBE,
- X_MAX,
- Y_MAX,
- Z_MAX,
- Z2_MIN,
- Z2_MAX
- };
-
- /**
- * Temperature
- * Stages in the ISR loop
- */
- enum TempState {
- PrepareTemp_0,
- MeasureTemp_0,
- PrepareTemp_BED,
- MeasureTemp_BED,
- PrepareTemp_1,
- MeasureTemp_1,
- PrepareTemp_2,
- MeasureTemp_2,
- PrepareTemp_3,
- MeasureTemp_3,
- Prepare_FILWIDTH,
- Measure_FILWIDTH,
- StartupDelay // Startup, delay initial temp reading a tiny bit so the hardware can settle
- };
-
- #if ENABLED(EMERGENCY_PARSER)
- enum e_parser_state {
- state_RESET,
- state_N,
- state_M,
- state_M1,
- state_M10,
- state_M108,
- state_M11,
- state_M112,
- state_M4,
- state_M41,
- state_M410,
- state_IGNORE // to '\n'
- };
- #endif
-
- #if ENABLED(FILAMENT_CHANGE_FEATURE)
- enum FilamentChangeMenuResponse {
- FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
- FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE,
- FILAMENT_CHANGE_RESPONSE_RESUME_PRINT
- };
-
- #if ENABLED(ULTIPANEL)
- enum FilamentChangeMessage {
- FILAMENT_CHANGE_MESSAGE_INIT,
- FILAMENT_CHANGE_MESSAGE_UNLOAD,
- FILAMENT_CHANGE_MESSAGE_INSERT,
- FILAMENT_CHANGE_MESSAGE_LOAD,
- FILAMENT_CHANGE_MESSAGE_EXTRUDE,
- FILAMENT_CHANGE_MESSAGE_OPTION,
- FILAMENT_CHANGE_MESSAGE_RESUME,
- FILAMENT_CHANGE_MESSAGE_STATUS
- };
- #endif
- #endif
-
- /**
- * States for managing Marlin and host communication
- * Marlin sends messages if blocked or busy
- */
- #if ENABLED(HOST_KEEPALIVE_FEATURE)
- enum MarlinBusyState {
- NOT_BUSY, // Not in a handler
- IN_HANDLER, // Processing a GCode
- IN_PROCESS, // Known to be blocking command input (as in G29)
- PAUSED_FOR_USER, // Blocking pending any input
- PAUSED_FOR_INPUT // Blocking pending text input (concept)
- };
- #endif
-
- #if ENABLED(MESH_BED_LEVELING)
- enum MeshLevelingState {
- MeshReport,
- MeshStart,
- MeshNext,
- MeshSet,
- MeshSetZOffset,
- MeshReset
- };
-
- enum MBLStatus {
- MBL_STATUS_NONE = 0,
- MBL_STATUS_HAS_MESH_BIT = 0,
- MBL_STATUS_ACTIVE_BIT = 1
- };
- #endif
-
- /**
- * SD Card
- */
- enum LsAction { LS_SerialPrint, LS_Count, LS_GetFilename };
-
- /**
- * Ultra LCD
- */
- enum LCDViewAction {
- LCDVIEW_NONE,
- LCDVIEW_REDRAW_NOW,
- LCDVIEW_CALL_REDRAW_NEXT,
- LCDVIEW_CLEAR_CALL_REDRAW,
- LCDVIEW_CALL_NO_REDRAW
- };
-
- #endif // __ENUM_H__
|