temperaturecontrol: allow setting background tool without activating
[clinton/Smoothieware.git] / src / modules / robot / ActuatorCoordinates.h
CommitLineData
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
35const size_t k_max_actuators = MAX_ROBOT_ACTUATORS;
36typedef struct std::array<float, k_max_actuators> ActuatorCoordinates;