From 097452eb995800337c633502dee8b497a7571749 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Tue, 19 Sep 2017 18:29:01 -0700 Subject: [PATCH] comms hijack compiles --- MotorControl/axis.cpp | 19 ++++++++++++++++--- MotorControl/axis.hpp | 4 +++- MotorControl/low_level.h | 6 ++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/MotorControl/axis.cpp b/MotorControl/axis.cpp index fa7dfd49..cda35325 100644 --- a/MotorControl/axis.cpp +++ b/MotorControl/axis.cpp @@ -10,14 +10,27 @@ extern "C" { extern "C" { void axis_thread_entry(void const* temp_motor_ptr) { Motor_t* motor = (Motor_t*)temp_motor_ptr; - Axis axis(motor); + + //TODO: explicit axis number assignment + //for now we search for it + uint8_t ax_number = 0; + while(&motors[ax_number] != motor) + ++ax_number; + + Axis axis(ax_number, motor); axis.StateMachineLoop(); } } // extern "C" -Axis::Axis(Motor_t* legacy_motor_ref) - : legacy_motor_ref_(legacy_motor_ref) {} +Axis::Axis(uint8_t axis_number, Motor_t* legacy_motor_ref) + : axis_number_(axis_number), + legacy_motor_ref_(legacy_motor_ref) {} void Axis::StateMachineLoop() { + // override for compatibility with legacy comms paradigm + // TODO next gen comms + exposed_bools[4*axis_number_ + 1] = &enable_control_; + exposed_bools[4*axis_number_ + 2] = &do_calibration_; + motor_thread(legacy_motor_ref_); } \ No newline at end of file diff --git a/MotorControl/axis.hpp b/MotorControl/axis.hpp index 2108289c..2431d383 100644 --- a/MotorControl/axis.hpp +++ b/MotorControl/axis.hpp @@ -35,11 +35,13 @@ public: //step/dir handler // Object operation requires ptr to legacy object for now, TODO: get rid of this dep - Axis(Motor_t* legacy_motor_ref); + Axis(uint8_t axis_number, Motor_t* legacy_motor_ref); // Infinite loop that does calibration and enters main control loop as appropriate void StateMachineLoop(); + uint8_t axis_number_; + bool enable_control_; bool do_calibration_; diff --git a/MotorControl/low_level.h b/MotorControl/low_level.h index 2b0d6501..a7afa6c7 100644 --- a/MotorControl/low_level.h +++ b/MotorControl/low_level.h @@ -148,6 +148,12 @@ extern Motor_t motors[]; extern const int num_motors; /* Exported variables --------------------------------------------------------*/ +// Exposed comms table during refactor transition +extern float* exposed_floats[]; +extern int* exposed_ints[]; +extern bool* exposed_bools[]; +extern uint16_t* exposed_uint16[]; + /* Exported macro ------------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/