/** * Event handling for Vectornav */ void ins_vectornav_event(void) { // receive data vn200_event(&(ins_vn.vn_packet)); // read message if (ins_vn.vn_packet.msg_available) { ins_vectornav_read_message(); ins_vn.vn_packet.msg_available = FALSE; } }
/** * Event handling for Vectornav */ void ahrs_vectornav_event(void) { // receive data vn200_event(&(ahrs_vn.vn_packet)); // read message if (ahrs_vn.vn_packet.msg_available) { vn200_read_message(&(ahrs_vn.vn_packet),&(ahrs_vn.vn_data)); ahrs_vn.vn_packet.msg_available = false; if (ahrs_vectornav_is_enabled()) { ahrs_vectornav_propagate(); } // send ABI messages uint32_t now_ts = get_sys_time_usec(); // in fixed point for sending as ABI and telemetry msgs RATES_BFP_OF_REAL(ahrs_vn.gyro_i, ahrs_vn.vn_data.gyro); AbiSendMsgIMU_GYRO_INT32(IMU_VECTORNAV_ID, now_ts, &ahrs_vn.gyro_i); ACCELS_BFP_OF_REAL(ahrs_vn.accel_i, ahrs_vn.vn_data.accel); AbiSendMsgIMU_ACCEL_INT32(IMU_VECTORNAV_ID, now_ts, &ahrs_vn.accel_i); } }