QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
VehicleRPMFactGroup.cc
Go to the documentation of this file.
2
3#include "MAVLinkLib.h"
4#include "Vehicle.h"
5
7 : FactGroup(1000, QStringLiteral(":/json/Vehicle/RPMFact.json"), parent)
8{
9 _addFact(&_rpm1Fact);
10 _addFact(&_rpm2Fact);
11 _addFact(&_rpm3Fact);
12 _addFact(&_rpm4Fact);
13 _addFact(&_rpmSensor1Fact);
14 _addFact(&_rpmSensor2Fact);
15
16 _rpm1Fact.setRawValue(qQNaN());
17 _rpm2Fact.setRawValue(qQNaN());
18 _rpm3Fact.setRawValue(qQNaN());
19 _rpm4Fact.setRawValue(qQNaN());
20 _rpmSensor1Fact.setRawValue(qQNaN());
21 _rpmSensor2Fact.setRawValue(qQNaN());
22}
23
25{
26 Q_UNUSED(vehicle);
27
28 switch (message.msgid) {
29 case MAVLINK_MSG_ID_RAW_RPM:
30 _handleRawRPM(message);
31 break;
32 case MAVLINK_MSG_ID_RPM:
33 _handleRPMSensor(message);
34 break;
35 default:
36 break;
37 }
38}
39
40void VehicleRPMFactGroup::_handleRawRPM(const mavlink_message_t &message)
41{
42 mavlink_raw_rpm_t raw_rpm{};
43 mavlink_msg_raw_rpm_decode(&message, &raw_rpm);
44 switch (raw_rpm.index) {
45 case 0:
46 rpm1()->setRawValue(raw_rpm.frequency);
47 break;
48 case 1:
49 rpm2()->setRawValue(raw_rpm.frequency);
50 break;
51 case 2:
52 rpm3()->setRawValue(raw_rpm.frequency);
53 break;
54 case 3:
55 rpm4()->setRawValue(raw_rpm.frequency);
56 break;
57 default:
58 break;
59 }
60
62}
63
64void VehicleRPMFactGroup::_handleRPMSensor(const mavlink_message_t &message)
65{
66 mavlink_rpm_t rpm{};
67 mavlink_msg_rpm_decode(&message, &rpm);
68
69 _rpmSensor1Fact.setRawValue(rpm.rpm1);
70 _rpmSensor2Fact.setRawValue(rpm.rpm2);
71
73}
struct __mavlink_message mavlink_message_t
Used to group Facts together into an object hierarachy.
Definition FactGroup.h:16
void _setTelemetryAvailable(bool telemetryAvailable)
Definition FactGroup.cc:175
void _addFact(Fact *fact, const QString &name)
Definition FactGroup.cc:116
void setRawValue(const QVariant &value)
Definition Fact.cc:135
void handleMessage(Vehicle *vehicle, const mavlink_message_t &message) final
Allows a FactGroup to parse incoming messages and fill in values.
VehicleRPMFactGroup(QObject *parent=nullptr)