diff --git a/src/Logic/FlightController.cpp b/src/Logic/FlightController.cpp index f81c533..7ddc5e2 100644 --- a/src/Logic/FlightController.cpp +++ b/src/Logic/FlightController.cpp @@ -173,33 +173,24 @@ void FlightController::stopAllRotors() { void FlightController::setHeightControllerParams(float p, float i, float d) { if (_status == DeviceStatus::Idle) { - _heightController->Kp = p; - _heightController->Ki = i; - _heightController->Kd = d; - _heightController->save(); + _heightController->setParams({.p = p, .i = i, .d = d}); } } void FlightController::setYawControllerParams(float p, float i, float d) { if (_status == DeviceStatus::Idle) { - _yawController->Kp = p; - _yawController->Ki = i; - _yawController->Kd = d; - _heightController->save(); + _heightController->setParams({.p = p, .i = i, .d = d}); } } void FlightController::setPitchControllerParams(float p, float i, float d) { if (_status == DeviceStatus::Idle) { - _tailRotorController->Kp = p; - _tailRotorController->Ki = i; - _tailRotorController->Kd = d; - _heightController->save(); + _heightController->setParams({.p = p, .i = i, .d = d}); } } PidSettings FlightController::pidSettings() const { - PidSettings settings; + PidSettings settings{}; settings.flightController = {.p = _heightController->Kp, .i = _heightController->Ki, .d = _heightController->Kd}; settings.yawController = {.p = _yawController->Kp, .i = _yawController->Ki, .d = _yawController->Kd}; settings.pitchController = {.p = _tailRotorController->Kp, .i = _tailRotorController->Ki, .d = _tailRotorController->Kd}; diff --git a/src/Logic/SavedPidRegulator.hpp b/src/Logic/SavedPidRegulator.hpp index d175975..9ddef2d 100644 --- a/src/Logic/SavedPidRegulator.hpp +++ b/src/Logic/SavedPidRegulator.hpp @@ -26,13 +26,14 @@ public: this->Kp = params.p; this->Ki = params.i; this->Kd = params.d; + save(); } - std::shared_ptr getParams() { - std::shared_ptr params = std::make_unique(); - params->p = Kp; - params->i = Ki; - params->d = Kd; + PidParams getParams() { + PidParams params{}; + params.p = Kp; + params.i = Ki; + params.d = Kd; return params; } diff --git a/src/main.cpp b/src/main.cpp index b493106..d4cce67 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,11 +17,11 @@ void setup() { new MPU(new MPU6050(MPU6050_DEFAULT_ADDRESS, &i2c)), new Kalman2DFilter(10.f, 1.f, 1.8f), new BatteryController(BATTERY_DATA_PIN, BATTERY_DATA_SWITCH_PIN)), - new SavedPidRegulator(3.5f, 0.0015f, 0.01f, "HeightController"), // height - new SavedPidRegulator(2.f, 12.f, 0.f, "YawController"), // yaw + new SavedPidRegulator(3.5f, 0.0015f, 0.01f, "HeightControl"), // height + new SavedPidRegulator(2.f, 12.f, 0.f, "YawControl"), // yaw new BrushedMotor(1, 2, 3, 4, 1), new BrushedMotor(1, 2, 3, 4, 1), - new PIDController(0.6f, 3.5f, 0.03f, new BrushedMotor(1, 2, 3, 4, 3), "RollController"), // pitch + new PIDController(0.6f, 3.5f, 0.03f, new BrushedMotor(1, 2, 3, 4, 3), "RollControl"), // pitch true))); }