Save arm specific options with M500 disspaly with M503
[clinton/Smoothieware.git] / src / modules / tools / zprobe / ZProbe.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 #ifndef ZPROBE_H_
9 #define ZPROBE_H_
10
11 #include "Module.h"
12 #include "Pin.h"
13
14 class StepperMotor;
15
16 class ZProbe: public Module
17 {
18
19 public:
20 void on_module_loaded();
21 void on_config_reload(void *argument);
22 void on_gcode_received(void *argument);
23 void on_idle(void *argument);
24 uint32_t acceleration_tick(uint32_t dummy);
25
26
27 private:
28 bool wait_for_probe(int distance[]);
29 bool run_probe(int *steps);
30
31 float feedrate;
32 float steps_per_mm[3];
33 unsigned int mcode;
34 bool enabled;
35 StepperMotor *steppers[3];
36 Pin pin;
37 unsigned int debounce_count;
38 bool running;
39 bool is_delta;
40 };
41
42 #endif /* ZPROBE_H_ */