diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 17409a6..edf10e4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,4 @@ -files: ^main.cpp|^static_scheduling|^static_scheduling_with_event|^TESTS +files: ^main.cpp|^static_scheduling|^static_scheduling_with_event|^TESTS|^multi_tasking repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 @@ -22,6 +22,5 @@ repos: - id: cppcheck name: cppcheck require_serial: true - entry: cppcheck --enable=all --suppress=missingInclude --inline-suppr -i mbed-os --std=c++14 --error-exitcode=1 - # --suppress=missingIncludeSystem + entry: cppcheck --enable=all --suppress=missingInclude --suppress=missingIncludeSystem --suppress=unusedFunction --inline-suppr -i mbed-os --std=c++14 --error-exitcode=1 language: system diff --git a/multi_tasking/gear_device.cpp b/multi_tasking/gear_device.cpp index 2d58274..3377c3b 100644 --- a/multi_tasking/gear_device.cpp +++ b/multi_tasking/gear_device.cpp @@ -38,17 +38,12 @@ namespace multi_tasking { - GearDevice::GearDevice() { - disco::Joystick::getInstance().setUpCallback( - callback(this, &GearDevice::onUp)); - disco::Joystick::getInstance().setDownCallback( - callback(this, &GearDevice::onDown)); + disco::Joystick::getInstance().setUpCallback(callback(this, &GearDevice::onUp)); + disco::Joystick::getInstance().setDownCallback(callback(this, &GearDevice::onDown)); } -uint8_t GearDevice::getCurrentGear() { - return core_util_atomic_load_u8(&_currentGear); -} +uint8_t GearDevice::getCurrentGear() { return core_util_atomic_load_u8(&_currentGear); } uint8_t GearDevice::getCurrentGearSize() const { return bike_computer::kMaxGearSize - core_util_atomic_load_u8(&_currentGear); @@ -66,4 +61,4 @@ void GearDevice::onDown() { } } -} // namespace static_scheduling +} // namespace multi_tasking diff --git a/multi_tasking/gear_device.hpp b/multi_tasking/gear_device.hpp index 156be30..d21578f 100644 --- a/multi_tasking/gear_device.hpp +++ b/multi_tasking/gear_device.hpp @@ -33,7 +33,7 @@ namespace multi_tasking { class GearDevice { public: - explicit GearDevice(); // NOLINT(runtime/references) + GearDevice(); // NOLINT(runtime/references) // make the class non copyable GearDevice(GearDevice&) = delete; @@ -51,4 +51,4 @@ class GearDevice { volatile uint8_t _currentGear = bike_computer::kMinGear; }; -} // namespace static_scheduling +} // namespace multi_tasking diff --git a/multi_tasking/pedal_device.cpp b/multi_tasking/pedal_device.cpp index 350d0ac..c4c5214 100644 --- a/multi_tasking/pedal_device.cpp +++ b/multi_tasking/pedal_device.cpp @@ -1,12 +1,26 @@ +// Copyright 2022 Haute école d'ingénierie et d'architecture de Fribourg +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + /**************************************************************************** -* @file pedal_device.cpp -* @author Rémi Heredero -* @author Yann Sierro -* -* @brief Pedal Device implementation (static scheduling) -* @date 2024-11-17 -* @version 1.1.0 -****************************************************************************/ + * @file pedal_device.cpp + * @author Rémi Heredero + * @author Yann Sierro + * + * @brief Pedal Device implementation (static scheduling) + * @date 2024-11-17 + * @version 1.1.0 + ****************************************************************************/ #include "pedal_device.hpp" @@ -22,41 +36,34 @@ namespace multi_tasking { - PedalDevice::PedalDevice() { - disco::Joystick::getInstance().setLeftCallback( - callback(this, &PedalDevice::onLeft) - ); - disco::Joystick::getInstance().setRightCallback( - callback(this, &PedalDevice::onRight) - ); - } - - - std::chrono::milliseconds PedalDevice::getCurrentRotationTime() { - uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); - return bike_computer::kMinPedalRotationTime + currentStep * bike_computer::kDeltaPedalRotationTime; - } - - void PedalDevice::increaseRotationSpeed() { - uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); - if (currentStep > 0) { - core_util_atomic_decr_u32(&_currentStep, 1); - } - } - - void PedalDevice::decreaseRotationSpeed() { - uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); - if (currentStep < bike_computer::kNbrOfSteps) { - core_util_atomic_incr_u32(&_currentStep, 1); - } - } - - void PedalDevice::onLeft() { - decreaseRotationSpeed(); - } - - void PedalDevice::onRight() { - increaseRotationSpeed(); - } - +PedalDevice::PedalDevice() { + disco::Joystick::getInstance().setLeftCallback(callback(this, &PedalDevice::onLeft)); + disco::Joystick::getInstance().setRightCallback( + callback(this, &PedalDevice::onRight)); } + +std::chrono::milliseconds PedalDevice::getCurrentRotationTime() { + uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); + return bike_computer::kMinPedalRotationTime + + currentStep * bike_computer::kDeltaPedalRotationTime; +} + +void PedalDevice::increaseRotationSpeed() { + uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); + if (currentStep > 0) { + core_util_atomic_decr_u32(&_currentStep, 1); + } +} + +void PedalDevice::decreaseRotationSpeed() { + uint32_t currentStep = core_util_atomic_load_u32(&_currentStep); + if (currentStep < bike_computer::kNbrOfSteps) { + core_util_atomic_incr_u32(&_currentStep, 1); + } +} + +void PedalDevice::onLeft() { decreaseRotationSpeed(); } + +void PedalDevice::onRight() { increaseRotationSpeed(); } + +} // namespace multi_tasking diff --git a/multi_tasking/pedal_device.hpp b/multi_tasking/pedal_device.hpp index 7bb60cd..60ab832 100644 --- a/multi_tasking/pedal_device.hpp +++ b/multi_tasking/pedal_device.hpp @@ -51,10 +51,9 @@ class PedalDevice { // data members volatile uint32_t _currentStep = static_cast( - ( - bike_computer::kInitialPedalRotationTime - bike_computer::kMinPedalRotationTime - ).count() / bike_computer::kDeltaPedalRotationTime.count() - ); + (bike_computer::kInitialPedalRotationTime - bike_computer::kMinPedalRotationTime) + .count() / + bike_computer::kDeltaPedalRotationTime.count()); }; -} // namespace static_scheduling +} // namespace multi_tasking diff --git a/multi_tasking/reset_device.cpp b/multi_tasking/reset_device.cpp index 0d055ef..f4a1fdb 100644 --- a/multi_tasking/reset_device.cpp +++ b/multi_tasking/reset_device.cpp @@ -1,3 +1,17 @@ +// Copyright 2022 Haute école d'ingénierie et d'architecture de Fribourg +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + /**************************************************************************** * @file reset_device.cpp * @author Rémi Heredero diff --git a/multi_tasking/reset_device.hpp b/multi_tasking/reset_device.hpp index 0df096f..c0a57a5 100644 --- a/multi_tasking/reset_device.hpp +++ b/multi_tasking/reset_device.hpp @@ -39,10 +39,9 @@ class ResetDevice { ResetDevice& operator=(ResetDevice&) = delete; private: - // data members // instance representing the reset button InterruptIn _resetButton; }; -} // namespace static_scheduling +} // namespace multi_tasking