#include #include #if AP_COMPASS_ENABLED && HAL_LOGGING_ENABLED #include "AP_Compass.h" #include void Compass::Write_Compass_instance(const uint64_t time_us, const uint8_t mag_instance) { const Vector3f &mag_field = get_field(mag_instance); const Vector3f &mag_offsets = get_offsets(mag_instance); const Vector3f &mag_motor_offsets = get_motor_offsets(mag_instance); const struct log_MAG pkt{ LOG_PACKET_HEADER_INIT(LOG_MAG_MSG), time_us : time_us, instance : mag_instance, mag_x : (int16_t)mag_field.x, mag_y : (int16_t)mag_field.y, mag_z : (int16_t)mag_field.z, offset_x : (int16_t)mag_offsets.x, offset_y : (int16_t)mag_offsets.y, offset_z : (int16_t)mag_offsets.z, motor_offset_x : (int16_t)mag_motor_offsets.x, motor_offset_y : (int16_t)mag_motor_offsets.y, motor_offset_z : (int16_t)mag_motor_offsets.z, health : (uint8_t)healthy(mag_instance), SUS : last_update_usec(mag_instance) }; AP::logger().WriteBlock(&pkt, sizeof(pkt)); } // Write a Compass packet void Compass::Write_Compass() { const uint64_t time_us = AP_HAL::micros64(); for (uint8_t i=0; i