22#ifndef APPS_GNC_INERTIAL_NAV_MAG_UPDATE_APP_H
23#define APPS_GNC_INERTIAL_NAV_MAG_UPDATE_APP_H
187 int16
command(uint16
apid, uint8* buffer, uint16 size)
override;
194 int16
start()
override;
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition appmacros.h:27
#define START_PARAMS
Definition appmacros.h:42
#define END_OUTPUTS
Definition appmacros.h:33
#define END_PARAMS
Definition appmacros.h:47
#define START_OUTPUTS
Definition appmacros.h:28
#define END_INPUTS
Definition appmacros.h:40
#define START_INPUTS
Definition appmacros.h:35
Standard vector class derived from Matrix.
Definition CartesianVector.hpp:39
Quaternion class for attitude representation.
Definition Quaternion.h:68
Wrapper to manage and convert time as timespce.
Definition Time.h:53
App(FlightExecutive &executive, const char *name, uint16 apid, uint8 instance=0)
Executive-based constructor for the task.
Definition App.cpp:21
uint16 apid()
Get the apid for this app.
Definition App.h:105
Generic, templated EKF measurement update class.
Definition EkfMeasurementUpdate.hpp:49
Executive derivation specifically to run flight systems.
Definition FlightExecutive.h:46
int16 deactivate() override
Deactivate the app. The app will not step when deactivated.
Definition MagUpdate.cpp:185
inertial_nav::StateVector _state_input_array
Temporary variables for the array input/outputs passed into the EkfMeasurementUpdate object.
Definition MagUpdate.h:209
int16 start() override
Definition MagUpdate.cpp:36
int16 activate() override
Activate the app. The app will step when active.
Definition MagUpdate.cpp:178
inertial_nav::MagMeasVector _measurement_array
Temporary variables for the array input/outputs passed into the EkfMeasurementUpdate object.
Definition MagUpdate.h:213
PointingVectorMeasurements< inertial_nav::STATE_SIZE > _measurements
Reference variable to the internal Measurements.
Definition MagUpdate.h:198
tlm_gnc_mag_update_state _tlm_a_posteriori_state
Packet to hold state after measurement incorporation.
Definition MagUpdate.h:222
MagUpdate(FlightExecutive &executive)
Definition MagUpdate.cpp:24
int16 command(uint16 apid, uint8 *buffer, uint16 size) override
Process commands issued to the app.
Definition MagUpdate.cpp:200
clockwerk::CartesianVector< 3 > _mag_meas_vec__B
Definition MagUpdate.h:216
inertial_nav::MagMeasVector _residual
Definition MagUpdate.h:213
virtual ~MagUpdate()
Definition MagUpdate.h:172
inertial_nav::MagObsVector _state_observer_array
Temporary variables for the array input/outputs passed into the EkfMeasurementUpdate object.
Definition MagUpdate.h:211
std::array< floating_point, 4 > _dummy4
Definition MagUpdate.h:205
clockwerk::Quaternion _unit_quat
Temporary variable for unitizing a quaternion.
Definition MagUpdate.h:219
EkfMeasurementUpdate< inertial_nav::STATE_SIZE, POINTING_MEASUREMENT_MEASUREMENT_VECTOR_ELEMENTS, POINTING_MEASUREMENT_OBSERVER_VECTOR_ELEMENTS > _measUpdate
Reference variable to the internal EkfMeasurementsUpdate.
Definition MagUpdate.h:201
inertial_nav::StateVector _state_output_array
Definition MagUpdate.h:209
int16 execute() override
Definition MagUpdate.cpp:47
inertial_nav::MagObsVector _dummyObs
Definition MagUpdate.h:206
clockwerk::Time _repeat_check_time
Variables to verify we are not processing stale measurements.
Definition MagUpdate.h:225
clockwerk::CartesianVector< 3 > _expected_mag_vec__pI
Internal variables for the transformed measurements.
Definition MagUpdate.h:216
clockwerk::CartesianVector< 3 > _repeat_check_meas
Definition MagUpdate.h:226
std::array< floating_point, 3 > _dummy3
Dummy temporary array for swapping between std::array and clockwerk::CartesianVector.
Definition MagUpdate.h:204
inertial_nav::MagMeasVector getResidual()
Getter function to grab the internal residual.
Definition MagUpdate.h:191
Definition PointingVectorMeasurements.hpp:61
#define CartesianVector3
Definition mathmacros.h:43
#define Matrix16
Definition mathmacros.h:32
Definition CircularBuffer.hpp:28
std::array< floating_point, MAG_MEAS_SIZE > MagMeasVector
Definition InertialNavigationDefinition.hpp:304
std::array< floating_point, STATE_SIZE > StateVector
Definition InertialNavigationDefinition.hpp:298
std::array< floating_point, MAG_OBSERVER_SIZE > MagObsVector
Definition InertialNavigationDefinition.hpp:303
constexpr uint32 STATE_SIZE
Definition InertialNavigationDefinition.hpp:98
Definition DeadReckon.cpp:20
const uint32 POINTING_MEASUREMENT_MEASUREMENT_VECTOR_ELEMENTS(3)
const uint32 POINTING_MEASUREMENT_OBSERVER_VECTOR_ELEMENTS(3)
Definition tlm_InertialNavigationMagnetometerMeasurementUpdate.h:52
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > pos_B_pI__pI
Definition MagUpdate.h:137
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > post_residual
Definition MagUpdate.h:167
clockwerk::DataIO< clockwerk::Matrix< 16, 16 > > state_cov
Definition MagUpdate.h:159
clockwerk::DataIO< clockwerk::Time > state_output_time_stamp
Definition MagUpdate.h:163
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > accelBias_B_pI__pI
Definition MagUpdate.h:155
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > vel_B_pI__pI
Definition MagUpdate.h:141
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > pre_residual
Definition MagUpdate.h:165
clockwerk::DataIO< clockwerk::Quaternion > quat_B_pI
Definition MagUpdate.h:145
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > gyroBias_B_pI__pI
Definition MagUpdate.h:150
clockwerk::DataIO< clockwerk::Time > time_diff_stale_bound
Definition MagUpdate.h:64
clockwerk::DataIO< clockwerk::Quaternion > quat_MAG_B
Definition MagUpdate.h:72
clockwerk::DataIO< clockwerk::CartesianVector< 3 > > mag_meas_noise
Definition MagUpdate.h:69