diff --git a/src/components/ideal/angular_velocity_observer.cpp b/src/components/ideal/angular_velocity_observer.cpp index 167e48e16..48b076140 100644 --- a/src/components/ideal/angular_velocity_observer.cpp +++ b/src/components/ideal/angular_velocity_observer.cpp @@ -7,12 +7,12 @@ #include -AngularVelocityObserver::AngularVelocityObserver(const int prescaler, ClockGenerator* clock_generator, Sensor& sensor_base, const Attitude* attitude) +AngularVelocityObserver::AngularVelocityObserver(const int prescaler, ClockGenerator* clock_generator, Sensor& sensor_base, const Attitude& attitude) : Component(prescaler, clock_generator), Sensor(sensor_base), attitude_(attitude) {} void AngularVelocityObserver::MainRoutine(const int time_count) { UNUSED(time_count); - angular_velocity_b_rad_s_ = Measure(attitude_->GetAngularVelocity_b_rad_s()); + angular_velocity_b_rad_s_ = Measure(attitude_.GetAngularVelocity_b_rad_s()); } std::string AngularVelocityObserver::GetLogHeader() const { @@ -33,7 +33,7 @@ std::string AngularVelocityObserver::GetLogValue() const { } AngularVelocityObserver InitializeAngularVelocityObserver(ClockGenerator* clock_generator, const std::string file_name, double component_step_time_s, - const Attitude* attitude) { + const Attitude& attitude) { IniAccess ini_file(file_name); int prescaler = ini_file.ReadInt("COMPONENT_BASE", "prescaler"); diff --git a/src/components/ideal/angular_velocity_observer.hpp b/src/components/ideal/angular_velocity_observer.hpp index 1aa0905e0..c09801a67 100644 --- a/src/components/ideal/angular_velocity_observer.hpp +++ b/src/components/ideal/angular_velocity_observer.hpp @@ -26,7 +26,7 @@ class AngularVelocityObserver : public Component, public Sensor<3>, public ILogg * @param [in] sensor_base: Sensor base information * @param [in] dynamics: Dynamics information */ - AngularVelocityObserver(const int prescaler, ClockGenerator* clock_generator, Sensor& sensor_base, const Attitude* attitude); + AngularVelocityObserver(const int prescaler, ClockGenerator* clock_generator, Sensor& sensor_base, const Attitude& attitude); /** * @fn ~AngularVelocityObserver * @brief Destructor @@ -57,7 +57,7 @@ class AngularVelocityObserver : public Component, public Sensor<3>, public ILogg protected: libra::Vector<3> angular_velocity_b_rad_s_{0.0}; //!< Observed angular velocity [rad/s] - const Attitude* attitude_; //!< Dynamics information + const Attitude& attitude_; //!< Dynamics information }; /** @@ -69,6 +69,6 @@ class AngularVelocityObserver : public Component, public Sensor<3>, public ILogg * @param [in] dynamics: Dynamics information */ AngularVelocityObserver InitializeAngularVelocityObserver(ClockGenerator* clock_generator, const std::string file_name, double component_step_time_s, - const Attitude* attitude); + const Attitude& attitude); #endif // S2E_COMPONENTS_IDEAL_ANGULAR_VELOCITY_OBSERVER_HPP_ diff --git a/src/components/ideal/attitude_observer.cpp b/src/components/ideal/attitude_observer.cpp index 029f38688..a172a281b 100644 --- a/src/components/ideal/attitude_observer.cpp +++ b/src/components/ideal/attitude_observer.cpp @@ -9,7 +9,7 @@ #include AttitudeObserver::AttitudeObserver(const int prescaler, ClockGenerator* clock_generator, const double standard_deviation_rad, - const Attitude* attitude) + const Attitude& attitude) : Component(prescaler, clock_generator), angle_noise_(0.0, standard_deviation_rad), attitude_(attitude) { direction_noise_.SetParameters(0.0, 1.0); } @@ -27,7 +27,7 @@ void AttitudeObserver::MainRoutine(const int time_count) { double error_angle_rad = angle_noise_; libra::Quaternion error_quaternion(random_direction, error_angle_rad); - observed_quaternion_i2b_ = error_quaternion * attitude_->GetQuaternion_i2b(); + observed_quaternion_i2b_ = error_quaternion * attitude_.GetQuaternion_i2b(); } std::string AttitudeObserver::GetLogHeader() const { @@ -47,7 +47,7 @@ std::string AttitudeObserver::GetLogValue() const { return str_tmp; } -AttitudeObserver InitializeAttitudeObserver(ClockGenerator* clock_generator, const std::string file_name, const Attitude* attitude) { +AttitudeObserver InitializeAttitudeObserver(ClockGenerator* clock_generator, const std::string file_name, const Attitude& attitude) { // General IniAccess ini_file(file_name); diff --git a/src/components/ideal/attitude_observer.hpp b/src/components/ideal/attitude_observer.hpp index 89f685729..ce7c5d9e4 100644 --- a/src/components/ideal/attitude_observer.hpp +++ b/src/components/ideal/attitude_observer.hpp @@ -26,7 +26,7 @@ class AttitudeObserver : public Component, public ILoggable { * @param [in] clock_generator: Clock generator * @param [in] attitude: Attitude information */ - AttitudeObserver(const int prescaler, ClockGenerator* clock_generator, const double standard_deviation_rad, const Attitude* attitude); + AttitudeObserver(const int prescaler, ClockGenerator* clock_generator, const double standard_deviation_rad, const Attitude& attitude); /** * @fn ~AttitudeObserver @@ -65,7 +65,7 @@ class AttitudeObserver : public Component, public ILoggable { libra::NormalRand angle_noise_; //!< Normal random for magnitude noise libra::NormalRand direction_noise_; //!< Normal random for direction noise - const Attitude* attitude_; //!< Attitude information + const Attitude& attitude_; //!< Attitude information }; /** @@ -75,6 +75,6 @@ class AttitudeObserver : public Component, public ILoggable { * @param [in] file_name: Path to the initialize file * @param [in] attitude: Attitude information */ -AttitudeObserver InitializeAttitudeObserver(ClockGenerator* clock_generator, const std::string file_name, const Attitude* attitude); +AttitudeObserver InitializeAttitudeObserver(ClockGenerator* clock_generator, const std::string file_name, const Attitude& attitude); #endif // S2E_COMPONENTS_IDEAL_ATTITUDE_OBSERVER_HPP_ diff --git a/src/simulation_sample/spacecraft/sample_components.cpp b/src/simulation_sample/spacecraft/sample_components.cpp index 31d4eaa3f..b7ad5ec67 100644 --- a/src/simulation_sample/spacecraft/sample_components.cpp +++ b/src/simulation_sample/spacecraft/sample_components.cpp @@ -92,12 +92,12 @@ SampleComponents::SampleComponents(const Dynamics* dynamics, Structure* structur file_name = iniAccess.ReadString("COMPONENT_FILES", "angular_velocity_observer_file"); configuration_->main_logger_->CopyFileToLogDirectory(file_name); angular_velocity_observer_ = new AngularVelocityObserver(InitializeAngularVelocityObserver( - clock_generator, file_name, global_environment_->GetSimulationTime().GetComponentStepTime_s(), &(dynamics_->GetAttitude()))); + clock_generator, file_name, global_environment_->GetSimulationTime().GetComponentStepTime_s(),dynamics_->GetAttitude())); // Attitude Observer file_name = iniAccess.ReadString("COMPONENT_FILES", "attitude_observer_file"); configuration_->main_logger_->CopyFileToLogDirectory(file_name); - attitude_observer_ = new AttitudeObserver(InitializeAttitudeObserver(clock_generator, file_name, &(dynamics_->GetAttitude()))); + attitude_observer_ = new AttitudeObserver(InitializeAttitudeObserver(clock_generator, file_name, dynamics_->GetAttitude())); // Antenna file_name = iniAccess.ReadString("COMPONENT_FILES", "antenna_file");