From 2ce600dc4d6552e9d770512553e49abe75e8064e Mon Sep 17 00:00:00 2001 From: chauyin Date: Wed, 21 May 2025 18:55:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=B8=AA=E7=B1=BB?= =?UTF-8?q?=E5=92=8C=E7=BB=93=E6=9E=84=E4=BD=93=E7=9A=84=E6=8B=B7=E8=B4=9D?= =?UTF-8?q?=E6=9E=84=E9=80=A0=E5=87=BD=E6=95=B0=E5=92=8C=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E8=BF=90=E7=AE=97=E7=AC=A6=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E5=A4=8D=E5=88=B6=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/App/Center/common_center.hpp | 4 ++++ Core/App/Common/can_mv.hpp | 6 +++++- Core/App/Common/df_player.hpp | 6 +++++- Core/App/Common/hc05.hpp | 6 +++++- Core/App/Common/key.hpp | 5 +++++ Core/App/Common/serial_port.hpp | 4 ++++ Core/App/Common/ultrasonic.hpp | 7 +++++++ Core/App/Helper/gpio_helper.hpp | 6 ++++++ Core/App/Helper/task_helper.hpp | 5 ++--- Core/App/config.hpp | 4 ++++ 10 files changed, 47 insertions(+), 6 deletions(-) diff --git a/Core/App/Center/common_center.hpp b/Core/App/Center/common_center.hpp index 8bb5357..459ab8b 100644 --- a/Core/App/Center/common_center.hpp +++ b/Core/App/Center/common_center.hpp @@ -9,6 +9,10 @@ class CommonCenter { public: + CommonCenter() = delete; + CommonCenter(const CommonCenter&) = delete; + CommonCenter& operator=(const CommonCenter&) = delete; + static Ultrasonic& GetUltrasonic() { static Ultrasonic* instance = nullptr; if (instance == nullptr) { diff --git a/Core/App/Common/can_mv.hpp b/Core/App/Common/can_mv.hpp index 4bd515a..635a876 100644 --- a/Core/App/Common/can_mv.hpp +++ b/Core/App/Common/can_mv.hpp @@ -10,7 +10,11 @@ public: explicit CanMv(UART_HandleTypeDef* uart) : serialPort(std::make_unique(uart, kBaudRate, kLength, kTimeout)) {} - ~CanMv() = default; + ~CanMv() = default; + CanMv(const CanMv&) = delete; + CanMv& operator=(const CanMv&) = delete; + CanMv(CanMv&&) = delete; + CanMv& operator=(CanMv&&) = delete; private: static constexpr uint32_t kBaudRate = 115200; diff --git a/Core/App/Common/df_player.hpp b/Core/App/Common/df_player.hpp index 5d78c39..0507a68 100644 --- a/Core/App/Common/df_player.hpp +++ b/Core/App/Common/df_player.hpp @@ -10,7 +10,11 @@ public: explicit DfPlayer(UART_HandleTypeDef* uart) : serialPort(std::make_unique(uart, kBaudRate, kLength, kTimeout)) {} - ~DfPlayer() = default; + ~DfPlayer() = default; + DfPlayer(const DfPlayer&) = delete; + DfPlayer& operator=(const DfPlayer&) = delete; + DfPlayer(DfPlayer&&) = delete; + DfPlayer& operator=(DfPlayer&&) = delete; void Play(); void Stop(); diff --git a/Core/App/Common/hc05.hpp b/Core/App/Common/hc05.hpp index 94157c8..e2ddaf8 100644 --- a/Core/App/Common/hc05.hpp +++ b/Core/App/Common/hc05.hpp @@ -32,7 +32,11 @@ public: explicit Hc05(UART_HandleTypeDef* uart) : serialPort(std::make_unique(uart, kBaudRate, kLength, kTimeout)) {} - ~Hc05() = default; + ~Hc05() = default; + Hc05(const Hc05&) = delete; + Hc05& operator=(const Hc05&) = delete; + Hc05(Hc05&&) = delete; + Hc05& operator=(Hc05&&) = delete; Response SendCommand() { Response data; diff --git a/Core/App/Common/key.hpp b/Core/App/Common/key.hpp index eec1a1c..b71a991 100644 --- a/Core/App/Common/key.hpp +++ b/Core/App/Common/key.hpp @@ -16,6 +16,11 @@ public: explicit Key(GpioHelper::Gpio gpio, GPIO_PinState normalStatus) : gpio(gpio), normalStatus(normalStatus) { GpioHelper::GpioInit(gpio, GPIO_MODE_INPUT, normalStatus ? GPIO_PULLUP : GPIO_PULLDOWN); } + ~Key() = default; + Key(const Key&) = delete; + Key& operator=(const Key&) = delete; + Key(Key&&) = delete; + Key& operator=(Key&&) = delete; bool IsPressed() { auto reading = gpio.Read(); diff --git a/Core/App/Common/serial_port.hpp b/Core/App/Common/serial_port.hpp index 7896b54..25ac500 100644 --- a/Core/App/Common/serial_port.hpp +++ b/Core/App/Common/serial_port.hpp @@ -25,6 +25,10 @@ public: } ~SerialPort() = default; + SerialPort(const SerialPort&) = delete; + SerialPort& operator=(const SerialPort&) = delete; + SerialPort(SerialPort&&) = delete; + SerialPort& operator=(SerialPort&&) = delete; void SetBaudRate(uint32_t baudRate) { HAL_UART_DeInit(handle); diff --git a/Core/App/Common/ultrasonic.hpp b/Core/App/Common/ultrasonic.hpp index 3ff3af9..7ca3e45 100644 --- a/Core/App/Common/ultrasonic.hpp +++ b/Core/App/Common/ultrasonic.hpp @@ -19,6 +19,12 @@ public: captureFlag = GetCaptureFlag(channel); } + ~Ultrasonic() = default; + Ultrasonic(const Ultrasonic&) = delete; + Ultrasonic& operator=(const Ultrasonic&) = delete; + Ultrasonic(Ultrasonic&&) = delete; + Ultrasonic& operator=(Ultrasonic&&) = delete; + double GetDistance(uint32_t time = 1) { double distance = 0; for (uint32_t cnt = 0; cnt < time; ++cnt) { @@ -46,6 +52,7 @@ private: double MeasureEchoTime() { timer->Instance->CNT = 0; uint32_t data[2]; + __HAL_TIM_CLEAR_FLAG(timer, captureFlag); HAL_TIM_IC_Start(timer, channel); try { for (auto& value : data) { diff --git a/Core/App/Helper/gpio_helper.hpp b/Core/App/Helper/gpio_helper.hpp index 8b5e7d5..4616d0e 100644 --- a/Core/App/Helper/gpio_helper.hpp +++ b/Core/App/Helper/gpio_helper.hpp @@ -6,6 +6,12 @@ class GpioHelper { public: + GpioHelper() = delete; + GpioHelper(const GpioHelper&) = delete; + GpioHelper& operator=(const GpioHelper&) = delete; + GpioHelper(GpioHelper&&) = delete; + GpioHelper& operator=(GpioHelper&&) = delete; + struct Gpio { GPIO_TypeDef* port; uint16_t pin; diff --git a/Core/App/Helper/task_helper.hpp b/Core/App/Helper/task_helper.hpp index 25d5794..d9d295d 100644 --- a/Core/App/Helper/task_helper.hpp +++ b/Core/App/Helper/task_helper.hpp @@ -4,8 +4,7 @@ #include #include -class TaskHelper { -public: +namespace TaskHelper { template static void WaitFor(Func func, uint32_t timeoutMilliseconds) { auto start = HAL_GetTick(); @@ -16,4 +15,4 @@ public: } } } -}; +}; // namespace TaskHelper diff --git a/Core/App/config.hpp b/Core/App/config.hpp index 89a1a13..9570926 100644 --- a/Core/App/config.hpp +++ b/Core/App/config.hpp @@ -6,6 +6,10 @@ #include "./Helper/gpio_helper.hpp" struct Config { + Config() = delete; + Config(const Config&) = delete; + Config& operator=(const Config&) = delete; + static inline struct { GpioHelper::Gpio trigger; TIM_HandleTypeDef* timer;