João Brázio
9 years ago
10 changed files with 206 additions and 112 deletions
@ -0,0 +1,190 @@ |
|||
/**
|
|||
* 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 |
|||
}; |
|||
|
|||
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__
|
Loading…
Reference in new issue