From 805a63998bf318d7cd253095883b52a6f07c6c66 Mon Sep 17 00:00:00 2001 From: AsiiaPine Date: Wed, 19 Jun 2024 12:18:18 +0300 Subject: [PATCH] fix the moduleclass usage issues --- .../circuit_status/CircuitStatusModule.cpp | 1 - .../circuit_status/CircuitStatusModule.hpp | 2 -- .../modules/pwm/PWMModule.cpp | 18 ++++++++---------- .../modules/pwm/PWMModule.hpp | 11 ++++++----- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.cpp b/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.cpp index 0e2f625..e08f09b 100644 --- a/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.cpp +++ b/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.cpp @@ -6,7 +6,6 @@ #include "CircuitStatusModule.hpp" -bool CircuitStatus::instance_initialized = false; Logger CircuitStatus::logger = Logger("CircuitStatus"); void CircuitStatus::init() { diff --git a/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.hpp b/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.hpp index 3b52c02..f9be466 100644 --- a/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.hpp +++ b/Src/dronecan_application/modules/circuit_status/CircuitStatusModule.hpp @@ -21,8 +21,6 @@ class CircuitStatus : public Module { protected: void spin_once() override; - static bool instance_initialized; - private: CircuitStatus_t circuit_status = {}; Temperature_t temperature_status = {}; diff --git a/Src/dronecan_application/modules/pwm/PWMModule.cpp b/Src/dronecan_application/modules/pwm/PWMModule.cpp index f6a3fc6..2fb2eaf 100644 --- a/Src/dronecan_application/modules/pwm/PWMModule.cpp +++ b/Src/dronecan_application/modules/pwm/PWMModule.cpp @@ -56,13 +56,6 @@ void PWMModule::init() { void PWMModule::spin_once() { uint32_t crnt_time_ms = HAL_GetTick(); - static uint32_t next_update_ms = 0; - if (crnt_time_ms > next_update_ms) { - next_update_ms = crnt_time_ms + 1000; - update_params(); - apply_params(); - } - mode = Module::Mode::OPEARTIONAL; for (auto& pwm : params) { if (crnt_time_ms > pwm.cmd_end_time_ms) { @@ -105,7 +98,9 @@ void PWMModule::update_params() { params_error = true; break; } - + if (health != Status::OK&& HAL_GetTick() %1000 == 0) { + logger.log_info("102"); + } static uint32_t last_warn_pub_time_ms = 0; for (int i = 0; i < static_cast(PwmPin::PWM_AMOUNT); i++) { params[i].fb = paramsGetIntegerValue(params[i].names.fb); @@ -129,11 +124,14 @@ void PWMModule::update_params() { logger.log_debug("check parameters"); } } + if (health != Status::OK && HAL_GetTick() %1000 == 0) { + logger.log_info("128"); + } + apply_params(); + mode = Mode::OPEARTIONAL; } void PWMModule::apply_params() { - mode = Mode::MAINTENANCE; - for (int i = 0; i < static_cast(PwmPin::PWM_AMOUNT); i++) { if (PwmPeriphery::get_frequency(params[i].pin) != pwm_freq) { PwmPeriphery::set_frequency(params[i].pin, pwm_freq); diff --git a/Src/dronecan_application/modules/pwm/PWMModule.hpp b/Src/dronecan_application/modules/pwm/PWMModule.hpp index 36f2815..17f33ed 100644 --- a/Src/dronecan_application/modules/pwm/PWMModule.hpp +++ b/Src/dronecan_application/modules/pwm/PWMModule.hpp @@ -48,9 +48,10 @@ struct PwmChannelInfo { class PWMModule : public Module { public: - PWMModule() : Module(2) {} void init() override; + inline PWMModule() : Module(50) {} + protected: void update_params() override; void spin_once() override; @@ -58,8 +59,8 @@ class PWMModule : public Module { static std::array(PwmPin::PWM_AMOUNT)> params; private: - void (*callback)(CanardRxTransfer*); - void (*publish_state)(); + void (*callback)(CanardRxTransfer*) = {}; + void (*publish_state)() = {}; void update_pwm(); void apply_params(); @@ -78,8 +79,8 @@ class PWMModule : public Module { static CommandType pwm_cmd_type; static uint16_t ttl_cmd; - uint16_t status_pub_timeout_ms; - bool verbose; + uint16_t status_pub_timeout_ms = 0; + bool verbose = false; static bool publish_error; static Logger logger;