|
@@ -91,8 +91,8 @@ public:
|
91
|
91
|
static cutter_frequency_t frequency; // Set PWM frequency; range: 2K-50K
|
92
|
92
|
#endif
|
93
|
93
|
|
94
|
|
- static cutter_power_t menuPower; // Power as set via LCD menu in PWM, Percentage or RPM
|
95
|
|
- static cutter_power_t unitPower; // Power as displayed status in PWM, Percentage or RPM
|
|
94
|
+ static cutter_power_t menuPower, // Power as set via LCD menu in PWM, Percentage or RPM
|
|
95
|
+ unitPower; // Power as displayed status in PWM, Percentage or RPM
|
96
|
96
|
|
97
|
97
|
static void init();
|
98
|
98
|
|
|
@@ -225,32 +225,37 @@ public:
|
225
|
225
|
static inline void inline_disable() {
|
226
|
226
|
isReady = false;
|
227
|
227
|
unitPower = 0;
|
228
|
|
- planner.laser_inline.status = 0;
|
|
228
|
+ planner.laser_inline.status.isPlanned = false;
|
|
229
|
+ planner.laser_inline.status.isEnabled = false;
|
229
|
230
|
planner.laser_inline.power = 0;
|
230
|
231
|
}
|
231
|
232
|
|
232
|
233
|
// Inline modes of all other functions; all enable planner inline power control
|
233
|
234
|
static inline void set_inline_enabled(const bool enable) {
|
234
|
|
- if (enable) { inline_power(cpwr_to_upwr(SPEED_POWER_STARTUP)); }
|
235
|
|
- else { unitPower = 0; isReady = false; menuPower = 0; TERN(SPINDLE_LASER_PWM, inline_ocr_power, inline_power)(0);}
|
|
235
|
+ if (enable)
|
|
236
|
+ inline_power(cpwr_to_upwr(SPEED_POWER_STARTUP));
|
|
237
|
+ else {
|
|
238
|
+ isReady = false;
|
|
239
|
+ unitPower = menuPower = 0;
|
|
240
|
+ planner.laser_inline.status.isPlanned = false;
|
|
241
|
+ TERN(SPINDLE_LASER_PWM, inline_ocr_power, inline_power)(0);
|
|
242
|
+ }
|
236
|
243
|
}
|
237
|
244
|
|
238
|
245
|
// Set the power for subsequent movement blocks
|
239
|
246
|
static void inline_power(const cutter_power_t upwr) {
|
240
|
|
- unitPower = upwr;
|
241
|
|
- menuPower = unitPower;
|
|
247
|
+ unitPower = menuPower = upwr;
|
242
|
248
|
#if ENABLED(SPINDLE_LASER_PWM)
|
243
|
|
- isReady = true;
|
244
|
249
|
#if ENABLED(SPEED_POWER_RELATIVE) && !CUTTER_UNIT_IS(RPM) // relative mode does not turn laser off at 0, except for RPM
|
245
|
|
- planner.laser_inline.status = 0x03;
|
|
250
|
+ planner.laser_inline.status.isEnabled = true;
|
246
|
251
|
planner.laser_inline.power = upower_to_ocr(upwr);
|
|
252
|
+ isReady = true;
|
247
|
253
|
#else
|
248
|
|
- if (upwr > 0)
|
249
|
|
- inline_ocr_power(upower_to_ocr(upwr));
|
|
254
|
+ inline_ocr_power(upower_to_ocr(upwr));
|
250
|
255
|
#endif
|
251
|
256
|
#else
|
252
|
|
- planner.laser_inline.status = enabled(pwr) ? 0x03 : 0x01;
|
253
|
|
- planner.laser_inline.power = pwr;
|
|
257
|
+ planner.laser_inline.status.isEnabled = enabled(upwr);
|
|
258
|
+ planner.laser_inline.power = upwr;
|
254
|
259
|
isReady = enabled(upwr);
|
255
|
260
|
#endif
|
256
|
261
|
}
|
|
@@ -259,7 +264,8 @@ public:
|
259
|
264
|
|
260
|
265
|
#if ENABLED(SPINDLE_LASER_PWM)
|
261
|
266
|
static inline void inline_ocr_power(const uint8_t ocrpwr) {
|
262
|
|
- planner.laser_inline.status = ocrpwr ? 0x03 : 0x01;
|
|
267
|
+ isReady = ocrpwr > 0;
|
|
268
|
+ planner.laser_inline.status.isEnabled = ocrpwr > 0;
|
263
|
269
|
planner.laser_inline.power = ocrpwr;
|
264
|
270
|
}
|
265
|
271
|
#endif
|