Change MSG_FTM resonance test text to MSG_ resonance text, minor changes to ResonanceGenerator class,

move resonance menu outside FT_MOTION conditional in menu_motion.cpp
This commit is contained in:
narno2202 2026-01-16 14:38:49 +01:00
parent 039b634003
commit 389a4d3a18
5 changed files with 61 additions and 57 deletions

View file

@ -38,6 +38,7 @@ float ResonanceGenerator::rt_time = FTM_TS; // Resonance test
float ResonanceGenerator::timeline = 0.0f;
float ResonanceGenerator::amplitude_precalc;
float ResonanceGenerator::freq_mul;
xyze_float_t ResonanceGenerator:: traj_coords;
ResonanceGenerator rtg;
@ -54,6 +55,7 @@ void ResonanceGenerator::start() {
do_blocking_move_to_xy(X_CENTER, Y_CENTER, Z_CLEARANCE_FOR_HOMING);
rt_params.start_pos = current_position;
traj_coords = rt_params.start_pos;
rt_time = FTM_TS;
active = true;
done = false;
@ -98,7 +100,7 @@ float ResonanceGenerator::fast_sin(float x) {
}
void ResonanceGenerator::fill_stepper_plan_buffer() {
xyze_float_t traj_coords = rt_params.start_pos;
//xyze_float_t traj_coords = rt_params.start_pos;
while (!ftMotion.stepping.is_full()) {
// Calculate current frequency

View file

@ -80,6 +80,7 @@ class ResonanceGenerator {
static float freq_mul; // Frequency multiplier for sine sweeping
static float amplitude_precalc; // Precalculated part of amplitude formula
float current_freq; // Current frequency being generated in sinusoidal motion
static xyze_float_t traj_coords;
static bool active; // Resonance test active
static bool done; // Resonance test done
};

View file

@ -950,13 +950,13 @@ namespace LanguageNarrow_en {
LSTR MSG_FTM_POLY6_OVERSHOOT = _UxGT("@ Poly6 Overshoot");
LSTR MSG_FTM_CONFIGURE_AXIS_N = _UxGT("Configure @ Axis");
LSTR MSG_FTM_RESONANCE_TEST = _UxGT("Resonance Test");
LSTR MSG_FTM_RT_RUNNING = _UxGT("Res. Test Running...");
LSTR MSG_FTM_RT_START_N = _UxGT("Start @ Axis Test");
LSTR MSG_FTM_RT_STOP = _UxGT("Abort Test");
LSTR MSG_FTM_RETRIEVE_FREQ = _UxGT("Calc. Res. Freq.");
LSTR MSG_FTM_RESONANCE_FREQ = _UxGT("Resonance Freq.");
LSTR MSG_FTM_TIMELINE_FREQ = _UxGT("Timeline (s)");
LSTR MSG_RESONANCE_TEST = _UxGT("Resonance Test");
LSTR MSG_RT_RUNNING = _UxGT("Res. Test Running...");
LSTR MSG_RT_START_N = _UxGT("Start @ Axis Test");
LSTR MSG_RT_STOP = _UxGT("Abort Test");
LSTR MSG_RETRIEVE_FREQ = _UxGT("Calc. Res. Freq.");
LSTR MSG_RESONANCE_FREQ = _UxGT("Resonance Freq.");
LSTR MSG_TIMELINE_FREQ = _UxGT("Timeline (s)");
LSTR MSG_LEVEL_X_AXIS = _UxGT("Level X Axis");
LSTR MSG_AUTO_CALIBRATE = _UxGT("Auto Calibrate");
@ -1173,8 +1173,8 @@ namespace LanguageWide_en {
LSTR MSG_HOMING_FEEDRATE_Y = _UxGT("Y Homing Feedrate");
LSTR MSG_HOMING_FEEDRATE_Z = _UxGT("Z Homing Feedrate");
LSTR MSG_EEPROM_INITIALIZED = _UxGT("Default Settings Restored");
LSTR MSG_FTM_RT_RUNNING = _UxGT("Resonance Test Running...");
LSTR MSG_FTM_RESONANCE_FREQ = _UxGT("Resonance frequency");
LSTR MSG_RT_RUNNING = _UxGT("Resonance Test Running...");
LSTR MSG_RESONANCE_FREQ = _UxGT("Resonance frequency");
#endif
}

View file

@ -907,13 +907,13 @@ namespace LanguageNarrow_it {
LSTR MSG_FTM_SMOOTH_TIME_N = _UxGT("@ Tempo smorzamento");
LSTR MSG_FTM_POLY6_OVERSHOOT = _UxGT("@ Overshoot Poly6");
LSTR MSG_FTM_RESONANCE_TEST = _UxGT("Test risonanza");
LSTR MSG_FTM_RT_RUNNING = _UxGT("Test ris.in corso...");
LSTR MSG_FTM_RT_START_N = _UxGT("Avvia Test Asse @");
LSTR MSG_FTM_RT_STOP = _UxGT("Annulla Test");
LSTR MSG_FTM_RETRIEVE_FREQ = _UxGT("Calc. Res. Freq.");
LSTR MSG_FTM_RESONANCE_FREQ = _UxGT("Freq.Risonanza");
LSTR MSG_FTM_TIMELINE_FREQ = _UxGT("Cronologia (s)");
LSTR MSG_RESONANCE_TEST = _UxGT("Test risonanza");
LSTR MSG_RT_RUNNING = _UxGT("Test ris.in corso...");
LSTR MSG_RT_START_N = _UxGT("Avvia Test Asse @");
LSTR MSG_RT_STOP = _UxGT("Annulla Test");
LSTR MSG_RETRIEVE_FREQ = _UxGT("Calc. Res. Freq.");
LSTR MSG_RESONANCE_FREQ = _UxGT("Freq.Risonanza");
LSTR MSG_TIMELINE_FREQ = _UxGT("Cronologia (s)");
LSTR MSG_LEVEL_X_AXIS = _UxGT("Livello asse X");
LSTR MSG_AUTO_CALIBRATE = _UxGT("Auto Calibra");

View file

@ -308,6 +308,46 @@ void menu_move() {
}
#endif
#if ENABLED(RESONANCE_TEST)
#include "../../feature/resonance/resonance_generator.h"
void menu_resonance_freq() {
START_MENU();
BACK_ITEM(MSG_RESONANCE_TEST);
STATIC_ITEM(MSG_RETRIEVE_FREQ);
EDIT_ITEM(float62, MSG_TIMELINE_FREQ, &rtg.timeline, 0.0f, 600.0f);
PSTRING_ITEM(MSG_RESONANCE_FREQ, ftostr53_63(rtg.getFrequencyFromTimeline()), SS_FULL);
END_MENU();
}
void menu_resonance_test() {
START_MENU();
BACK_ITEM(MSG_FIXED_TIME_MOTION);
if (rtg.isActive() && !rtg.isDone()) {
STATIC_ITEM(MSG_RT_RUNNING);
GCODES_ITEM(MSG_RT_STOP, F("M496"));
}
else {
#if HAS_X_AXIS
GCODES_ITEM_N(X_AXIS, MSG_RT_START_N, F("M495 X S"));
#endif
#if HAS_Y_AXIS
GCODES_ITEM_N(Y_AXIS, MSG_RT_START_N, F("M495 Y S"));
#endif
#if HAS_Z_AXIS
GCODES_ITEM_N(Z_AXIS, MSG_RT_START_N, F("M495 Z S"));
#endif
SUBMENU(MSG_RETRIEVE_FREQ, menu_resonance_freq);
}
END_MENU();
}
#endif // RESONANCE_TEST
#if ENABLED(FT_MOTION_MENU)
#include "../../module/ft_motion.h"
@ -405,45 +445,6 @@ void menu_move() {
#endif // FTM_POLYS
#if ENABLED(RESONANCE_TEST)
void menu_resonance_freq() {
START_MENU();
BACK_ITEM(MSG_FTM_RESONANCE_TEST);
STATIC_ITEM(MSG_FTM_RETRIEVE_FREQ);
EDIT_ITEM(float62, MSG_FTM_TIMELINE_FREQ, &rtg.timeline, 0.0f, 600.0f);
PSTRING_ITEM(MSG_FTM_RESONANCE_FREQ, ftostr53_63(rtg.getFrequencyFromTimeline()), SS_FULL);
END_MENU();
}
void menu_resonance_test() {
START_MENU();
BACK_ITEM(MSG_FIXED_TIME_MOTION);
if (rtg.isActive() && !rtg.isDone()) {
STATIC_ITEM(MSG_FTM_RT_RUNNING);
GCODES_ITEM(MSG_FTM_RT_STOP, F("M496"));
}
else {
#if HAS_X_AXIS
GCODES_ITEM_N(X_AXIS, MSG_FTM_RT_START_N, F("M495 X S"));
#endif
#if HAS_Y_AXIS
GCODES_ITEM_N(Y_AXIS, MSG_FTM_RT_START_N, F("M495 Y S"));
#endif
#if HAS_Z_AXIS
GCODES_ITEM_N(Z_AXIS, MSG_FTM_RT_START_N, F("M495 Z S"));
#endif
SUBMENU(MSG_FTM_RETRIEVE_FREQ, menu_resonance_freq);
}
END_MENU();
}
#endif // RESONANCE_TEST
#if HAS_DYNAMIC_FREQ
void menu_ftm_dyn_mode() {
@ -560,7 +561,7 @@ void menu_move() {
});
#if ENABLED(RESONANCE_TEST)
SUBMENU(MSG_FTM_RESONANCE_TEST, menu_resonance_test);
SUBMENU(MSG_RESONANCE_TEST, menu_resonance_test);
#endif
}