Revert "Update Robot.cpp"
[clinton/Smoothieware.git] / src / modules / robot / ActuatorCoordinates.h
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
8 #pragma once
9
10 #include <array>
11
12 #ifndef MAX_ROBOT_ACTUATORS
13 #ifdef CNC
14 #define MAX_ROBOT_ACTUATORS 3
15 #else
16 // includes 2 extruders
17 #define MAX_ROBOT_ACTUATORS 5
18 #endif
19 #endif
20
21 #if MAX_ROBOT_ACTUATORS < 3 || MAX_ROBOT_ACTUATORS > 6
22 #error "MAX_ROBOT_ACTUATORS must be >= 3 and <= 6"
23 #endif
24
25 #ifndef N_PRIMARY_AXIS
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"
32 #endif
33
34 // Keep MAX_ROBOT_ACTUATORS as small as practical it impacts block size and therefore free memory.
35 const size_t k_max_actuators = MAX_ROBOT_ACTUATORS;
36 typedef struct std::array<float, k_max_actuators> ActuatorCoordinates;