//FIXME not the correct place static void send_filter_status(struct transport_tx *trans, struct link_device *dev) { uint8_t mde = 3; if (ahrs.status == AHRS_UNINIT) mde = 2; if (ahrs_timeout_counter > 10) mde = 5; uint16_t val = 0; pprz_msg_send_STATE_FILTER_STATUS(trans, dev, AC_ID, &mde, &val); }
static void send_status(struct transport_tx *trans, struct link_device *dev) { uint16_t contrast = abs(infrared.roll) + abs(infrared.pitch) + abs(infrared.top); uint8_t mde = 3; uint8_t id = INFRARED_FILTER_ID; if (contrast < 50) { mde = 7; } pprz_msg_send_STATE_FILTER_STATUS(trans, dev, AC_ID, &id, &mde, &contrast); }
static void send_filter_status(struct transport_tx *trans, struct link_device *dev) { uint8_t mde = 3; if (!DefaultAhrsImpl.is_aligned) { mde = 2; } if (navdata.imu_lost) { mde = 5; } uint16_t val = navdata.lost_imu_frames; pprz_msg_send_STATE_FILTER_STATUS(trans, dev, AC_ID, &mde, &val); }
static void send_filter_status(struct transport_tx *trans, struct link_device *dev) { uint8_t mde = 3; uint16_t val = 0; if (!ahrs_dcm.is_aligned) { mde = 2; } uint32_t t_diff = get_sys_time_usec() - ahrs_dcm_last_stamp; /* set lost if no new gyro measurements for 50ms */ if (t_diff > 50000) { mde = 5; } pprz_msg_send_STATE_FILTER_STATUS(trans, dev, AC_ID, &ahrs_dcm_id, &mde, &val); }
static void send_filter_status(struct transport_tx *trans, struct link_device *dev) { uint8_t mde = 3; // OK uint16_t val = 0; if (!ins_mekf_wind.is_aligned) { mde = 2; // ALIGN } else if (!ins_mekf_wind.baro_initialized || !ins_mekf_wind.gps_initialized) { mde = 1; // INIT } uint32_t t_diff = get_sys_time_usec() - last_imu_stamp; /* set lost if no new gyro measurements for 50ms */ if (t_diff > 50000) { mde = 5; // IMU_LOST } uint8_t id = INS_MEKF_WIND_FILTER_ID; pprz_msg_send_STATE_FILTER_STATUS(trans, dev, AC_ID, &id, &mde, &val); }