Changeset View
Changeset View
Standalone View
Standalone View
src/gcodecommands.cpp
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Line(s) | |||||
91 | 91 | | |||
92 | QString GCode::toCommand(GCommands gcode, const QString &value1) | 92 | QString GCode::toCommand(GCommands gcode, const QString &value1) | ||
93 | { | 93 | { | ||
94 | QString code = QStringLiteral("G%1").arg(QString::number(gcode)); | 94 | QString code = QStringLiteral("G%1").arg(QString::number(gcode)); | ||
95 | switch (gcode) { | 95 | switch (gcode) { | ||
96 | case G90: | 96 | case G90: | ||
97 | case G91: | 97 | case G91: | ||
98 | return code; | 98 | return code; | ||
99 | | ||||
99 | case G32: | 100 | case G32: | ||
100 | return code.append(QStringLiteral(" S1")); | 101 | return code.append(QStringLiteral(" S1")); | ||
101 | case G0: | 102 | case G0: | ||
102 | case G1: | 103 | case G1: | ||
103 | case G28: | 104 | case G28: | ||
104 | code = value1.isEmpty() ? code : code.append(QStringLiteral(" %1").arg(value1.toUpper())); | 105 | code = value1.isEmpty() ? code : code.append(QStringLiteral(" %1").arg(value1.toUpper())); | ||
105 | return code; | 106 | return code; | ||
107 | | ||||
106 | default: | 108 | default: | ||
107 | return commandNotSupported; | 109 | return commandNotSupported; | ||
108 | } | 110 | } | ||
109 | } | 111 | } | ||
110 | 112 | | |||
111 | QString GCode::description(MCommands gcode) | 113 | QString GCode::description(MCommands gcode) | ||
112 | { | 114 | { | ||
113 | switch (gcode) { | 115 | switch (gcode) { | ||
Show All 10 Lines | |||||
124 | case M18://Teacup - Marlin(M84) - Smoothie -RepRap Firmware | 126 | case M18://Teacup - Marlin(M84) - Smoothie -RepRap Firmware | ||
125 | return QObject::tr("M18: Disable all steppers motors"); | 127 | return QObject::tr("M18: Disable all steppers motors"); | ||
126 | case M20://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 128 | case M20://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
127 | return QObject::tr("M20: List SDCard"); | 129 | return QObject::tr("M20: List SDCard"); | ||
128 | case M21://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 130 | case M21://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
129 | return QObject::tr("M21: Initialize SDCard"); | 131 | return QObject::tr("M21: Initialize SDCard"); | ||
130 | case M22://Teacup - Sprinter - Marlin - Repetier - RepRap Firmware | 132 | case M22://Teacup - Sprinter - Marlin - Repetier - RepRap Firmware | ||
131 | return QObject::tr("M22: Release SDCard"); | 133 | return QObject::tr("M22: Release SDCard"); | ||
132 | case M23:////Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 134 | case M23://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
133 | return QObject::tr("M23: Select SD file"); | 135 | return QObject::tr("M23: Select SD file"); | ||
134 | case M24://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 136 | case M24://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
135 | return QObject::tr("M24: Start/resume SD print"); | 137 | return QObject::tr("M24: Start/resume SD print"); | ||
136 | case M25://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 138 | case M25://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
137 | return QObject::tr("M25: Pause SD print"); | 139 | return QObject::tr("M25: Pause SD print"); | ||
138 | case M26://Sprinter - Marlin - Repetier - Smoothie(abort) - RepRap Firmware | 140 | case M26://Sprinter - Marlin - Repetier - Smoothie(abort) - RepRap Firmware | ||
139 | return QObject::tr("M26: Set SD position"); | 141 | return QObject::tr("M26: Set SD position"); | ||
140 | case M27://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 142 | case M27://Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
▲ Show 20 Lines • Show All 143 Lines • ▼ Show 20 Line(s) | |||||
284 | case M221://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | 286 | case M221://Teacup - Sprinter - Marlin - Repetier - Smoothie - RepRap Firmware | ||
285 | return QObject::tr("M221: Set extrude factor override percentage"); | 287 | return QObject::tr("M221: Set extrude factor override percentage"); | ||
286 | case M226://Marlin - Repetier | 288 | case M226://Marlin - Repetier | ||
287 | return QObject::tr("M226: Wait for pin state"); | 289 | return QObject::tr("M226: Wait for pin state"); | ||
288 | case M231://Repetier | 290 | case M231://Repetier | ||
289 | return QObject::tr("M231: Set OPS parameter"); | 291 | return QObject::tr("M231: Set OPS parameter"); | ||
290 | case M232://Repetier | 292 | case M232://Repetier | ||
291 | return QObject::tr("M232: Read and reset max. advance values"); | 293 | return QObject::tr("M232: Read and reset max. advance values"); | ||
292 | case M240: //Marlin | 294 | case M240://Marlin | ||
293 | return QObject::tr("M240: Trigger camera"); | 295 | return QObject::tr("M240: Trigger camera"); | ||
294 | case M250://Marlin | 296 | case M250://Marlin | ||
295 | return QObject::tr("M250: Set LCD contrast"); | 297 | return QObject::tr("M250: Set LCD contrast"); | ||
296 | case M251://Repetier | 298 | case M251://Repetier | ||
297 | return QObject::tr("M251: Measure Z steps from homing stop (Delta printers)"); | 299 | return QObject::tr("M251: Measure Z steps from homing stop (Delta printers)"); | ||
298 | case M280://Marlin | 300 | case M280://Marlin | ||
299 | return QObject::tr("M280: Set servo position"); | 301 | return QObject::tr("M280: Set servo position"); | ||
300 | case M300://Marlin - Repetier - RepRap Firmware - MakerBot | 302 | case M300://Marlin - Repetier - RepRap Firmware - MakerBot | ||
▲ Show 20 Lines • Show All 188 Lines • ▼ Show 20 Line(s) | 490 | default: | |||
489 | return commandNotSupported; | 491 | return commandNotSupported; | ||
490 | } | 492 | } | ||
491 | } | 493 | } | ||
492 | 494 | | |||
493 | QString GCode::toCommand(MCommands gcode, const QString &value1, const QString &value2) | 495 | QString GCode::toCommand(MCommands gcode, const QString &value1, const QString &value2) | ||
494 | { | 496 | { | ||
495 | QString code = QStringLiteral("M%1").arg(QString::number(gcode)); | 497 | QString code = QStringLiteral("M%1").arg(QString::number(gcode)); | ||
496 | switch (gcode) { | 498 | switch (gcode) { | ||
499 | case M20: | ||||
500 | case M24: | ||||
501 | case M25: | ||||
502 | case M27: | ||||
497 | case M105: | 503 | case M105: | ||
498 | case M107: | 504 | case M107: | ||
499 | case M112: | 505 | case M112: | ||
500 | case M114: | 506 | case M114: | ||
501 | case M115: | 507 | case M115: | ||
502 | case M116: | 508 | case M116: | ||
503 | case M119: | 509 | case M119: | ||
504 | return code; | 510 | return code; | ||
511 | | ||||
512 | case M21: | ||||
513 | case M22: | ||||
514 | code = value1.isEmpty() ? code : code.append(QStringLiteral(" P%1").arg(value1)); | ||||
515 | return code; | ||||
516 | | ||||
517 | case M23: | ||||
518 | case M28: | ||||
519 | case M29: | ||||
520 | case M30: | ||||
505 | case M117: | 521 | case M117: | ||
506 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : QStringLiteral("M117 %1").arg(value1); | 522 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : code.append(QStringLiteral(" %1").arg(value1)); | ||
507 | return code; | 523 | return code; | ||
524 | | ||||
508 | case M109: | 525 | case M109: | ||
509 | case M140: | 526 | case M140: | ||
510 | case M190: | 527 | case M190: | ||
511 | case M220: | 528 | case M220: | ||
512 | case M221: | 529 | case M221: | ||
513 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : code.append(QStringLiteral(" S%1").arg(value1)); | 530 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : code.append(QStringLiteral(" S%1").arg(value1)); | ||
514 | return code; | 531 | return code; | ||
532 | | ||||
515 | case M84: | 533 | case M84: | ||
516 | code = value1.isEmpty() ? code : code.append(QStringLiteral(" S%1").arg(value1)); | 534 | code = value1.isEmpty() ? code : code.append(QStringLiteral(" S%1").arg(value1)); | ||
517 | return code; | 535 | return code; | ||
536 | | ||||
518 | case M104: | 537 | case M104: | ||
519 | code = value2.isEmpty() ? code.append(QStringLiteral(" S%1").arg(value1)) : code.append(QStringLiteral(" P%1 S%2").arg(value1).arg(value2)); | 538 | code = value2.isEmpty() ? code.append(QStringLiteral(" S%1").arg(value1)) : code.append(QStringLiteral(" P%1 S%2").arg(value1).arg(value2)); | ||
520 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : code ; | 539 | code = value1.isEmpty() ? GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)) : code ; | ||
521 | return code; | 540 | return code; | ||
541 | | ||||
522 | case M106: | 542 | case M106: | ||
523 | code = value2.isEmpty() ? code.append(QStringLiteral(" S%1").arg(value1)) : code.append(QStringLiteral(" P%1 S%2").arg(value1).arg(value2)); | 543 | code = value2.isEmpty() ? code.append(QStringLiteral(" S%1").arg(value1)) : code.append(QStringLiteral(" P%1 S%2").arg(value1).arg(value2)); | ||
524 | code = value1.isEmpty() ? QStringLiteral("M106") : code ; | 544 | code = value1.isEmpty() ? QStringLiteral("M106") : code ; | ||
525 | return code; | 545 | return code; | ||
546 | | ||||
547 | /// For M26 values that end with %. AtCore will send the percentage verison of the command (optional in firmwares) | ||||
548 | /// For all values not ending in % it will start on that byte. This is the standard Sd resume supported by all reprap based firmware. | ||||
549 | case M26: { | ||||
550 | if (!value1.isEmpty()) { | ||||
551 | if (value1.endsWith(QStringLiteral("%"))) { | ||||
552 | QString temp = value1; | ||||
553 | temp.replace(QStringLiteral("%"), QStringLiteral("")); | ||||
554 | return code.append(QStringLiteral(" P%1").arg(temp.toDouble() / 100)); | ||||
555 | } | ||||
556 | return code.append(QStringLiteral(" S%1").arg(value1)); | ||||
557 | } | ||||
558 | return GCode::commandRequiresArgument.arg(QStringLiteral("M"), QString::number(gcode)); | ||||
559 | } | ||||
tcanabrava: I don't like those - too much code repetition. you can use
accepted
QString enumName=… | |||||
rizzitello: Thats a good idea , will do this after this diff. | |||||
please see D10331. Will be done in that style when its merged. rizzitello: please see D10331. Will be done in that style when its merged. | |||||
I agree with @tcanabrava. patrickelectric: I agree with @tcanabrava. | |||||
See D10436. It will resolve that and this will be done to be the same way. rizzitello: See D10436. It will resolve that and this will be done to be the same way. | |||||
560 | | ||||
526 | default: | 561 | default: | ||
527 | return commandNotSupported; | 562 | return commandNotSupported; | ||
528 | } | 563 | } | ||
529 | } | 564 | } |
I don't like those - too much code repetition. you can use
accepted
QString enumName= QMetaEnum::fromType<Class::Enum>().valueToKey(gcode);
return QObject::tr("ERROR! " + enumName + " It's obligatory to have an argument");
then remove the lot of duplication