QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
VehicleEFIFactGroup.cc
Go to the documentation of this file.
2
3#include "MAVLinkLib.h"
4#include "Vehicle.h"
5
7 : FactGroup(1000, QStringLiteral(":/json/Vehicle/EFIFact.json"), parent)
8{
9 _addFact(&_healthFact);
10 _addFact(&_ecuIndexFact);
11 _addFact(&_rpmFact);
12 _addFact(&_fuelConsumedFact);
13 _addFact(&_fuelFlowFact);
14 _addFact(&_engineLoadFact);
15 _addFact(&_sparkTimeFact);
16 _addFact(&_throttlePosFact);
17 _addFact(&_baroPressFact);
18 _addFact(&_intakePressFact);
19 _addFact(&_intakeTempFact);
20 _addFact(&_cylinderTempFact);
21 _addFact(&_ignTimeFact);
22 _addFact(&_exGasTempFact);
23 _addFact(&_injTimeFact);
24 _addFact(&_throttleOutFact);
25 _addFact(&_ptCompFact);
26 _addFact(&_ignVoltageFact);
27 _addFact(&_fuelPressureFact);
28
29 _healthFact.setRawValue(qQNaN());
30 _ecuIndexFact.setRawValue(qQNaN());
31 _rpmFact.setRawValue(qQNaN());
32 _fuelConsumedFact.setRawValue(qQNaN());
33 _fuelFlowFact.setRawValue(qQNaN());
34 _engineLoadFact.setRawValue(qQNaN());
35 _sparkTimeFact.setRawValue(qQNaN());
36 _throttlePosFact.setRawValue(qQNaN());
37 _baroPressFact.setRawValue(qQNaN());
38 _intakePressFact.setRawValue(qQNaN());
39 _intakeTempFact.setRawValue(qQNaN());
40 _cylinderTempFact.setRawValue(qQNaN());
41 _ignTimeFact.setRawValue(qQNaN());
42 _exGasTempFact.setRawValue(qQNaN());
43 _injTimeFact.setRawValue(qQNaN());
44 _throttleOutFact.setRawValue(qQNaN());
45 _ptCompFact.setRawValue(qQNaN());
46 _ignVoltageFact.setRawValue(qQNaN());
47 _fuelPressureFact.setRawValue(qQNaN());
48}
49
51{
52 Q_UNUSED(vehicle);
53
54 switch (message.msgid) {
55 case MAVLINK_MSG_ID_EFI_STATUS:
56 _handleEFIStatus(message);
57 break;
58 default:
59 break;
60 }
61}
62
63void VehicleEFIFactGroup::_handleEFIStatus(const mavlink_message_t &message)
64{
65 mavlink_efi_status_t efi{};
66 mavlink_msg_efi_status_decode(&message, &efi);
67
68 health()->setRawValue((efi.health == INT8_MAX) ? qQNaN() : efi.health);
69 ecuIndex()->setRawValue(efi.ecu_index);
70 rpm()->setRawValue(efi.rpm);
71 fuelConsumed()->setRawValue(efi.fuel_consumed);
72 fuelFlow()->setRawValue(efi.fuel_flow);
73 engineLoad()->setRawValue(efi.engine_load);
74 throttlePos()->setRawValue(efi.throttle_position);
75 sparkTime()->setRawValue(efi.spark_dwell_time);
76 baroPress()->setRawValue(efi.barometric_pressure);
77 intakePress()->setRawValue(efi.intake_manifold_pressure);
78 intakeTemp()->setRawValue(efi.intake_manifold_temperature);
79 cylinderTemp()->setRawValue(efi.cylinder_head_temperature);
80 ignTime()->setRawValue(efi.ignition_timing);
81 injTime()->setRawValue(efi.injection_time);
82 exGasTemp()->setRawValue(efi.exhaust_gas_temperature);
83 throttleOut()->setRawValue(efi.throttle_out);
84 ptComp()->setRawValue(efi.pt_compensation);
85 ignVoltage()->setRawValue(efi.ignition_voltage);
86 fuelPressure()->setRawValue(efi.fuel_pressure);
87
89}
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
VehicleEFIFactGroup(QObject *parent=nullptr)
void handleMessage(Vehicle *vehicle, const mavlink_message_t &message) final
Allows a FactGroup to parse incoming messages and fill in values.