Line data Source code
1 : #include <AP_Logger/AP_Logger_config.h> 2 : 3 : #if HAL_LOGGING_ENABLED 4 : 5 : #include "AP_Baro.h" 6 : 7 : #include <AP_Logger/AP_Logger.h> 8 : 9 2949525 : void AP_Baro::Write_Baro_instance(uint64_t time_us, uint8_t baro_instance) 10 : { 11 2949525 : const struct log_BARO pkt{ 12 : LOG_PACKET_HEADER_INIT(LOG_BARO_MSG), 13 : time_us : time_us, 14 : instance : baro_instance, 15 2949525 : altitude : get_altitude(baro_instance), 16 2949525 : altitude_AMSL : get_altitude_AMSL(baro_instance), 17 2949525 : pressure : get_pressure(baro_instance), 18 5899050 : temperature : (int16_t)(get_temperature(baro_instance) * 100 + 0.5f), 19 2949525 : climbrate : get_climb_rate(), 20 2949525 : sample_time_ms: get_last_update(baro_instance), 21 2949525 : drift_offset : get_baro_drift_offset(), 22 2949525 : ground_temp : get_ground_temperature(), 23 5899050 : healthy : (uint8_t)healthy(baro_instance), 24 : #if (HAL_BARO_WIND_COMP_ENABLED || AP_BARO_THST_COMP_ENABLED) 25 2949525 : corrected_pressure : get_corrected_pressure(baro_instance), 26 : #else 27 : corrected_pressure : get_pressure(baro_instance), 28 : #endif 29 2949525 : }; 30 2949525 : AP::logger().WriteBlock(&pkt, sizeof(pkt)); 31 : #if HAL_BARO_WIND_COMP_ENABLED 32 2949525 : if (!sensors[baro_instance].wind_coeff.enable) { 33 2948449 : return; 34 : } 35 : 36 1076 : const struct log_BARD pkt2{ 37 : LOG_PACKET_HEADER_INIT(LOG_BARD_MSG), 38 : time_us : time_us, 39 : instance : baro_instance, 40 2152 : dyn_pressure_x: get_dynamic_pressure(baro_instance).x, 41 2152 : dyn_pressure_y: get_dynamic_pressure(baro_instance).y, 42 2152 : dyn_pressure_z: get_dynamic_pressure(baro_instance).z, 43 1076 : }; 44 1076 : AP::logger().WriteBlock(&pkt2, sizeof(pkt2)); 45 : #endif 46 : } 47 : 48 : // Write a BARO packet 49 1467414 : void AP_Baro::Write_Baro(void) 50 : { 51 1467414 : const uint64_t time_us = AP_HAL::micros64(); 52 : 53 4416939 : for (uint8_t i=0; i< _num_sensors; i++) { 54 2949525 : Write_Baro_instance(time_us, i); 55 : } 56 1467414 : } 57 : 58 : #endif