|
@ -203,9 +203,8 @@ void Planner::calculate_trapezoid_for_block(block_t* block, float entry_factor, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// The kernel called by recalculate() when scanning the plan from last to first entry.
|
|
|
// The kernel called by recalculate() when scanning the plan from last to first entry.
|
|
|
void Planner::reverse_pass_kernel(block_t* previous, block_t* current, block_t* next) { |
|
|
void Planner::reverse_pass_kernel(block_t* current, block_t* next) { |
|
|
if (!current) return; |
|
|
if (!current) return; |
|
|
UNUSED(previous); |
|
|
|
|
|
|
|
|
|
|
|
if (next) { |
|
|
if (next) { |
|
|
// If entry speed is already at the maximum entry speed, no need to recheck. Block is cruising.
|
|
|
// If entry speed is already at the maximum entry speed, no need to recheck. Block is cruising.
|
|
@ -250,15 +249,14 @@ void Planner::reverse_pass() { |
|
|
block[2] = block[1]; |
|
|
block[2] = block[1]; |
|
|
block[1] = block[0]; |
|
|
block[1] = block[0]; |
|
|
block[0] = &block_buffer[b]; |
|
|
block[0] = &block_buffer[b]; |
|
|
reverse_pass_kernel(block[0], block[1], block[2]); |
|
|
reverse_pass_kernel(block[1], block[2]); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// The kernel called by recalculate() when scanning the plan from first to last entry.
|
|
|
// The kernel called by recalculate() when scanning the plan from first to last entry.
|
|
|
void Planner::forward_pass_kernel(block_t* previous, block_t* current, block_t* next) { |
|
|
void Planner::forward_pass_kernel(block_t* previous, block_t* current) { |
|
|
if (!previous) return; |
|
|
if (!previous) return; |
|
|
UNUSED(next); |
|
|
|
|
|
|
|
|
|
|
|
// If the previous block is an acceleration block, but it is not long enough to complete the
|
|
|
// If the previous block is an acceleration block, but it is not long enough to complete the
|
|
|
// full speed change within the block, we need to adjust the entry speed accordingly. Entry
|
|
|
// full speed change within the block, we need to adjust the entry speed accordingly. Entry
|
|
@ -288,9 +286,9 @@ void Planner::forward_pass() { |
|
|
block[0] = block[1]; |
|
|
block[0] = block[1]; |
|
|
block[1] = block[2]; |
|
|
block[1] = block[2]; |
|
|
block[2] = &block_buffer[b]; |
|
|
block[2] = &block_buffer[b]; |
|
|
forward_pass_kernel(block[0], block[1], block[2]); |
|
|
forward_pass_kernel(block[0], block[1]); |
|
|
} |
|
|
} |
|
|
forward_pass_kernel(block[1], block[2], NULL); |
|
|
forward_pass_kernel(block[1], block[2]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/**
|
|
|
/**
|
|
|