From: Joseph Coffland Date: Wed, 23 Mar 2016 22:06:28 +0000 (-0700) Subject: Broke up planner.h X-Git-Url: https://git.buildbotics.com/?a=commitdiff_plain;h=77c0383bcee4cdc4fbea9b408fc33868b241164d;p=bbctrl-firmware Broke up planner.h --- diff --git a/src/plan/line.c b/src/plan/line.c index 0a1be46..bf2658a 100644 --- a/src/plan/line.c +++ b/src/plan/line.c @@ -43,6 +43,24 @@ #include #include +/// common variables for planning (move master) +typedef struct mpMoveMasterSingleton { + float position[AXES]; // final move position for planning purposes + + float jerk; // jerk values cached from previous block + float recip_jerk; + float cbrt_jerk; +} mpMoveMasterSingleton_t; + + +mpMoveMasterSingleton_t mm = {}; // context for line planning + + +/// Set planner position for a single axis +void mp_set_planner_position(uint8_t axis, const float position) { + mm.position[axis] = position; +} + /* Sonny's algorithm - simple * diff --git a/src/plan/line.h b/src/plan/line.h index eca0dfc..11044ce 100644 --- a/src/plan/line.h +++ b/src/plan/line.h @@ -29,5 +29,6 @@ #include "buffer.h" +void mp_set_planner_position(uint8_t axis, const float position); void mp_plan_block_list(mpBuf_t *bf, uint8_t *mr_flag); stat_t mp_aline(GCodeState_t *gm_in); diff --git a/src/plan/planner.c b/src/plan/planner.c index af276a4..dbbb4d1 100644 --- a/src/plan/planner.c +++ b/src/plan/planner.c @@ -71,15 +71,10 @@ #include -mpMoveMasterSingleton_t mm; // context for line planning -mpMoveRuntimeSingleton_t mr; // context for line runtime +mpMoveRuntimeSingleton_t mr = {}; // context for line runtime void planner_init() { - // If you know all memory has been zeroed by a hard reset you don't need - // these next 2 lines - memset(&mr, 0, sizeof(mr)); // clear all values, pointers and status - memset(&mm, 0, sizeof(mm)); // clear all values, pointers and status mp_init_buffers(); } @@ -120,11 +115,6 @@ void mp_flush_planner() { * still close to the starting point. */ -/// Set planner position for a single axis -void mp_set_planner_position(uint8_t axis, const float position) { - mm.position[axis] = position; -} - /// Set runtime position for a single axis void mp_set_runtime_position(uint8_t axis, const float position) { diff --git a/src/plan/planner.h b/src/plan/planner.h index 439beb1..c70413e 100644 --- a/src/plan/planner.h +++ b/src/plan/planner.h @@ -63,16 +63,6 @@ typedef enum { ((MIN_SEGMENT_USEC + 1) / MICROSECONDS_PER_MINUTE) -/// common variables for planning (move master) -typedef struct mpMoveMasterSingleton { - float position[AXES]; // final move position for planning purposes - - float jerk; // jerk values cached from previous block - float recip_jerk; - float cbrt_jerk; -} mpMoveMasterSingleton_t; - - typedef struct mpMoveRuntimeSingleton { // persistent runtime variables uint8_t move_state; // state of the overall move uint8_t section; // what section is the move in? @@ -141,13 +131,11 @@ typedef struct mpMoveRuntimeSingleton { // persistent runtime variables // Reference global scope structures -extern mpMoveMasterSingleton_t mm; // context for line planning extern mpMoveRuntimeSingleton_t mr; // context for line runtime void planner_init(); void mp_flush_planner(); -void mp_set_planner_position(uint8_t axis, const float position); void mp_set_runtime_position(uint8_t axis, const float position); void mp_set_steps_to_runtime_position(); float mp_get_runtime_velocity();