Skip to content

Commit 291a90a

Browse files
committed
🩹 Trajectory FTM_POLYS followup
Followup to #28197
1 parent dd02b5f commit 291a90a

File tree

5 files changed

+41
-48
lines changed

5 files changed

+41
-48
lines changed

Marlin/src/gcode/feature/ft_motion/M494.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,9 @@
2828
#include "../../../module/stepper.h"
2929
#include "../../../module/planner.h"
3030

31-
static FSTR_P get_trajectory_type_name() {
32-
switch (ftMotion.getTrajectoryType()) {
33-
default:
34-
case TrajectoryType::TRAPEZOIDAL: return GET_TEXT_F(MSG_FTM_TRAPEZOIDAL);
35-
case TrajectoryType::POLY5: return GET_TEXT_F(MSG_FTM_POLY5);
36-
case TrajectoryType::POLY6: return GET_TEXT_F(MSG_FTM_POLY6);
37-
}
38-
}
39-
4031
void say_ftm_settings() {
4132
#if ENABLED(FTM_POLYS)
42-
SERIAL_ECHOLN(F(" Trajectory: "), get_trajectory_type_name(), C('('), (uint8_t)ftMotion.getTrajectoryType(), C(')'));
33+
SERIAL_ECHOLN(F(" Trajectory: "), ftMotion.getTrajectoryName(), C('('), (uint8_t)ftMotion.getTrajectoryType(), C(')'));
4334
#endif
4435

4536
const ft_config_t &c = ftMotion.cfg;

Marlin/src/inc/Conditionals-4-adv.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,9 +1541,6 @@
15411541
#if !HAS_EXTRUDERS
15421542
#undef FTM_SHAPER_E
15431543
#endif
1544-
#if DISABLED(FTM_POLYS)
1545-
#define FTM_TRAJECTORY_TYPE TRAPEZOIDAL
1546-
#endif
15471544
#endif
15481545

15491546
// Multi-Stepping Limit

Marlin/src/lcd/menu/menu_motion.cpp

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -327,18 +327,6 @@ void menu_move() {
327327
}
328328
}
329329

