summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert W. Ellenberg <rwe24g@gmail.com>2014-02-20 21:58:30 -0500
committerChris Radek <chris@timeguy.com>2014-06-11 14:44:11 -0500
commit26ed69f28d86bfd1c163d38e64c004b0131915df (patch)
treeb01f39d1fe3223c0f1f110adc4cd4b507bf7da3b
parentc9b98e3a748d5677092170b9a377c7475c0170f8 (diff)
downloadlinuxcnc-26ed69f28d86bfd1c163d38e64c004b0131915df.tar.gz
linuxcnc-26ed69f28d86bfd1c163d38e64c004b0131915df.zip
Made cutoff frequency into a parameter
-rw-r--r--src/emc/ini/initraj.cc6
-rw-r--r--src/emc/motion/command.c2
-rw-r--r--src/emc/motion/motion.h4
-rw-r--r--src/emc/nml_intf/emc.hh2
-rw-r--r--src/emc/task/taskintf.cc4
-rw-r--r--src/emc/tp/blendmath.c1
-rw-r--r--src/emc/tp/tp.c6
7 files changed, 12 insertions, 13 deletions
diff --git a/src/emc/ini/initraj.cc b/src/emc/ini/initraj.cc
index 8dd8a732f..ba67fc3be 100644
--- a/src/emc/ini/initraj.cc
+++ b/src/emc/ini/initraj.cc
@@ -167,16 +167,16 @@ static int loadTraj(EmcIniFile *trajInifile)
int arcBlendFallbackEnable = 0;
int arcBlendOptDepth = 0;
double arcBlendGapCycles = 2;
- double arcBlendGreediness = 0.5;
+ double arcBlendRampFreq = 10.0;
trajInifile->Find(&arcBlendEnable, "ARC_BLEND_ENABLE", "TRAJ");
trajInifile->Find(&arcBlendFallbackEnable, "ARC_BLEND_FALLBACK_ENABLE", "TRAJ");
trajInifile->Find(&arcBlendOptDepth, "ARC_BLEND_OPTIMIZATION_DEPTH", "TRAJ");
trajInifile->Find(&arcBlendGapCycles, "ARC_BLEND_GAP_CYCLES", "TRAJ");
- trajInifile->Find(&arcBlendGreediness, "ARC_BLEND_GREEDINESS", "TRAJ");
+ trajInifile->Find(&arcBlendRampFreq, "ARC_BLEND_RAMP_FREQUENCY", "TRAJ");
if (0 != emcSetupArcBlends(arcBlendEnable, arcBlendFallbackEnable,
- arcBlendOptDepth, arcBlendGapCycles, arcBlendGreediness)) {
+ arcBlendOptDepth, arcBlendGapCycles, arcBlendRampFreq)) {
if (emc_debug & EMC_DEBUG_CONFIG) {
rcs_print("bad return value from emcSetupArcBlends\n");
}
diff --git a/src/emc/motion/command.c b/src/emc/motion/command.c
index edb50a926..9e02fcd23 100644
--- a/src/emc/motion/command.c
+++ b/src/emc/motion/command.c
@@ -1646,7 +1646,7 @@ check_stuff ( "before command_handler()" );
emcmotConfig->arcBlendFallbackEnable = emcmotCommand->arcBlendFallbackEnable;
emcmotConfig->arcBlendOptDepth = emcmotCommand->arcBlendOptDepth;
emcmotConfig->arcBlendGapCycles = emcmotCommand->arcBlendGapCycles;
- emcmotConfig->arcBlendGreediness = emcmotCommand->arcBlendGreediness;
+ emcmotConfig->arcBlendRampFreq = emcmotCommand->arcBlendRampFreq;
break;
} /* end of: command switch */
diff --git a/src/emc/motion/motion.h b/src/emc/motion/motion.h
index 1babb74ba..666b9c53c 100644
--- a/src/emc/motion/motion.h
+++ b/src/emc/motion/motion.h
@@ -253,7 +253,7 @@ extern "C" {
int arcBlendEnable;
int arcBlendFallbackEnable;
double arcBlendGapCycles;
- double arcBlendGreediness;
+ double arcBlendRampFreq;
double maxFeedScale;
} emcmot_command_t;
@@ -746,7 +746,7 @@ Suggestion: Split this in to an Error and a Status flag register..
int arcBlendEnable;
int arcBlendFallbackEnable;
double arcBlendGapCycles;
- double arcBlendGreediness;
+ double arcBlendRampFreq;
double maxFeedScale;
} emcmot_config_t;
diff --git a/src/emc/nml_intf/emc.hh b/src/emc/nml_intf/emc.hh
index 2e1f3e084..f6df7ebe0 100644
--- a/src/emc/nml_intf/emc.hh
+++ b/src/emc/nml_intf/emc.hh
@@ -551,7 +551,7 @@ int emcSetupArcBlends(int arcBlendEnable,
int arcBlendFallbackEnable,
int arcBlendOptDepth,
double arcBlendGapCycles,
- double arcBlendGreediness);
+ double arcBlendRampFreq);
extern int emcUpdate(EMC_STAT * stat);
// full EMC status
diff --git a/src/emc/task/taskintf.cc b/src/emc/task/taskintf.cc
index d9f19f33c..8a831041b 100644
--- a/src/emc/task/taskintf.cc
+++ b/src/emc/task/taskintf.cc
@@ -1558,14 +1558,14 @@ int emcSetupArcBlends(int arcBlendEnable,
int arcBlendFallbackEnable,
int arcBlendOptDepth,
double arcBlendGapCycles,
- double arcBlendGreediness) {
+ double arcBlendRampFreq) {
emcmotCommand.command = EMCMOT_SETUP_ARC_BLENDS;
emcmotCommand.arcBlendEnable = arcBlendEnable;
emcmotCommand.arcBlendFallbackEnable = arcBlendFallbackEnable;
emcmotCommand.arcBlendOptDepth = arcBlendOptDepth;
emcmotCommand.arcBlendGapCycles = arcBlendGapCycles;
- emcmotCommand.arcBlendGreediness = arcBlendGreediness;
+ emcmotCommand.arcBlendRampFreq = arcBlendRampFreq;
return usrmotWriteEmcmotCommand(&emcmotCommand);
}
diff --git a/src/emc/tp/blendmath.c b/src/emc/tp/blendmath.c
index 60ab42bc5..8ae090cfb 100644
--- a/src/emc/tp/blendmath.c
+++ b/src/emc/tp/blendmath.c
@@ -13,6 +13,7 @@
#include "posemath.h"
#include "tc_types.h"
+#include "tc.h"
#include "tp_types.h"
#include "rtapi_math.h"
#include "spherical_arc.h"
diff --git a/src/emc/tp/tp.c b/src/emc/tp/tp.c
index 74df95b57..271be8298 100644
--- a/src/emc/tp/tp.c
+++ b/src/emc/tp/tp.c
@@ -2561,12 +2561,10 @@ STATIC int tpActivateSegment(TP_STRUCT * const tp, TC_STRUCT * const tc) {
// Test if we need ramping or trapezoidal acceleration for this move
// FIXME: move this to INI setting
- const double cutoff_freq = 10.0; //Hz
- double cutoff_time = 1.0 / (cutoff_freq);
+ double cutoff_time = 1.0 / (emcmotConfig->arcBlendRampFreq);
- double length = (tc->target-tc->progress);
+ double length = tc->target - tc->progress;
double segment_time = 2.0 * length / (tc->currentvel + tc->finalvel);
- /*double segment_cycles = segment_time / tp->cycle_time;*/
if (segment_time < cutoff_time &&
tc->canon_motion_type != EMC_MOTION_TYPE_TRAVERSE &&