131 if ((message.sysid != vehicle->
id()) || (message.compid != vehicle->
compId())) {
135 if (_receivingAttitudeQuaternion) {
139 mavlink_attitude_t attitude{};
140 mavlink_msg_attitude_decode(&message, &attitude);
142 _handleAttitudeWorker(attitude.roll, attitude.pitch, attitude.yaw);
163 if ((message.sysid != vehicle->
id()) || (message.compid != vehicle->
compId())) {
167 _receivingAttitudeQuaternion =
true;
169 mavlink_attitude_quaternion_t attitudeQuaternion{};
170 mavlink_msg_attitude_quaternion_decode(&message, &attitudeQuaternion);
172 QQuaternion quat(attitudeQuaternion.q1, attitudeQuaternion.q2, attitudeQuaternion.q3, attitudeQuaternion.q4);
173 QVector3D rates(attitudeQuaternion.rollspeed, attitudeQuaternion.pitchspeed, attitudeQuaternion.yawspeed);
174 QQuaternion repr_offset(attitudeQuaternion.repr_offset_q[0], attitudeQuaternion.repr_offset_q[1], attitudeQuaternion.repr_offset_q[2], attitudeQuaternion.repr_offset_q[3]);
177 if (repr_offset.length() >= 0.5f) {
179 rates = repr_offset * rates;
182 float attRoll, attPitch, attYaw;
183 float q[] = { quat.scalar(), quat.x(), quat.y(), quat.z() };
184 mavlink_quaternion_to_euler(q, &attRoll, &attPitch, &attYaw);
186 _handleAttitudeWorker(attRoll, attPitch, attYaw);