remove the unhandled gcode hack, and all the cruft it required
[clinton/Smoothieware.git] / src / modules / communication / utils / Gcode.h
CommitLineData
df27a6a3 1/*
cd011f58
AW
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.
df27a6a3 5 You should have received a copy of the GNU General Public License along with Smoothie. If not, see <http://www.gnu.org/licenses/>.
cd011f58
AW
6*/
7
8
4cff3ded
AW
9#ifndef GCODE_H
10#define GCODE_H
11#include <string>
7d678d16
JM
12#include <map>
13
4cff3ded 14using std::string;
4cff3ded 15
fc7b9a7b
JM
16class StreamOutput;
17
18// Object to represent a Gcode command
4cff3ded
AW
19class Gcode {
20 public:
aae5a789 21 Gcode(const string&, StreamOutput*, bool strip=true);
fc7b9a7b 22 Gcode(const Gcode& to_copy);
e55e3062 23 Gcode& operator= (const Gcode& to_copy);
8090190d
JM
24 ~Gcode();
25
26 const char* get_command() const { return command; }
27 bool has_letter ( char letter ) const;
b9b1bb25
JM
28 float get_value ( char letter, char **ptr= nullptr ) const;
29 int get_int ( char letter, char **ptr= nullptr ) const;
230079d4 30 uint32_t get_uint ( char letter, char **ptr= nullptr ) const;
8090190d 31 int get_num_args() const;
7d678d16 32 std::map<char,float> get_args() const;
b9b1bb25 33 void strip_parameters();
8090190d
JM
34
35 // FIXME these should be private
e6b5ae25
AW
36 unsigned int m;
37 unsigned int g;
8090190d 38 float millimeters_of_travel;
e6b5ae25 39
8090190d
JM
40 struct {
41 bool add_nl:1;
42 bool has_m:1;
43 bool has_g:1;
7d678d16 44 bool stripped:1;
8090190d 45 };
ac9f9b7a 46
8090190d 47 StreamOutput* stream;
93284f6f 48 string txt_after_ok;
702023f3 49
8090190d 50 private:
aae5a789 51 void prepare_cached_values(bool strip=true);
b9b1bb25 52 char *command;
4cff3ded
AW
53};
54#endif