From 41224a4a4105efce91b97b2fbe553ff898eac947 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 27 Sep 2018 20:45:39 -0400 Subject: [PATCH] Move Endstop's config struct into the class to unify the style --- Firmware/MotorControl/endstop.cpp | 2 +- Firmware/MotorControl/endstop.hpp | 33 +++++++++++++------------------ Firmware/MotorControl/main.cpp | 12 +++++------ 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/Firmware/MotorControl/endstop.cpp b/Firmware/MotorControl/endstop.cpp index ac0ff9a1..4443fdd6 100644 --- a/Firmware/MotorControl/endstop.cpp +++ b/Firmware/MotorControl/endstop.cpp @@ -1,6 +1,6 @@ #include -Endstop::Endstop(EndstopConfig_t &config) +Endstop::Endstop(Endstop::Config_t &config) : config_(config) { set_endstop_enabled(config_.enabled); } diff --git a/Firmware/MotorControl/endstop.hpp b/Firmware/MotorControl/endstop.hpp index 6e9cb46f..92ff10d7 100644 --- a/Firmware/MotorControl/endstop.hpp +++ b/Firmware/MotorControl/endstop.hpp @@ -1,20 +1,19 @@ #ifndef __ENDSTOP_HPP #define __ENDSTOP_HPP - -struct EndstopConfig_t { - uint16_t gpio_num; - bool enabled = false; - int32_t offset = 0; - bool is_active_high = false; - float debounce_ms = 100.0f; -}; - class Endstop { public: - Endstop(EndstopConfig_t& config); - - EndstopConfig_t& config_; + struct Config_t { + uint16_t gpio_num; + bool enabled = false; + int32_t offset = 0; + bool is_active_high = false; + float debounce_ms = 100.0f; + }; + + Endstop(Endstop::Config_t& config); + + Endstop::Config_t& config_; Axis* axis_ = nullptr; void set_endstop_enabled(bool enable); @@ -23,10 +22,9 @@ class Endstop { bool getEndstopState(); - bool endstop_state_ = false; - - auto make_protocol_definitions(){ + + auto make_protocol_definitions() { return make_protocol_member_list( make_protocol_ro_property("endstop_state_", &endstop_state_), make_protocol_object("config", @@ -34,13 +32,10 @@ class Endstop { make_protocol_property("enabled", &config_.enabled), make_protocol_property("offset", &config_.offset), make_protocol_property("is_active_high", &config_.is_active_high), - make_protocol_property("debounce_ms", &config_.debounce_ms) - ) - ); + make_protocol_property("debounce_ms", &config_.debounce_ms))); } private: - bool pin_state_ = false; volatile float debounce_timer_ = 0; }; diff --git a/Firmware/MotorControl/main.cpp b/Firmware/MotorControl/main.cpp index ebfe25a6..39921fea 100644 --- a/Firmware/MotorControl/main.cpp +++ b/Firmware/MotorControl/main.cpp @@ -15,8 +15,8 @@ Controller::Config_t controller_configs[AXIS_COUNT]; Motor::Config_t motor_configs[AXIS_COUNT]; Axis::Config_t axis_configs[AXIS_COUNT]; TrapezoidalTrajectory::Config_t trap_configs[AXIS_COUNT]; -EndstopConfig_t min_endstop_configs[AXIS_COUNT]; -EndstopConfig_t max_endstop_configs[AXIS_COUNT]; +Endstop::Config_t min_endstop_configs[AXIS_COUNT]; +Endstop::Config_t max_endstop_configs[AXIS_COUNT]; bool user_config_loaded_; SystemStats_t system_stats_ = { 0 }; @@ -30,8 +30,8 @@ typedef Config< Controller::Config_t[AXIS_COUNT], Motor::Config_t[AXIS_COUNT], TrapezoidalTrajectory::Config_t[AXIS_COUNT], - EndstopConfig_t[AXIS_COUNT], - EndstopConfig_t[AXIS_COUNT], + Endstop::Config_t[AXIS_COUNT], + Endstop::Config_t[AXIS_COUNT], Axis::Config_t[AXIS_COUNT]> ConfigFormat; void save_configuration(void) { @@ -73,8 +73,8 @@ void load_configuration(void) { motor_configs[i] = Motor::Config_t(); trap_configs[i] = TrapezoidalTrajectory::Config_t(); axis_configs[i] = Axis::Config_t(); - min_endstop_configs[i] = EndstopConfig_t(); - max_endstop_configs[i] = EndstopConfig_t(); + min_endstop_configs[i] = Endstop::Config_t(); + max_endstop_configs[i] = Endstop::Config_t(); } } else { user_config_loaded_ = true;