330-
#if ENABLED(FTM_POLYS)
331-
FSTR_P get_trajectory_name() {
332-
switch (ftMotion.getTrajectoryType()) {
333-
default:
334-
case TrajectoryType::TRAPEZOIDAL: return GET_TEXT_F(MSG_FTM_TRAPEZOIDAL);
335-
case TrajectoryType::POLY5: return GET_TEXT_F(MSG_FTM_POLY5);
336-
case TrajectoryType::POLY6: return GET_TEXT_F(MSG_FTM_POLY6);
337-
338-
}
339-
}
340-
#endif // FTM_POLYS
341-
342330
#if HAS_DYNAMIC_FREQ
343331
FSTR_P get_dyn_freq_mode_name() {
344332
switch (ftMotion.cfg.dynFreqMode) {
@@ -494,7 +482,7 @@ void menu_move() {
494482
auto _traj_name = [&]{
495483
if (TERN1(CACHE_FOR_SPEED, !got_t)) {
496484
TERN_(CACHE_FOR_SPEED, got_t = true);
497-
traj_name = get_trajectory_name();
485+
traj_name = ftMotion.getTrajectoryName();
498486
}
499487
return traj_name;
500488
};
@@ -504,7 +492,7 @@ void menu_move() {
504492
auto _dmode = []{ return get_dyn_freq_mode_name(); };
505493
#endif
506494
#if ENABLED(FTM_POLYS)
507-
auto _traj_name = []{ return get_trajectory_name(); };
495+
auto _traj_name = []{ return ftMotion.getTrajectoryName(); };
508496
#endif
509497
#endif
510498

@@ -598,7 +586,7 @@ void menu_move() {
598586
auto _traj_name = [&]{
599587
if (TERN1(CACHE_FOR_SPEED, !got_t)) {
600588
TERN_(CACHE_FOR_SPEED, got_t = true);
601-
traj_name = get_trajectory_name();
589+
traj_name = ftMotion.getTrajectoryName();
602590
}
603591
return traj_name;
604592
};
@@ -611,7 +599,7 @@ void menu_move() {
611599
auto _dmode = []{ return get_dyn_freq_mode_name(); };
612600
#endif
613601
#if ENABLED(FTM_POLYS)
614-
auto _traj_name = []{ return get_trajectory_name(); };
602+
auto _traj_name = []{ return ftMotion.getTrajectoryName(); };
615603
#endif
616604

617605
#endif // !__AVR__

Marlin/src/module/ft_motion.cpp

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ float FTMotion::tau = 0.0f; // (s) Time since start of b
7474
// Trajectory generators
7575
TrapezoidalTrajectoryGenerator FTMotion::trapezoidalGenerator;
7676
#if ENABLED(FTM_POLYS)
77+
TrajectoryType FTMotion::trajectoryType = TrajectoryType::FTM_TRAJECTORY_TYPE;
7778
Poly5TrajectoryGenerator FTMotion::poly5Generator;
7879
Poly6TrajectoryGenerator FTMotion::poly6Generator;
80+
TrajectoryGenerator* FTMotion::currentGenerator = &FTMotion::trapezoidalGenerator;
7981
#endif
80-
TrajectoryGenerator* FTMotion::currentGenerator = &FTMotion::trapezoidalGenerator;
81-
TrajectoryType FTMotion::trajectoryType = TrajectoryType::FTM_TRAJECTORY_TYPE;
8282

8383
// Resonance Test
8484
TERN_(FTM_RESONANCE_TEST,ResonanceGenerator FTMotion::rtg;) // Resonance trajectory generator instance
@@ -288,20 +288,33 @@ void FTMotion::plan_runout_block() {
288288
void FTMotion::init() {
289289
update_shaping_params();
290290
TERN_(FTM_SMOOTHING, update_smoothing_params());
291-
setTrajectoryType(cfg.trajectory_type);
291+
TERN_(FTM_POLYS, setTrajectoryType(cfg.trajectory_type));
292292
reset(); // Precautionary.
293293
}
294294

295-
// Set trajectory generator type
296-
void FTMotion::setTrajectoryType(const TrajectoryType type) {
297-
cfg.trajectory_type = trajectoryType = type;
298-
switch (type) {
299-
default: cfg.trajectory_type = trajectoryType = TrajectoryType::FTM_TRAJECTORY_TYPE;
300-
case TrajectoryType::TRAPEZOIDAL: currentGenerator = &trapezoidalGenerator; break;
301-
#if ENABLED(FTM_POLYS)
302-
case TrajectoryType::POLY5: currentGenerator = &poly5Generator; break;
303-
case TrajectoryType::POLY6: currentGenerator = &poly6Generator; break;
304-
#endif
295+
#if ENABLED(FTM_POLYS)
296+
297+
// Set trajectory generator type
298+
void FTMotion::setTrajectoryType(const TrajectoryType type) {
299+
cfg.trajectory_type = trajectoryType = type;
300+
switch (type) {
301+
default:
302+
case TrajectoryType::TRAPEZOIDAL: currentGenerator = &trapezoidalGenerator; break;
303+
#if ENABLED(FTM_POLYS)
304+
case TrajectoryType::POLY5: currentGenerator = &poly5Generator; break;
305+
case TrajectoryType::POLY6: currentGenerator = &poly6Generator; break;
306+
#endif
307+
}
308+
}
309+
310+
#endif // FTM_POLYS
311+
312+
FSTR_P FTMotion::getTrajectoryName() {
313+
switch (getTrajectoryType()) {
314+
default:
315+
case TrajectoryType::TRAPEZOIDAL: return GET_TEXT_F(MSG_FTM_TRAPEZOIDAL);
316+
case TrajectoryType::POLY5: return GET_TEXT_F(MSG_FTM_POLY5);
317+
case TrajectoryType::POLY6: return GET_TEXT_F(MSG_FTM_POLY6);
305318
}
306319
}
307320

Marlin/src/module/ft_motion.h

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,11 @@ typedef struct FTConfig {
8484
ft_smoothed_float_t smoothingTime; // Smoothing time. [s]
8585
#endif
8686

87-
TrajectoryType trajectory_type = TrajectoryType::FTM_TRAJECTORY_TYPE; // Trajectory generator type
8887
#if ENABLED(FTM_POLYS)
8988
float poly6_acceleration_overshoot; // Overshoot factor for Poly6 (1.25 to 2.0)
89+
TrajectoryType trajectory_type = TrajectoryType::FTM_TRAJECTORY_TYPE; // Trajectory generator type
90+
#else
91+
static constexpr TrajectoryType trajectory_type = TrajectoryType::TRAPEZOIDAL;
9092
#endif
9193
} ft_config_t;
9294

@@ -140,10 +142,9 @@ class FTMotion {
140142

141143
#if ENABLED(FTM_POLYS)
142144
cfg.poly6_acceleration_overshoot = FTM_POLY6_ACCELERATION_OVERSHOOT;
145+
setTrajectoryType(TrajectoryType::FTM_TRAJECTORY_TYPE);
143146
#endif
144147

145-
setTrajectoryType(TrajectoryType::FTM_TRAJECTORY_TYPE);
146-
147148
reset();
148149
}
149150

@@ -182,7 +183,8 @@ class FTMotion {
182183

183184
// Trajectory generator selection
184185
static void setTrajectoryType(const TrajectoryType type);
185-
static TrajectoryType getTrajectoryType() { return trajectoryType; }
186+
static TrajectoryType getTrajectoryType() { return TERN(FTM_POLYS, trajectoryType, TrajectoryType::TRAPEZOIDAL); }
187+
static FSTR_P getTrajectoryName();
186188

187189
FORCE_INLINE static bool axis_is_moving(const AxisEnum axis) {
188190
return cfg.active ? moving_axis_flags[axis] : stepper.axis_is_moving(axis);
@@ -219,9 +221,11 @@ class FTMotion {
219221
#if ENABLED(FTM_POLYS)
220222
static Poly5TrajectoryGenerator poly5Generator;
221223
static Poly6TrajectoryGenerator poly6Generator;
224+
static TrajectoryType trajectoryType;
225+
static TrajectoryGenerator* currentGenerator;
226+
#else
227+
static constexpr TrajectoryGenerator *currentGenerator = trapezoidalGenerator;
222228
#endif
223-
static TrajectoryGenerator* currentGenerator;
224-
static TrajectoryType trajectoryType;
225229

226230
#if FTM_HAS_LIN_ADVANCE
227231
static bool use_advance_lead;

0 commit comments

Comments
 (0)