Commit | Line | Data |
---|---|---|
807b9b57 JM |
1 | /* |
2 | This file is part of Smoothie (http://smoothieware.org/). The motion control part is heavily based on Grbl (https://github.com/simen/grbl). | |
3 | Smoothie 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. | |
4 | Smoothie 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. | |
5 | You should have received a copy of the GNU General Public License along with Smoothie. If not, see <http://www.gnu.org/licenses/>. | |
6 | */ | |
7 | ||
29e809e0 JM |
8 | #pragma once |
9 | ||
807b9b57 JM |
10 | #include <array> |
11 | ||
12 | #ifndef MAX_ROBOT_ACTUATORS | |
29e809e0 JM |
13 | #ifdef CNC |
14 | #define MAX_ROBOT_ACTUATORS 3 | |
15 | #else | |
16 | // includes 2 extruders | |
17 | #define MAX_ROBOT_ACTUATORS 5 | |
18 | #endif | |
807b9b57 JM |
19 | #endif |
20 | ||
56727944 JM |
21 | #if MAX_ROBOT_ACTUATORS < 3 || MAX_ROBOT_ACTUATORS > 6 |
22 | #error "MAX_ROBOT_ACTUATORS must be >= 3 and <= 6" | |
23 | #endif | |
24 | ||
b5bd71f8 | 25 | #ifndef N_PRIMARY_AXIS |
492cadb7 JM |
26 | // This may chnage and include ABC |
27 | #define N_PRIMARY_AXIS 3 | |
28 | #endif | |
29 | ||
30 | #if N_PRIMARY_AXIS < 3 || N_PRIMARY_AXIS > MAX_ROBOT_ACTUATORS | |
31 | #error "N_PRIMARY_AXIS must be >= 3 and <= MAX_ROBOT_ACTUATORS" | |
b5bd71f8 JM |
32 | #endif |
33 | ||
29e809e0 | 34 | // Keep MAX_ROBOT_ACTUATORS as small as practical it impacts block size and therefore free memory. |
807b9b57 JM |
35 | const size_t k_max_actuators = MAX_ROBOT_ACTUATORS; |
36 | typedef struct std::array<float, k_max_actuators> ActuatorCoordinates; |