QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
RCChannelMonitorController.cc
Go to the documentation of this file.
2#include "Vehicle.h"
4
5QGC_LOGGING_CATEGORY(RCChannelMonitorControllerLog, "QMLControls.RCChannelMonitorController")
6
8 : FactPanelController(parent)
9{
10 // qCDebug(RCChannelMonitorControllerLog) << Q_FUNC_INFO << this;
11
12 _connectToSignal();
13}
14
16{
17 // qCDebug(RCChannelMonitorControllerLog) << Q_FUNC_INFO << this;
18}
19
21{
22 if (_clampValues != clamp) {
23 _clampValues = clamp;
24 _connectToSignal();
25 emit clampValuesChanged();
26 }
27}
28
29void RCChannelMonitorController::_connectToSignal()
30{
31 disconnect(_vehicle, &Vehicle::rcChannelsClampedChanged, this, &RCChannelMonitorController::channelValuesChanged);
32 disconnect(_vehicle, &Vehicle::rcChannelsRawChanged, this, &RCChannelMonitorController::channelValuesChanged);
33 if (_clampValues) {
34 (void) connect(_vehicle, &Vehicle::rcChannelsClampedChanged, this, &RCChannelMonitorController::channelValuesChanged);
35 } else {
36 (void) connect(_vehicle, &Vehicle::rcChannelsRawChanged, this, &RCChannelMonitorController::channelValuesChanged);
37 }
38}
39
40void RCChannelMonitorController::channelValuesChanged(QVector<int> pwmValues)
41{
42 int channelCount = pwmValues.size();
43
44 if (_chanCount != channelCount) {
45 _chanCount = channelCount;
46 emit channelCountChanged(_chanCount);
47 }
48
49 for (int channel = 0; channel < channelCount; channel++) {
50 emit channelValueChanged(channel, pwmValues[channel]);
51 }
52}
#define QGC_LOGGING_CATEGORY(name, categoryStr)
Used for handling missing Facts from C++ code.
void channelValueChanged(int channel, int rcValue)
void channelCountChanged(int channelCount)
void rcChannelsRawChanged(QVector< int > channelValues)
void rcChannelsClampedChanged(QVector< int > channelValues)