Commit | Line | Data |
---|---|---|
6c972e51 JL |
1 | #pragma once |
2 | ||
3 | #include "LevelingStrategy.h" | |
4 | ||
5 | #include <string.h> | |
6 | #include <tuple> | |
7 | ||
c77455c3 | 8 | #define cart_grid_leveling_strategy_checksum CHECKSUM("rectangular-grid") |
6c972e51 JL |
9 | |
10 | class StreamOutput; | |
11 | class Gcode; | |
12 | ||
13 | class CartGridStrategy : public LevelingStrategy | |
14 | { | |
15 | public: | |
16 | CartGridStrategy(ZProbe *zprobe); | |
17 | ~CartGridStrategy(); | |
18 | bool handleGcode(Gcode* gcode); | |
19 | bool handleConfig(); | |
20 | ||
21 | private: | |
22 | ||
6c972e51 JL |
23 | bool doProbe(Gcode *gc); |
24 | float findBed(); | |
25 | void setAdjustFunction(bool on); | |
26 | void print_bed_level(StreamOutput *stream); | |
27 | void doCompensation(float *target, bool inverse); | |
28 | void reset_bed_level(); | |
29 | void save_grid(StreamOutput *stream); | |
30 | bool load_grid(StreamOutput *stream); | |
825e3420 | 31 | bool probe_grid(int n, int m, float x_start, float y_start, float x_size, float y_size, StreamOutput *stream); |
6c972e51 JL |
32 | |
33 | float initial_height; | |
34 | float tolerance; | |
35 | ||
36 | float *grid; | |
37 | std::tuple<float, float, float> probe_offsets; | |
825e3420 | 38 | float x_start,y_start; |
6c972e51 JL |
39 | float x_size,y_size; |
40 | ||
44b5bc10 VB |
41 | struct { |
42 | uint8_t configured_grid_x_size:8; | |
43 | uint8_t configured_grid_y_size:8; | |
44 | uint8_t current_grid_x_size:8; | |
45 | uint8_t current_grid_y_size:8; | |
46 | }; | |
47 | ||
6c972e51 JL |
48 | struct { |
49 | bool save:1; | |
50 | bool do_home:1; | |
825e3420 | 51 | bool only_by_two_corners:1; |
2f05c122 | 52 | bool human_readable:1; |
6c972e51 JL |
53 | }; |
54 | }; |