Changeset View
Changeset View
Standalone View
Standalone View
src/gcodecommands.cpp
- This file was deleted.
1 | /* AtCore | | |||
---|---|---|---|---|---|
2 | Copyright (C) <2016> | | |||
3 | | ||||
4 | Authors: | | |||
5 | Lays Rodrigues <laysrodrigues@gmail.com> | | |||
6 | Tomaz Canabrava <tcanabrava@kde.org> | | |||
7 | Patrick José Pereira <patrickelectric@gmail.com> | | |||
8 | Chris Rizzitello <rizzitello@kde.org> | | |||
9 | | ||||
10 | This library is free software; you can redistribute it and/or | | |||
11 | modify it under the terms of the GNU Lesser General Public | | |||
12 | License as published by the Free Software Foundation; either | | |||
13 | version 2.1 of the License, or (at your option) version 3, or any | | |||
14 | later version accepted by the membership of KDE e.V. (or its | | |||
15 | successor approved by the membership of KDE e.V.), which shall | | |||
16 | act as a proxy defined in Section 6 of version 3 of the license. | | |||
17 | | ||||
18 | This library is distributed in the hope that it will be useful, | | |||
19 | but WITHOUT ANY WARRANTY; without even the implied warranty of | | |||
20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | |||
21 | Lesser General Public License for more details. | | |||
22 | | ||||
23 | You should have received a copy of the GNU Lesser General Public | | |||
24 | License along with this library. If not, see <http://www.gnu.org/licenses/>. | | |||
25 | */ | | |||
26 | #include <QObject> | | |||
27 | #include <QMetaEnum> | | |||
28 | | ||||
29 | #include "gcodecommands.h" | | |||
30 | | ||||
31 | QString GCode::toString(GCommands gcode) | | |||
32 | { | | |||
33 | switch (gcode) { | | |||
34 | case G0://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
35 | return QObject::tr("G0: Rapid linear move"); | | |||
36 | case G1://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
37 | return QObject::tr("G1: Linear move"); | | |||
38 | case G2://Sprinter - Marlin - Repetier - Smoothie | | |||
39 | return QObject::tr("G2: Controlled Arc Move clockwise"); | | |||
40 | case G3://Sprinter - Marlin - Repetier - Smoothie | | |||
41 | return QObject::tr("G3: Controlled Arc Move counterclockwise"); | | |||
42 | case G4://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
43 | return QObject::tr("G4: Dwell"); | | |||
44 | case G10://Marlin - Repetier > 0.92 - Smoothie | | |||
45 | return QObject::tr("G10: Retract"); | | |||
46 | case G11://Marlin - Repetier > 0.92 - Smoothie | | |||
47 | return QObject::tr("G11: Unretract"); | | |||
48 | case G20://Teacup - Sprinter - Repetier - Smoothie - RepRap Firmware | | |||
49 | return QObject::tr("G20: Set units to inches"); | | |||
50 | case G21://Teacup - Sprinter - Repetier - Smoothie - RepRap Firmware | | |||
51 | return QObject::tr("G21: Set units to millimeters"); | | |||
52 | case G28://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
53 | return QObject::tr("G28: Move to Origin Home"); | | |||
54 | case G29://Marlin - Repetier 0.91.7 | | |||
55 | return QObject::tr("G29: Detailed Z-Probe"); | | |||
56 | case G30:// Marlin - Repetier - Smoothie - RepRap Firmware | | |||
57 | return QObject::tr("G30: Single Z-Probe"); | | |||
58 | case G31://Repetier 0.91.7 - Smoothie - RepRap Firmware - Marlin | | |||
59 | return QObject::tr("G31: Set or report current probe status / Dock Z Probe sled for Marlin"); | | |||
60 | case G32://Repetier 0.92.8 - Smoothie - RepRap Firmware - Marlin | | |||
61 | return QObject::tr("G32: Probe Z and calculate Z plane(Bed Leveling)/ UnDoc Z Probe sled for Marlin"); | | |||
62 | case G33://Repetier 0.92.8 | | |||
63 | return QObject::tr("G33: Measure/List/Adjust Distortion Matrix"); | | |||
64 | case G90://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
65 | return QObject::tr("G90: Set to absolute positioning"); | | |||
66 | case G91://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
67 | return QObject::tr("G91: Set to relative positioning"); | | |||
68 | case G92://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
69 | return QObject::tr("G92: Set position"); | | |||
70 | case G100://Repetier 0.92 | | |||
71 | return QObject::tr("G100: Calibrate floor or rod radius"); | | |||
72 | case G130://MakerBot | | |||
73 | return QObject::tr("G130: Set digital potentiometer value"); | | |||
74 | case G131://Repetier 0.91 | | |||
75 | return QObject::tr("G131: Recase Move offset"); | | |||
76 | case G132://Repetier 0.91 | | |||
77 | return QObject::tr("G132: Calibrate endstops offsets"); | | |||
78 | case G133://Repetier 0.91 | | |||
79 | return QObject::tr("G133: Measure steps to top"); | | |||
80 | case G161://Teacup - MakerBot | | |||
81 | return QObject::tr("G161: Home axis to minimum"); | | |||
82 | case G162://Teacup - MakerBot | | |||
83 | return QObject::tr("G162: Home axis to maximum"); | | |||
84 | default: | | |||
85 | return QObject::tr("GCommand not supported!"); | | |||
86 | } | | |||
87 | } | | |||
88 | | ||||
89 | QString GCode::toCommand(GCommands gcode, const QString &value1) | | |||
90 | { | | |||
91 | switch (gcode) { | | |||
92 | case G0: { | | |||
93 | if (value1.isEmpty()) { | | |||
94 | return QStringLiteral("G0"); | | |||
95 | } | | |||
96 | return QStringLiteral("G0 %1").arg(value1.toUpper()); | | |||
97 | } | | |||
98 | case G1: { | | |||
99 | if (value1.isEmpty()) { | | |||
100 | return QStringLiteral("G1"); | | |||
101 | } | | |||
102 | return QStringLiteral("G1 %1").arg(value1.toUpper()); | | |||
103 | } | | |||
104 | case G28: { | | |||
105 | if (value1.isEmpty()) { | | |||
106 | return QStringLiteral("G28"); | | |||
107 | } | | |||
108 | return QStringLiteral("G28 %1").arg(value1.toUpper()); | | |||
109 | } | | |||
110 | case G32: | | |||
111 | return QStringLiteral("G32 S1"); | | |||
112 | case G90: | | |||
113 | return QStringLiteral("G90"); | | |||
114 | case G91: | | |||
115 | return QStringLiteral("G91"); | | |||
116 | default: | | |||
117 | return QObject::tr("Not implemented or not supported!"); | | |||
118 | } | | |||
119 | } | | |||
120 | | ||||
121 | QString GCode::toString(MCommands gcode) | | |||
122 | { | | |||
123 | switch (gcode) { | | |||
124 | case M0://Marlin - Teacup - RepRap Firmware | | |||
125 | return QObject::tr("M0: Stop or unconditional stop"); | | |||
126 | case M1://Marlin - RepRap Firmware | | |||
127 | return QObject::tr("M1: Sleep or unconditional stop"); | | |||
128 | case M2://Teacup - Maker Bot | | |||
129 | return QObject::tr("M2: Program End"); | | |||
130 | case M6://Teacup | | |||
131 | return QObject::tr("M6: Tool Change"); | | |||
132 | case M17://Teacup - Marlin - Smoothie | | |||
133 | return QObject::tr("M17: Enable/power all steppers motors"); | | |||
134 | case M18://Teacup - Marlin(M84) - Smoothie -RepRap Firmware | | |||
135 | return QObject::tr("M18: Disable all steppers motors"); | | |||
136 | case M20://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
137 | return QObject::tr("M20: List SDCard"); | | |||
138 | case M21://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
139 | return QObject::tr("M21: Initialize SDCard"); | | |||
140 | case M22://Teacup - Sprinter - Marlin - Repetier - RepRap Firmware | | |||
141 | return QObject::tr("M22: Release SDCard"); | | |||
142 | case M23:////Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
143 | return QObject::tr("M23: Select SD file"); | | |||
144 | case M24://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
145 | return QObject::tr("M24: Start/resume SD print"); | | |||
146 | case M25://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
147 | return QObject::tr("M25: Pause SD print"); | | |||
148 | case M26://Sprinter - Marlin - Repetier - Smoothie(abort) - RepRap Firmware | | |||
149 | return QObject::tr("M26: Set SD position"); | | |||
150 | case M27://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
151 | return QObject::tr("M27: Report SD print status"); | | |||
152 | case M28://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
153 | return QObject::tr("M28: Begin write to SD card"); | | |||
154 | case M29:// Sprinter - Marlin - Repetier - RepRap Firmware | | |||
155 | return QObject::tr("M29: Stop writing to SD card"); | | |||
156 | case M30://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
157 | return QObject::tr("M30: Delete a file on the SD card"); | | |||
158 | case M31://Marlin | | |||
159 | return QObject::tr("M31: Output time since last M109 or SD card start to serial"); | | |||
160 | case M32://Marlin - Smoothie - RepRap Firmware | | |||
161 | return QObject::tr("M32: Select file and start SD print"); | | |||
162 | case M33://Marlin | | |||
163 | return QObject::tr("M33: Get the long name for an SD card file or folder"); | | |||
164 | case M34://Marlin | | |||
165 | return QObject::tr("M34: Set SD file sorting options"); | | |||
166 | case M36://RepRap Firmware | | |||
167 | return QObject::tr("M36: Return file information"); | | |||
168 | case M42://Sprinter - Marlin - Repetier - RepRap Firmware | | |||
169 | return QObject::tr("M42: Switch I/O pin"); | | |||
170 | case M48://Marlin | | |||
171 | return QObject::tr("M48: Measure Z-Probe repeatability"); | | |||
172 | case M70://MakerBot | | |||
173 | return QObject::tr("M70: Display message"); | | |||
174 | case M72://MakerBot | | |||
175 | return QObject::tr("M72: Play a tone or song"); | | |||
176 | case M73://MakerBot | | |||
177 | return QObject::tr("M73: Set build percentage"); | | |||
178 | case M80://Teacup(automatic) - Sprinter - Marlin - Repetier - RepRap Firmware | | |||
179 | return QObject::tr("M80: ATX Power On"); | | |||
180 | case M81://Teacup(automatic) - Sprinter - Marlin - Repetier - RepRap Firmware | | |||
181 | return QObject::tr("M81: ATX Power Off"); | | |||
182 | case M82://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
183 | return QObject::tr("M82: Set extruder to absolute mode"); | | |||
184 | case M83://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
185 | return QObject::tr("M83: Set extruder to relative mode"); | | |||
186 | case M84://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
187 | return QObject::tr("M84: Stop idle hold"); | | |||
188 | case M85://Sprinter - Marlin - Repetier | | |||
189 | return QObject::tr("M85: Set Inactivity shutdown timer"); | | |||
190 | case M92:// Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
191 | return QObject::tr("M92: Set axis steps per unit"); | | |||
192 | case M93:// Sprinter | | |||
193 | return QObject::tr("M93: Send axis steps per unit"); | | |||
194 | case M98: //RepRap Firmware | | |||
195 | return QObject::tr("M98: Call Macro/Subprogram"); | | |||
196 | case M99://RepRap Firmware | | |||
197 | return QObject::tr("M99: Return from Macro/Subprogram"); | | |||
198 | case M101://Teacup | | |||
199 | return QObject::tr("M101: Turn extruder 1 on Forward, Undo Retraction"); | | |||
200 | case M103://Teacup | | |||
201 | return QObject::tr("M103: Turn all extruders off - Extruder Retraction"); | | |||
202 | case M104://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
203 | return QObject::tr("M104: Set Extruder Temperature"); | | |||
204 | case M105://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
205 | return QObject::tr("M105: Get Extruder Temperature"); | | |||
206 | case M106://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
207 | return QObject::tr("M106: Fan On"); | | |||
208 | case M107:// Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
209 | return QObject::tr("M107: Fan Off"); | | |||
210 | case M108://Marlin | | |||
211 | return QObject::tr("M108: Cancel Heating"); | | |||
212 | case M109:// Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
213 | return QObject::tr("M109: Set Extruder Temperature and Wait"); | | |||
214 | case M110:// Marlin - Repetier - Smoothie - RepRap Firmware | | |||
215 | return QObject::tr("M110: Set Current Line Number"); | | |||
216 | case M111://Teacup - Marlin - Repetier - RepRap Firmware | | |||
217 | return QObject::tr("M111: Set Debug Level"); | | |||
218 | case M112://Teacup - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
219 | return QObject::tr("M112: Emergency Stop"); | | |||
220 | case M114://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
221 | return QObject::tr("M114: Get Current Position"); | | |||
222 | case M115://Teacup - Sprinter - Marlin - Repetier - RepRap Firmware | | |||
223 | return QObject::tr("M115: Get Firmware Version and Capabilities"); | | |||
224 | case M116://Teacup - Repetier - RepRap Firmware - MakerBot | | |||
225 | return QObject::tr("M116: Wait"); | | |||
226 | case M117:// Marlin - Repetier - Smoothie - RepRap Firmware | | |||
227 | return QObject::tr("M117: Display Message"); | | |||
228 | case M119://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
229 | return QObject::tr("M119: Get Endstop Status"); | | |||
230 | case M120://Marlin - Smoothie - RepRap Firmware | | |||
231 | return QObject::tr("M120: Push for Smoothie and RepRap Firmware / Enable Endstop detection for Marlin"); | | |||
232 | case M121://Marlin - Smoothie - RepRap Firmware | | |||
233 | return QObject::tr("M121: Pop for Smoothie and RepRap Firmware / Disable Endstop detection for Marlin"); | | |||
234 | case M122://RepRap Firmware | | |||
235 | return QObject::tr("M122: Diagnose"); | | |||
236 | case M126://Marlin - MakerBot | | |||
237 | return QObject::tr("M126: Open valve"); | | |||
238 | case M127://Marlin - MakerBot | | |||
239 | return QObject::tr("M127: Close valve"); | | |||
240 | case M130://Teacup | | |||
241 | return QObject::tr("M130: Set PID P value"); | | |||
242 | case M131://Teacup | | |||
243 | return QObject::tr("M131: Set PID I value"); | | |||
244 | case M132://Teacup - MakerBot | | |||
245 | return QObject::tr("M132: Set PID D value"); | | |||
246 | case M133://Teacup - MakerBot | | |||
247 | return QObject::tr("M133: Set PID I limit value"); | | |||
248 | case M134://Teacup - MakerBot | | |||
249 | return QObject::tr("M134: Write PID values to EEPROM"); | | |||
250 | case M135://RepRap Firmware - MakerBot | | |||
251 | return QObject::tr("M135: Set PID sample interval"); | | |||
252 | case M140://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware - MakerBot | | |||
253 | return QObject::tr("M140: Set Bed Temperature - Fast"); | | |||
254 | case M141://RepRap Firmware | | |||
255 | return QObject::tr("M141: Set Chamber Temperature - Fast"); | | |||
256 | case M143://RepRap Firmware | | |||
257 | return QObject::tr("M143: Maximum hot-end temperature"); | | |||
258 | case M144://RepRap Firmware | | |||
259 | return QObject::tr("M144: Stand by your bed"); | | |||
260 | case M150://Marlin | | |||
261 | return QObject::tr("M150: Set display color"); | | |||
262 | case M163://Repetier > 0.92 | | |||
263 | return QObject::tr("M163: Set weight of mixed material"); | | |||
264 | case M164://Repetier > 0.92 | | |||
265 | return QObject::tr("M164: Store weights"); | | |||
266 | case M190://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
267 | return QObject::tr("M190: Wait for bed temperature to reach target temp"); | | |||
268 | case M200://Marlin - Repetier - Smoothie | | |||
269 | return QObject::tr("M200: Set filament diameter"); | | |||
270 | case M201://Sprinter - Marlin - Repetier - RepRap Firmware | | |||
271 | return QObject::tr("M201: Set max printing acceleration"); | | |||
272 | case M202://Marlin - Repetier | | |||
273 | return QObject::tr("M202: Set max travel acceleration"); | | |||
274 | case M203://Marlin - Repetier - Smoothie - RepRap Firmware | | |||
275 | return QObject::tr("M203: Set maximum feedrate"); | | |||
276 | case M204://Sprinter - Marlin - Repetier - Smoothie | | |||
277 | return QObject::tr("M204: Set default acceleration"); | | |||
278 | case M205://Sprinter - Marlin - Repetier - Smoothie | | |||
279 | return QObject::tr("M205: Advanced settings"); | | |||
280 | case M206://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
281 | return QObject::tr("M206: Offset axes for Sprinter, Marlin, Smoothie, RepRap Firmware / Set eeprom value for Repetier"); | | |||
282 | case M207://Marlin - Smoothie | | |||
283 | return QObject::tr("M207: Set retract length"); | | |||
284 | case M208://Marlin - Smoothie | | |||
285 | return QObject::tr("M208: Set unretract length"); | | |||
286 | case M209://Marlin - Repetier | | |||
287 | return QObject::tr("M209: Enable automatic retract"); | | |||
288 | case M212://Marlin | | |||
289 | return QObject::tr("M212: Set Bed Level Sensor Offset"); | | |||
290 | case M218://Marlin | | |||
291 | return QObject::tr("M218: Set Hotend Offset"); | | |||
292 | case M220://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
293 | return QObject::tr("M220: Set speed factor override percentage"); | | |||
294 | case M221://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
295 | return QObject::tr("M221: Set extrude factor override percentage"); | | |||
296 | case M226://Marlin - Repetier | | |||
297 | return QObject::tr("M226: Wait for pin state"); | | |||
298 | case M231://Repetier | | |||
299 | return QObject::tr("M231: Set OPS parameter"); | | |||
300 | case M232://Repetier | | |||
301 | return QObject::tr("M232: Read and reset max. advance values"); | | |||
302 | case M240: //Marlin | | |||
303 | return QObject::tr("M240: Trigger camera"); | | |||
304 | case M250://Marlin | | |||
305 | return QObject::tr("M250: Set LCD contrast"); | | |||
306 | case M251://Repetier | | |||
307 | return QObject::tr("M251: Measure Z steps from homing stop (Delta printers)"); | | |||
308 | case M280://Marlin | | |||
309 | return QObject::tr("M280: Set servo position"); | | |||
310 | case M300://Marlin - Repetier - RepRap Firmware - MakerBot | | |||
311 | return QObject::tr("M300: Play beep sound"); | | |||
312 | case M301://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
313 | return QObject::tr("M301: Set PID parameters"); | | |||
314 | case M302://Marlin - Repetier > 0.92 - RepRap Firmware | | |||
315 | return QObject::tr("M302: Allow cold extrudes "); | | |||
316 | case M303://Sprinter - Marlin - Repetier - Smoothie | | |||
317 | return QObject::tr("M303: Run PID tuning"); | | |||
318 | case M304://Marlin - RepRap Firmware | | |||
319 | return QObject::tr("M304: Set PID parameters - Bed"); | | |||
320 | case M305:// Smoothie - RepRap Firmware | | |||
321 | return QObject::tr("M305: Set thermistor and ADC parameters"); | | |||
322 | case M306:// Smoothie | | |||
323 | return QObject::tr("M306: set home offset calculated from toolhead position"); | | |||
324 | case M320://Repeier | | |||
325 | return QObject::tr("M320: Activate autolevel (Repetier)"); | | |||
326 | case M321://Repetier | | |||
327 | return QObject::tr("M321: Deactivate autolevel (Repetier)"); | | |||
328 | case M322://Repetier | | |||
329 | return QObject::tr("M322: Reset autolevel matrix (Repetier)"); | | |||
330 | case M323://Repetier | | |||
331 | return QObject::tr("M323: Distortion correction on/off (Repetier)"); | | |||
332 | case M340://Repetier | | |||
333 | return QObject::tr("M340: Control the servos"); | | |||
334 | case M350://Marlin - Repetier - RepRap Firmware | | |||
335 | return QObject::tr("M350: Set microstepping mode"); | | |||
336 | case M351://Marlin | | |||
337 | return QObject::tr("M351: Toggle MS1 MS2 pins directly"); | | |||
338 | case M355://Repetier > 0.92.2 | | |||
339 | return QObject::tr("M355: Turn case lights on/off"); | | |||
340 | case M360://Repetier > 9.92.2 | | |||
341 | return QObject::tr("M360: Report firmware configuration"); | | |||
342 | case M361://Smoothie | | |||
343 | return QObject::tr("M361: Move to Theta 90 degree position"); | | |||
344 | case M362://Smoothie | | |||
345 | return QObject::tr("M362: Move to Psi 0 degree position"); | | |||
346 | case M363://Smoothie | | |||
347 | return QObject::tr("M363: Move to Psi 90 degree position"); | | |||
348 | case M364://Smoothie | | |||
349 | return QObject::tr("M364: Move to Psi + Theta 90 degree position"); | | |||
350 | case M365://Smoothie | | |||
351 | return QObject::tr("M365: SCARA scaling factor"); | | |||
352 | case M366://Smoothie | | |||
353 | return QObject::tr("M366: SCARA convert trim"); | | |||
354 | case M370://Smoothie | | |||
355 | return QObject::tr("M370: Morgan manual bed level - clear map"); | | |||
356 | case M371://Smoothie | | |||
357 | return QObject::tr("M371: Move to next calibration position"); | | |||
358 | case M372://Smoothie | | |||
359 | return QObject::tr("M372: Record calibration value, and move to next position"); | | |||
360 | case M373://Smoothie | | |||
361 | return QObject::tr("M373: End bed level calibration mode"); | | |||
362 | case M374://Smoothie | | |||
363 | return QObject::tr("M374: Save calibration grid"); | | |||
364 | case M375://Smoothie | | |||
365 | return QObject::tr("M375: Display matrix / Load Matrix"); | | |||
366 | case M380://Marlin | | |||
367 | return QObject::tr("M380: Activate solenoid"); | | |||
368 | case M381://Marlin | | |||
369 | return QObject::tr("M381: Disable all solenoids"); | | |||
370 | case M400://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | | |||
371 | return QObject::tr("M400: Wait for current moves to finish"); | | |||
372 | case M401://Marlin | | |||
373 | return QObject::tr("M401: Lower z-probe"); | | |||
374 | case M402://Marlin | | |||
375 | return QObject::tr("M402: Raise z-probe"); | | |||
376 | case M404://Marlin - RepRap Firmware | | |||
377 | return QObject::tr("M404: Filament width and nozzle diameter"); | | |||
378 | case M405://Marlin | | |||
379 | return QObject::tr("M405: Filament Sensor on"); | | |||
380 | case M406://Marlin | | |||
381 | return QObject::tr("M406: Filament Sensor off"); | | |||
382 | case M407://Marlin - RepRap Firmware | | |||
383 | return QObject::tr("M407: Display filament diameter"); | | |||
384 | case M408://RepRap Firmware | | |||
385 | return QObject::tr("M408: Report JSON-style response"); | | |||
386 | case M420: | | |||
387 | return QObject::tr("M420: Enable/Disable Mesh Leveling (Marlin)"); | | |||
388 | case M450://Repetier | | |||
389 | return QObject::tr("M450: Report Printer Mode"); | | |||
390 | case M451://Repetier | | |||
391 | return QObject::tr("M451: Select FFF Printer Mode"); | | |||
392 | case M452://Repetier | | |||
393 | return QObject::tr("M452: Select Laser Printer Mode"); | | |||
394 | case M453://Repetier | | |||
395 | return QObject::tr("M453: Select CNC Printer Mode"); | | |||
396 | case M460://Repetier | | |||
397 | return QObject::tr("M460: Define temperature range for thermistor controlled fan"); | | |||
398 | case M500://Sprinter - Marlin - Repetier - RepRap Firmware | | |||
399 | return QObject::tr("M500: Store parameters in EEPROM"); | | |||
400 | case M501://Sprinter - Marlin - Repetier - RepRap Firmware | | |||
401 | return QObject::tr("M501: Read parameters from EEPROM"); | | |||
402 | case M502://Sprinter - Marlin - Repetier - RepRap Firmware | | |||
403 | return QObject::tr("M502: Revert to the default 'factory settings'."); | | |||
404 | case M503://Sprinter - Marlin - RepRap Firmware | | |||
405 | return QObject::tr("M503: Print settings "); | | |||
406 | case M540://Marlin | | |||
407 | return QObject::tr("M540: Enable/Disable 'Stop SD Print on Endstop Hit'"); | | |||
408 | case M550://RepRap Firmware | | |||
409 | return QObject::tr("M550: Set Name"); | | |||
410 | case M551://RepRap Firmware | | |||
411 | return QObject::tr("M551: Set Password"); | | |||
412 | case M552://RepRap Firmware | | |||
413 | return QObject::tr("M552: Set IP address"); | | |||
414 | case M553://RepRap Firmware | | |||
415 | return QObject::tr("M553: Set Netmask"); | | |||
416 | case M554://RepRap Firmware | | |||
417 | return QObject::tr("M554: Set Gateway"); | | |||
418 | case M555://RepRap Firmware | | |||
419 | return QObject::tr("M555: Set compatibility"); | | |||
420 | case M556://RepRap Firmware | | |||
421 | return QObject::tr("M556: Axis compensation"); | | |||
422 | case M557://Smoothie - RepRap Firmware | | |||
423 | return QObject::tr("M557: Set Z probe point"); | | |||
424 | case M558://RepRap Firmware | | |||
425 | return QObject::tr("M558: Set Z probe type"); | | |||
426 | case M559://RepRap Firmware | | |||
427 | return QObject::tr("M559: Upload configuration file"); | | |||
428 | case M560://RepRap Firmware | | |||
429 | return QObject::tr("M560: Upload web page file"); | | |||
430 | case M561://Smoothie - RepRap Firmware | | |||
431 | return QObject::tr("M561: Set Identity Transform"); | | |||
432 | case M562://RepRap Firmware | | |||
433 | return QObject::tr("M562: Reset temperature fault"); | | |||
434 | case M563://RepRap Firmware | | |||
435 | return QObject::tr("M563: Define or remove a tool"); | | |||
436 | case M564://RepRap Firmware | | |||
437 | return QObject::tr("M564: Limit axes"); | | |||
438 | case M565://Smoothie | | |||
439 | return QObject::tr("M565: Set Z probe offset"); | | |||
440 | case M566://RepRap Firmware | | |||
441 | return QObject::tr("M566: Set allowable instantaneous speed change"); | | |||
442 | case M567://RepRap Firmware | | |||
443 | return QObject::tr("M567: Set tool mix ratio"); | | |||
444 | case M568://RepRap Firmware | | |||
445 | return QObject::tr("M568: Turn off/on tool mix ratio"); | | |||
446 | case M569://RepRap Firmware | | |||
447 | return QObject::tr("M569: Set axis direction and enable values"); | | |||
448 | case M570://RepRap Firmware | | |||
449 | return QObject::tr("M570: Set heater timeout"); | | |||
450 | case M571://RepRap Firmware | | |||
451 | return QObject::tr("M571: Set output on extrude"); | | |||
452 | case M573://RepRap Firmware | | |||
453 | return QObject::tr("M573: Report heater PWM"); | | |||
454 | case M574://RepRap Firmware | | |||
455 | return QObject::tr("M574: Set endstop configuration"); | | |||
456 | case M575://RepRap Firmware | | |||
457 | return QObject::tr("M575: Set serial comms parameters"); | | |||
458 | case M577://RepRap Firmware | | |||
459 | return QObject::tr("M577: Wait until endstop is triggered"); | | |||
460 | case M578://RepRap Firmware | | |||
461 | return QObject::tr("M578: Fire inkjet bits"); | | |||
462 | case M579://RepRap Firmware | | |||
463 | return QObject::tr("M579: Scale Cartesian axes"); | | |||
464 | case M580://RepRap Firmware | | |||
465 | return QObject::tr("M580: Select Roland"); | | |||
466 | case M600://Marlin | | |||
467 | return QObject::tr("M600: Filament change pause"); | | |||
468 | case M605://Marlin | | |||
469 | return QObject::tr("M605: Set dual x-carriage movement mode"); | | |||
470 | case M665://Marlin - Smoothie - RepRap Firmware | | |||
471 | return QObject::tr("M665: Set delta configuration"); | | |||
472 | case M666://Marlin - Repetier - Smoothie - RepRap Firmware | | |||
473 | return QObject::tr("M666: Set delta endstop adjustment"); | | |||
474 | case M667://RepRap Firmware | | |||
475 | return QObject::tr("M667: Select CoreXY mode"); | | |||
476 | case M851://Marlin | | |||
477 | return QObject::tr("M851: Set Z-Probe Offset"); | | |||
478 | case M906://RepRap Firmware | | |||
479 | return QObject::tr("M906: Set motor currents"); | | |||
480 | case M907://Marlin - Repetier - Smoothie | | |||
481 | return QObject::tr("M907: Set digital trimpot motor"); | | |||
482 | case M908://Marlin - Repetier > 0.92 | | |||
483 | return QObject::tr("M908: Control digital trimpot directly"); | | |||
484 | case M911://RepRap Firmware | | |||
485 | return QObject::tr("M911: Set power monitor threshold voltages"); | | |||
486 | case M912://RepRap Firmware | | |||
487 | return QObject::tr("M912: Set electronics temperature monitor adjustment"); | | |||
488 | case M913://RepRap Firmware | | |||
489 | return QObject::tr("M913: Set motor percentage of normal current"); | | |||
490 | case M928://Marlin | | |||
491 | return QObject::tr("M928: Start SD logging"); | | |||
492 | case M997://RepRap Firmware | | |||
493 | return QObject::tr("M997: Perform in-application firmware update"); | | |||
494 | case M998://RepRap Firmware | | |||
495 | return QObject::tr("M998: Request resend of line"); | | |||
496 | case M999://Marlin - Smoothie - RepRap Firmware | | |||
497 | return QObject::tr("M999: Restart after being stopped by error"); | | |||
498 | default: | | |||
499 | return QObject::tr("Not implemented or not supported!"); | | |||
500 | | ||||
501 | } | | |||
502 | } | | |||
503 | | ||||
504 | QString GCode::toCommand(MCommands gcode, const QString &value1, const QString &value2) | | |||
505 | { | | |||
506 | switch (gcode) { | | |||
507 | case M84: { | | |||
508 | if (!value1.isEmpty()) { | | |||
509 | return QStringLiteral("M84 S%1").arg(value1); | | |||
510 | } | | |||
511 | return QStringLiteral("M84"); | | |||
512 | } | | |||
513 | case M104: { | | |||
514 | if (!value2.isEmpty() && !value1.isEmpty()) { | | |||
515 | return QStringLiteral("M104 P%1 S%2").arg(value1).arg(value2); | | |||
516 | } | | |||
517 | if (!value1.isEmpty()) { | | |||
518 | return QStringLiteral("M104 S%1").arg(value1); | | |||
519 | } | | |||
520 | return QObject::tr("ERROR! M104: It's obligatory to have an argument"); | | |||
521 | } | | |||
522 | case M105: | | |||
523 | return QStringLiteral("M105"); | | |||
524 | case M106: { | | |||
525 | if (!value2.isEmpty() && !value1.isEmpty()) { | | |||
526 | return QStringLiteral("M106 P%1 S%2").arg(value1).arg(value2); | | |||
527 | } | | |||
528 | if (!value1.isEmpty()) { | | |||
529 | return QStringLiteral("M106 S%1").arg(value1); | | |||
530 | } | | |||
531 | return QStringLiteral("M106"); | | |||
532 | } | | |||
533 | case M107: | | |||
534 | return QStringLiteral("M107"); | | |||
535 | case M109: { | | |||
536 | if (!value1.isEmpty()) { | | |||
537 | return QStringLiteral("M109 S%1").arg(value1); | | |||
538 | } | | |||
539 | return QObject::tr("ERROR! M109: It's obligatory to have an argument"); | | |||
540 | } | | |||
541 | case M112: | | |||
542 | return QStringLiteral("M112"); | | |||
543 | case M114: | | |||
544 | return QStringLiteral("M114"); | | |||
545 | case M115: | | |||
546 | return QStringLiteral("M115"); | | |||
547 | case M116: | | |||
548 | return QStringLiteral("M116"); | | |||
549 | case M117: { | | |||
550 | if (!value1.isEmpty()) { | | |||
551 | return QStringLiteral("M117 %1").arg(value1); | | |||
552 | } | | |||
553 | return QObject::tr("ERROR! M117: It's obligatory to have an argument"); | | |||
554 | } | | |||
555 | case M119: | | |||
556 | return QStringLiteral("M119"); | | |||
557 | case M140: { | | |||
558 | if (!value1.isEmpty()) { | | |||
559 | return QStringLiteral("M140 S%1").arg(value1); | | |||
560 | } | | |||
561 | return QObject::tr("ERROR! M140: It's obligatory to have an argument"); | | |||
562 | } | | |||
563 | case M190: { | | |||
564 | if (!value1.isEmpty()) { | | |||
565 | return QStringLiteral("M190 S%1").arg(value1); | | |||
566 | } | | |||
567 | return QObject::tr("ERROR! M190: It's obligatory to have an argument"); | | |||
568 | } | | |||
569 | case M220: { | | |||
570 | if (!value1.isEmpty()) { | | |||
571 | return QStringLiteral("M220 S%1").arg(value1); | | |||
572 | } | | |||
573 | return QObject::tr("ERROR! M220: It's obligatory to have an argument"); | | |||
574 | } | | |||
575 | case M221: { | | |||
576 | if (!value1.isEmpty()) { | | |||
577 | return QStringLiteral("M221 S%1").arg(value1); | | |||
578 | } | | |||
579 | return QObject::tr("ERROR! M221: It's obligatory to have an argument"); | | |||
580 | } | | |||
581 | default: | | |||
582 | return QObject::tr("Not supported or implemented!"); | | |||
583 | } | | |||
584 | } | |