summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/vehiclefunctions/climate_qml/main.qml51
-rw-r--r--examples/vehiclefunctions/climate_widget/mainwindow.cpp69
-rw-r--r--examples/vehiclefunctions/climate_widget/mainwindow.h6
-rw-r--r--examples/vehiclefunctions/climate_widget/mainwindow.ui21
-rw-r--r--src/ivivehiclefunctions/doc/src/examples-climate_qml.qdoc3
-rw-r--r--src/ivivehiclefunctions/qtiviclimatecontrol.cpp112
-rw-r--r--src/ivivehiclefunctions/qtiviclimatecontrol.h33
-rw-r--r--src/ivivehiclefunctions/qtiviclimatecontrol_p.h8
-rw-r--r--src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.cpp18
-rw-r--r--src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.h6
-rw-r--r--src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.cpp16
-rw-r--r--src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.h4
-rw-r--r--tests/auto/vehiclefunctions/climatecontroltest/tst_climatecontroltest.cpp32
13 files changed, 171 insertions, 208 deletions
diff --git a/examples/vehiclefunctions/climate_qml/main.qml b/examples/vehiclefunctions/climate_qml/main.qml
index 2ac10f0..7776b01 100644
--- a/examples/vehiclefunctions/climate_qml/main.qml
+++ b/examples/vehiclefunctions/climate_qml/main.qml
@@ -81,48 +81,39 @@ ApplicationWindow {
ColumnLayout {
anchors.fill: parent
- ExclusiveGroup { id: group }
- RadioButton {
- text: "Floor Panel"
- exclusiveGroup: group
- checked: climateControl.airflowDirection.value === ClimateControl.FloorPanel
- enabled: climateControl.airflowDirection.availableValues.indexOf(ClimateControl.FloorPanel) !== -1
+ CheckBox {
+ text: "Windshield"
+ checked: climateControl.airflowDirections.value & ClimateControl.Windshield
+ enabled: climateControl.airflowDirections.availableValues.indexOf(ClimateControl.Windshield) !== -1
onClicked: {
if (checked)
- climateControl.airflowDirection.value = ClimateControl.FloorPanel
+ climateControl.airflowDirections.value |= ClimateControl.Windshield
+ else
+ climateControl.airflowDirections.value &= ~ClimateControl.Windshield
}
}
- RadioButton {
- text: "Floor Duct"
- exclusiveGroup: group
- checked: climateControl.airflowDirection.value === ClimateControl.FloorDuct
- enabled: climateControl.airflowDirection.availableValues.indexOf(ClimateControl.FloorDuct) !== -1
+ CheckBox {
+ text: "Dashboard"
+ checked: climateControl.airflowDirections.value & ClimateControl.Dashboard
+ enabled: climateControl.airflowDirections.availableValues.indexOf(ClimateControl.Dashboard) !== -1
onClicked: {
if (checked)
- climateControl.airflowDirection.value = ClimateControl.FloorDuct
+ climateControl.airflowDirections.value |= ClimateControl.Dashboard
+ else
+ climateControl.airflowDirections.value &= ~ClimateControl.Dashboard
}
}
- RadioButton {
- text: "Bi Level"
- exclusiveGroup: group
- checked: climateControl.airflowDirection.value === ClimateControl.BiLevel
- enabled: climateControl.airflowDirection.availableValues.indexOf(ClimateControl.BiLevel) !== -1
+ CheckBox {
+ text: "Floor"
+ checked: climateControl.airflowDirections.value & ClimateControl.Floor
+ enabled: climateControl.airflowDirections.availableValues.indexOf(ClimateControl.Floor) !== -1
onClicked: {
if (checked)
- climateControl.airflowDirection.value = ClimateControl.BiLevel
- }
- }
-
- RadioButton {
- text: "Defrost Floor"
- exclusiveGroup: group
- checked: climateControl.airflowDirection.value === ClimateControl.DefrostFloor
- enabled: climateControl.airflowDirection.availableValues.indexOf(ClimateControl.DefrostFloor) !== -1
- onClicked: {
- if (checked)
- climateControl.airflowDirection.value = ClimateControl.DefrostFloor
+ climateControl.airflowDirections.value |= ClimateControl.Floor
+ else
+ climateControl.airflowDirections.value &= ~ClimateControl.Floor
}
}
}
diff --git a/examples/vehiclefunctions/climate_widget/mainwindow.cpp b/examples/vehiclefunctions/climate_widget/mainwindow.cpp
index af43331..66ac611 100644
--- a/examples/vehiclefunctions/climate_widget/mainwindow.cpp
+++ b/examples/vehiclefunctions/climate_widget/mainwindow.cpp
@@ -60,15 +60,15 @@
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
- m_radioButtonGroup(new QButtonGroup(this)),
+ m_buttonGroup(new QButtonGroup(this)),
m_climateControl(0)
{
ui->setupUi(this);
- m_radioButtonGroup->addButton(ui->rb_BiLevel);
- m_radioButtonGroup->addButton(ui->rb_DefrostFloor);
- m_radioButtonGroup->addButton(ui->rb_FloorDuct);
- m_radioButtonGroup->addButton(ui->rb_FloorPanel);
+ m_buttonGroup->setExclusive(false);
+ m_buttonGroup->addButton(ui->cb_windshield);
+ m_buttonGroup->addButton(ui->cb_dashboard);
+ m_buttonGroup->addButton(ui->cb_floor);
//![1]
m_climateControl = new QtIVIClimateControl(QString(), this);
@@ -80,13 +80,14 @@ MainWindow::MainWindow(QWidget *parent) :
//![2]
//Air Flow Direction
- setupFlowDirectionRadioButtons(m_climateControl->airflowDirection());
- setupFlowDirectionAttribute(m_climateControl->airflowDirectionAttribute());
- connect(m_radioButtonGroup, static_cast<void (QButtonGroup::*)(QAbstractButton *, bool)>(&QButtonGroup::buttonToggled),
+ setupFlowDirectionRadioButtons(m_climateControl->airflowDirections());
+ setupFlowDirectionAttribute(m_climateControl->airflowDirectionsAttribute());
+ connect(m_buttonGroup, static_cast<void (QButtonGroup::*)(QAbstractButton *, bool)>(&QButtonGroup::buttonToggled),
this, &MainWindow::onFlowDirectionButtonToggled);
- connect(m_climateControl, &QtIVIClimateControl::airflowDirectionChanged,
+
+ connect(m_climateControl, &QtIVIClimateControl::airflowDirectionsChanged,
this, &MainWindow::setupFlowDirectionRadioButtons);
- connect(m_climateControl, &QtIVIClimateControl::airflowDirectionAttributeChanged,
+ connect(m_climateControl, &QtIVIClimateControl::airflowDirectionsAttributeChanged,
this, &MainWindow::setupFlowDirectionAttribute);
//Air Condition
@@ -142,46 +143,34 @@ void MainWindow::onAirConditioningAttributeChanged(const QtIVIPropertyAttribute<
}
//![3]
-void MainWindow::setupFlowDirectionRadioButtons(QtIVIClimateControl::AirflowDirection direction)
+void MainWindow::setupFlowDirectionRadioButtons(QtIVIClimateControl::AirflowDirections direction)
{
- QAbstractButton* button = ui->rb_BiLevel;
-
- if (direction == QtIVIClimateControl::BiLevel)
- button = ui->rb_BiLevel;
- else if (direction == QtIVIClimateControl::DefrostFloor)
- button = ui->rb_DefrostFloor;
- else if (direction == QtIVIClimateControl::FloorDuct)
- button = ui->rb_FloorDuct;
- else if (direction == QtIVIClimateControl::FloorPanel)
- button = ui->rb_FloorPanel;
-
- button->setChecked(true);
+ ui->cb_windshield->setChecked(direction.testFlag(QtIVIClimateControl::Windshield));
+ ui->cb_dashboard->setChecked(direction.testFlag(QtIVIClimateControl::Dashboard));
+ ui->cb_floor->setChecked(direction.testFlag(QtIVIClimateControl::Floor));
}
-void MainWindow::setupFlowDirectionAttribute(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> & attribute)
+void MainWindow::setupFlowDirectionAttribute(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> & attribute)
{
- ui->rb_BiLevel->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::BiLevel));
- ui->rb_DefrostFloor->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::DefrostFloor));
- ui->rb_FloorDuct->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::FloorDuct));
- ui->rb_FloorPanel->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::FloorPanel));
+ ui->cb_windshield->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::Windshield));
+ ui->cb_dashboard->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::Dashboard));
+ ui->cb_floor->setEnabled(attribute.availableValues().contains(QtIVIClimateControl::Floor));
}
void MainWindow::onFlowDirectionButtonToggled(QAbstractButton *button, bool checked)
{
- if (!checked)
- return;
+ Q_UNUSED(button)
+ Q_UNUSED(checked)
- QtIVIClimateControl::AirflowDirection direction = QtIVIClimateControl::BiLevel;
+ QtIVIClimateControl::AirflowDirections direction;
- if (button == ui->rb_BiLevel)
- direction = QtIVIClimateControl::BiLevel;
- else if (button == ui->rb_DefrostFloor)
- direction = QtIVIClimateControl::DefrostFloor;
- else if (button == ui->rb_FloorDuct)
- direction = QtIVIClimateControl::FloorDuct;
- else if (button == ui->rb_FloorPanel)
- direction = QtIVIClimateControl::FloorPanel;
+ if (ui->cb_windshield->isChecked())
+ direction |= QtIVIClimateControl::Windshield;
+ if (ui->cb_dashboard->isChecked())
+ direction |= QtIVIClimateControl::Dashboard;
+ if (ui->cb_floor->isChecked())
+ direction |= QtIVIClimateControl::Floor;
- m_climateControl->setAirflowDirection(direction);
+ m_climateControl->setAirflowDirections(direction);
}
//![3]
diff --git a/examples/vehiclefunctions/climate_widget/mainwindow.h b/examples/vehiclefunctions/climate_widget/mainwindow.h
index af17946..65d936a 100644
--- a/examples/vehiclefunctions/climate_widget/mainwindow.h
+++ b/examples/vehiclefunctions/climate_widget/mainwindow.h
@@ -77,13 +77,13 @@ private slots:
void onAirRecirculationAttributeChanged(const QtIVIPropertyAttribute<bool> &attribute);
void onHeaterAttributeChanged(const QtIVIPropertyAttribute<bool> &attribute);
void onAirConditioningAttributeChanged(const QtIVIPropertyAttribute<bool> &attribute);
- void setupFlowDirectionRadioButtons(QtIVIClimateControl::AirflowDirection direction);
- void setupFlowDirectionAttribute(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &attribute);
+ void setupFlowDirectionRadioButtons(QtIVIClimateControl::AirflowDirections direction);
+ void setupFlowDirectionAttribute(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &attribute);
void onFlowDirectionButtonToggled(QAbstractButton * button, bool checked);
private:
Ui::MainWindow *ui;
- QButtonGroup *m_radioButtonGroup;
+ QButtonGroup *m_buttonGroup;
QtIVIClimateControl* m_climateControl;
};
diff --git a/examples/vehiclefunctions/climate_widget/mainwindow.ui b/examples/vehiclefunctions/climate_widget/mainwindow.ui
index 88e7331..7f53ae2 100644
--- a/examples/vehiclefunctions/climate_widget/mainwindow.ui
+++ b/examples/vehiclefunctions/climate_widget/mainwindow.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>384</width>
- <height>236</height>
+ <height>238</height>
</rect>
</property>
<property name="windowTitle">
@@ -22,30 +22,23 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QRadioButton" name="rb_FloorPanel">
+ <widget class="QCheckBox" name="cb_windshield">
<property name="text">
- <string>Floor Panel</string>
+ <string>Windshield</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="rb_FloorDuct">
+ <widget class="QCheckBox" name="cb_dashboard">
<property name="text">
- <string>Floor Duct</string>
+ <string>Dashboard</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="rb_BiLevel">
+ <widget class="QCheckBox" name="cb_floor">
<property name="text">
- <string>Bi &amp;Level</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="rb_DefrostFloor">
- <property name="text">
- <string>Defrost Floor</string>
+ <string>Floor</string>
</property>
</widget>
</item>
diff --git a/src/ivivehiclefunctions/doc/src/examples-climate_qml.qdoc b/src/ivivehiclefunctions/doc/src/examples-climate_qml.qdoc
index 4ac2690..aa9a585 100644
--- a/src/ivivehiclefunctions/doc/src/examples-climate_qml.qdoc
+++ b/src/ivivehiclefunctions/doc/src/examples-climate_qml.qdoc
@@ -72,8 +72,7 @@
differentiate between the zones. A \e {general zone} can be used for settings
that are applied to all zones.
- General ClimateControl attribute values are handled in radio buttons and
- check boxes as follows:
+ General ClimateControl attribute values are handled in check boxes as follows:
\snippet climate_qml/main.qml 2
For the zoned ClimateControl, the \l [QML] {AbstractZonedFeature::}{zoneAt}
diff --git a/src/ivivehiclefunctions/qtiviclimatecontrol.cpp b/src/ivivehiclefunctions/qtiviclimatecontrol.cpp
index 475520a..07028c9 100644
--- a/src/ivivehiclefunctions/qtiviclimatecontrol.cpp
+++ b/src/ivivehiclefunctions/qtiviclimatecontrol.cpp
@@ -46,7 +46,7 @@
QtIVIClimateControlPrivate::QtIVIClimateControlPrivate(const QString &interface, const QString &zone, QtIVIClimateControl *parent)
: QtIVIAbstractZonedFeaturePrivate(interface, zone, parent)
- , m_airflowDirection(QtIVIClimateControl::None)
+ , m_airflowDirections(0)
, m_airConditioning(false)
, m_heater(false)
, m_airRecirculation(false)
@@ -62,12 +62,12 @@ QtIVIClimateControlPrivate::QtIVIClimateControlPrivate(const QString &interface,
void QtIVIClimateControlPrivate::init()
{
Q_Q(QtIVIClimateControl);
- m_airFlowDirectionProperty = QtIVIPropertyFactory<QtIVIClimateControl::AirflowDirection>::create(q,
- &QtIVIClimateControl::airflowDirectionAttribute,
- &QtIVIClimateControl::airflowDirectionAttributeChanged,
- &QtIVIClimateControl::airflowDirection,
- &QtIVIClimateControl::airflowDirectionChanged,
- &QtIVIClimateControl::setAirflowDirection);
+ m_airFlowDirectionProperty = QtIVIPropertyFactory<QtIVIClimateControl::AirflowDirections>::create(q,
+ &QtIVIClimateControl::airflowDirectionsAttribute,
+ &QtIVIClimateControl::airflowDirectionsAttributeChanged,
+ &QtIVIClimateControl::airflowDirections,
+ &QtIVIClimateControl::airflowDirectionsChanged,
+ &QtIVIClimateControl::setAirflowDirections);
m_airConditioningProperty = QtIVIPropertyFactory<bool>::create(q,
&QtIVIClimateControl::airConditioningAttribute,
&QtIVIClimateControl::airConditioningAttributeChanged,
@@ -130,7 +130,7 @@ void QtIVIClimateControlPrivate::clearToDefaults()
m_fanSpeedLevel = 0;
}
-void QtIVIClimateControlPrivate::onAirflowDirectionChanged(QtIVIClimateControl::AirflowDirection value, const QString &zone)
+void QtIVIClimateControlPrivate::onAirflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value, const QString &zone)
{
Q_Q(QtIVIClimateControl);
QtIVIClimateControl *f = qobject_cast<QtIVIClimateControl*>(q->zoneAt(zone));
@@ -138,11 +138,11 @@ void QtIVIClimateControlPrivate::onAirflowDirectionChanged(QtIVIClimateControl::
f = q;
if (f->zone() != zone)
return;
- f->d_func()->m_airflowDirection = value;
- emit f->airflowDirectionChanged(value);
+ f->d_func()->m_airflowDirections = value;
+ emit f->airflowDirectionsChanged(value);
}
-void QtIVIClimateControlPrivate::onAirflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &airflowDirectionAttribute, const QString &zone)
+void QtIVIClimateControlPrivate::onAirflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &airflowDirectionsAttribute, const QString &zone)
{
Q_Q(QtIVIClimateControl);
QtIVIClimateControl *f = qobject_cast<QtIVIClimateControl*>(q->zoneAt(zone));
@@ -150,8 +150,8 @@ void QtIVIClimateControlPrivate::onAirflowDirectionAttributeChanged(const QtIVIP
f = q;
if (f->zone() != zone)
return;
- f->d_func()->m_airflowDirectionAttribute = airflowDirectionAttribute;
- emit f->airflowDirectionAttributeChanged(airflowDirectionAttribute);
+ f->d_func()->m_airflowDirectionsAttribute = airflowDirectionsAttribute;
+ emit f->airflowDirectionsAttributeChanged(airflowDirectionsAttribute);
}
void QtIVIClimateControlPrivate::onAirConditioningEnabledChanged(bool enabled, const QString &zone)
@@ -376,17 +376,13 @@ QtIVIClimateControlBackendInterface *QtIVIClimateControlPrivate::climateControlB
*/
/*!
- \enum QtIVIClimateControl::AirflowDirection
- \value None
- AirflowDirection is not initialized
- \value FloorPanel
- Direct airflow along the floor panel.
- \value FloorDuct
- Direct airflow through the floor duct.
- \value BiLevel
- Direct airflow at both levels.
- \value DefrostFloor
- Direct airflow to defrost.
+ \enum QtIVIClimateControl::AirflowDirections
+ \value Windshield
+ Direct airflow along the windshield.
+ \value Dashboard
+ Direct airflow through the dashboard.
+ \value Floor
+ Direct airflow to the floor.
*/
/*!
@@ -402,7 +398,7 @@ QtIVIClimateControl::QtIVIClimateControl(const QString &zone, QObject* parent)
Q_D(QtIVIClimateControl);
d->init();
qRegisterMetaType<QtIVIPropertyAttribute<int>>();
- qRegisterMetaType<QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection>>();
+ qRegisterMetaType<QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections>>();
qRegisterMetaType<QtIVIPropertyAttribute<bool>>();
}
@@ -442,10 +438,10 @@ void QtIVIClimateControl::connectToServiceObject(QtIVIServiceObject *serviceObje
d, &QtIVIClimateControlPrivate::onFanSpeedLevelChanged);
QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::fanSpeedLevelAttributeChanged,
d, &QtIVIClimateControlPrivate::onFanSpeedLevelAttributeChanged);
- QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airflowDirectionChanged,
- d, &QtIVIClimateControlPrivate::onAirflowDirectionChanged);
- QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airflowDirectionAttributeChanged,
- d, &QtIVIClimateControlPrivate::onAirflowDirectionAttributeChanged);
+ QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airflowDirectionsChanged,
+ d, &QtIVIClimateControlPrivate::onAirflowDirectionsChanged);
+ QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airflowDirectionsAttributeChanged,
+ d, &QtIVIClimateControlPrivate::onAirflowDirectionsAttributeChanged);
QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airConditioningEnabledChanged,
d, &QtIVIClimateControlPrivate::onAirConditioningEnabledChanged);
QObjectPrivate::connect(backend, &QtIVIClimateControlBackendInterface::airConditioningAttributeChanged,
@@ -527,52 +523,48 @@ QtIVIProperty *QtIVIClimateControl::airConditioningProperty() const
}
/*!
- \qmlqtivipropertyEnum {QtIVIVehicleFunctions::ClimateControl::airflowDirection}
+ \qmlqtivipropertyEnum {QtIVIVehicleFunctions::ClimateControl::airflowDirections}
- \e value holds the airflow direction.
+ \e value holds the airflow directions.
Available values are:
- \value None
- AirflowDirection is not initialized.
- \value FloorPanel
- Direct airflow along the floor panel.
- \value FloorDuct
- Direct airflow through the floor duct.
- \value BiLevel
- Direct airflow at both levels.
- \value DefrostFloor
- Direct airflow to defrost.
+ \value Windshield
+ Direct airflow along the windshield.
+ \value Dashboard
+ Direct airflow through the dashboard.
+ \value Floor
+ Direct airflow to the floor.
*/
/*!
- \property QtIVIClimateControl::airflowDirection
+ \property QtIVIClimateControl::airflowDirections
- Holds a QtIVIProperty of type \e QtIVIClimateControl::AirflowDirection where the QtIVIProperty::value() function returns the current air flow direction.
+ Holds a QtIVIProperty of type \e QtIVIClimateControl::AirflowDirections where the QtIVIProperty::value() function returns the current air flow directions.
\sa AttributeSystem
- \sa airflowDirection() setAirflowDirection() airflowDirectionAttribute()
+ \sa airflowDirections() setAirflowDirections() airflowDirectionsAttribute()
*/
/*!
* Returns the current air flow direction.
*
- * \sa setAirflowDirection() airflowDirectionChanged() airflowDirectionAttribute()
+ * \sa setAirflowDirections() airflowDirectionsChanged() airflowDirectionsAttribute()
*/
-QtIVIClimateControl::AirflowDirection QtIVIClimateControl::airflowDirection() const
+QtIVIClimateControl::AirflowDirections QtIVIClimateControl::airflowDirections() const
{
Q_D(const QtIVIClimateControl);
- return d->m_airflowDirection;
+ return d->m_airflowDirections;
}
/*!
* Returns the attribute defining the boundaries and availability of the air flow property
*
- * \sa setAirflowDirection() airflowDirection() airflowDirectionChanged()
+ * \sa setAirflowDirections() airflowDirections() airflowDirectionsChanged()
*/
-QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> QtIVIClimateControl::airflowDirectionAttribute() const
+QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> QtIVIClimateControl::airflowDirectionsAttribute() const
{
Q_D(const QtIVIClimateControl);
- return d->m_airflowDirectionAttribute;
+ return d->m_airflowDirectionsAttribute;
}
-QtIVIProperty *QtIVIClimateControl::airflowDirectionProperty() const
+QtIVIProperty *QtIVIClimateControl::airflowDirectionsProperty() const
{
Q_D(const QtIVIClimateControl);
return d->m_airFlowDirectionProperty;
@@ -889,13 +881,13 @@ void QtIVIClimateControl::setAirConditioningEnabled(bool enabled)
/*!
* Sets the air flow direction to \a direction.
*
- * \sa airflowDirection() airflowDirectionChanged() airflowDirectionAttribute()
+ * \sa airflowDirections() airflowDirectionsChanged() airflowDirectionsAttribute()
*/
-void QtIVIClimateControl::setAirflowDirection(QtIVIClimateControl::AirflowDirection direction)
+void QtIVIClimateControl::setAirflowDirections(QtIVIClimateControl::AirflowDirections direction)
{
Q_D(QtIVIClimateControl);
if (QtIVIClimateControlBackendInterface* backend = d->climateControlBackend())
- backend->setAirflowDirection(direction, zone());
+ backend->setAirflowDirections(direction, zone());
}
/*!
@@ -983,18 +975,18 @@ void QtIVIClimateControl::setSeatHeater(int value)
}
/*!
- * \fn void QtIVIClimateControl::airflowDirectionChanged(QtIVIClimateControl::AirflowDirection value)
+ * \fn void QtIVIClimateControl::airflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value)
*
- * This signal is emitted whenever the air flow direction changes. The new flow direction is passed as \a value.
+ * This signal is emitted whenever the air flow directions change. The new flow directions are passed as \a value.
*
- * \sa airflowDirection() setAirflowDirection() airflowDirectionAttribute()
+ * \sa airflowDirections() setAirflowDirections() airflowDirectionsAttribute()
*/
/*!
- * \fn void QtIVIClimateControl::airflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &attribute);
+ * \fn void QtIVIClimateControl::airflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &attribute);
*
- * This signal is emitted whenever the attribute for the airflowDirection property changes. The new attribute is passed as \a attribute.
+ * This signal is emitted whenever the attribute for the airflowDirections property changes. The new attribute is passed as \a attribute.
*
- * \sa airflowDirectionAttribute() airflowDirection()
+ * \sa airflowDirectionsAttribute() airflowDirections()
*/
/*!
* \fn void QtIVIClimateControl::airConditioningEnabledChanged(bool enabled);
diff --git a/src/ivivehiclefunctions/qtiviclimatecontrol.h b/src/ivivehiclefunctions/qtiviclimatecontrol.h
index 0157d5f..16d9017 100644
--- a/src/ivivehiclefunctions/qtiviclimatecontrol.h
+++ b/src/ivivehiclefunctions/qtiviclimatecontrol.h
@@ -57,7 +57,7 @@ class Q_QTIVIVEHICLEFUNCTIONS_EXPORT QtIVIClimateControl : public QtIVIAbstractZ
{
Q_OBJECT
Q_PROPERTY(QtIVIProperty* airConditioning READ airConditioningProperty CONSTANT)
- Q_PROPERTY(QtIVIProperty* airflowDirection READ airflowDirectionProperty CONSTANT)
+ Q_PROPERTY(QtIVIProperty* airflowDirections READ airflowDirectionsProperty CONSTANT)
Q_PROPERTY(QtIVIProperty* heater READ heaterProperty CONSTANT)
Q_PROPERTY(QtIVIProperty* airRecirculation READ airRecirculationProperty CONSTANT)
Q_PROPERTY(QtIVIProperty* fanSpeedLevel READ fanSpeedLevelProperty CONSTANT)
@@ -68,13 +68,12 @@ class Q_QTIVIVEHICLEFUNCTIONS_EXPORT QtIVIClimateControl : public QtIVIAbstractZ
public:
enum AirflowDirection {
- None,
- FloorPanel,
- FloorDuct,
- BiLevel,
- DefrostFloor
+ Windshield = 0x1,
+ Dashboard = 0x2,
+ Floor = 0x4
};
- Q_ENUM(AirflowDirection)
+ Q_DECLARE_FLAGS(AirflowDirections, AirflowDirection)
+ Q_FLAG(AirflowDirections)
QtIVIClimateControl(const QString &zone=QString(), QObject* parent=0);
~QtIVIClimateControl();
@@ -85,9 +84,9 @@ public:
bool isAirConditioningEnabled() const;
QtIVIPropertyAttribute<bool> airConditioningAttribute() const;
QtIVIProperty* airConditioningProperty() const;
- QtIVIClimateControl::AirflowDirection airflowDirection() const;
- QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> airflowDirectionAttribute() const;
- QtIVIProperty* airflowDirectionProperty() const;
+ QtIVIClimateControl::AirflowDirections airflowDirections() const;
+ QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> airflowDirectionsAttribute() const;
+ QtIVIProperty* airflowDirectionsProperty() const;
bool isHeaterEnabled() const;
QtIVIPropertyAttribute<bool> heaterAttribute() const;
QtIVIProperty* heaterProperty() const;
@@ -112,7 +111,7 @@ public:
public Q_SLOTS:
void setAirConditioningEnabled(bool enabled);
- void setAirflowDirection(QtIVIClimateControl::AirflowDirection value);
+ void setAirflowDirections(QtIVIClimateControl::AirflowDirections value);
void setHeaterEnabled(bool enabled);
void setAirRecirculationEnabled(bool enabled);
void setSteeringWheelHeater(int value);
@@ -122,8 +121,8 @@ public Q_SLOTS:
void setSeatHeater(int seatHeater);
Q_SIGNALS:
- void airflowDirectionChanged(QtIVIClimateControl::AirflowDirection value);
- void airflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &attribute);
+ void airflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value);
+ void airflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &attribute);
void airConditioningEnabledChanged(bool enabled);
void airConditioningAttributeChanged(const QtIVIPropertyAttribute<bool> &attribute);
void heaterEnabledChanged(bool enabled);
@@ -147,8 +146,8 @@ protected:
private:
Q_DECLARE_PRIVATE(QtIVIClimateControl)
- Q_PRIVATE_SLOT(d_func(), void onAirflowDirectionChanged(QtIVIClimateControl::AirflowDirection value, const QString &zone))
- Q_PRIVATE_SLOT(d_func(), void onAirflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &airflowDirectionAttribute, const QString &zone))
+ Q_PRIVATE_SLOT(d_func(), void onAirflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value, const QString &zone))
+ Q_PRIVATE_SLOT(d_func(), void onAirflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &airflowDirectionsAttribute, const QString &zone))
Q_PRIVATE_SLOT(d_func(), void onAirConditioningEnabledChanged(bool enabled, const QString &zone))
Q_PRIVATE_SLOT(d_func(), void onAirConditioningAttributeChanged(const QtIVIPropertyAttribute<bool> &airConditioningEnabledAttribute, const QString &zone))
Q_PRIVATE_SLOT(d_func(), void onHeaterEnabledChanged(bool enabled, const QString &zone))
@@ -169,7 +168,7 @@ private:
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QtIVIClimateControl::AirflowDirection)
-Q_DECLARE_METATYPE(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection>)
+Q_DECLARE_METATYPE(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections>)
+Q_DECLARE_OPERATORS_FOR_FLAGS(QtIVIClimateControl::AirflowDirections)
#endif // CLIMATECONTROL_H
diff --git a/src/ivivehiclefunctions/qtiviclimatecontrol_p.h b/src/ivivehiclefunctions/qtiviclimatecontrol_p.h
index bd19978..8c88162 100644
--- a/src/ivivehiclefunctions/qtiviclimatecontrol_p.h
+++ b/src/ivivehiclefunctions/qtiviclimatecontrol_p.h
@@ -68,8 +68,8 @@ public:
void init();
void clearToDefaults();
- void onAirflowDirectionChanged(QtIVIClimateControl::AirflowDirection value, const QString &zone);
- void onAirflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &airflowDirectionAttribute, const QString &zone);
+ void onAirflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value, const QString &zone);
+ void onAirflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &airflowDirectionsAttribute, const QString &zone);
void onAirConditioningEnabledChanged(bool enabled, const QString &zone);
void onAirConditioningAttributeChanged(const QtIVIPropertyAttribute<bool> &airConditioningEnabledAttribute, const QString &zone);
void onHeaterEnabledChanged(bool enabled, const QString &zone);
@@ -89,8 +89,8 @@ public:
QtIVIClimateControlBackendInterface* climateControlBackend();
- QtIVIClimateControl::AirflowDirection m_airflowDirection;
- QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> m_airflowDirectionAttribute;
+ QtIVIClimateControl::AirflowDirections m_airflowDirections;
+ QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> m_airflowDirectionsAttribute;
QtIVIProperty *m_airFlowDirectionProperty;
bool m_airConditioning;
QtIVIPropertyAttribute<bool> m_airConditioningAttribute;
diff --git a/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.cpp b/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.cpp
index 48eab25..dc8bec8 100644
--- a/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.cpp
+++ b/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.cpp
@@ -109,14 +109,14 @@ QtIVIClimateControlBackendInterface::QtIVIClimateControlBackendInterface(QObject
*/
/*!
- * \fn virtual void QtIVIClimateControlBackendInterface::setAirflowDirection(QtIVIClimateControl::AirflowDirection, const QString &zone) = 0;
+ * \fn virtual void QtIVIClimateControlBackendInterface::setAirflowDirections(QtIVIClimateControl::AirflowDirections, const QString &zone) = 0;
*
- * Sets the \a zone air flow direction to \a airflowDirection.
+ * Sets the \a zone air flow directions to \a airflowDirections.
*
- * This method is expected to emit the \l airflowDirectionChanged() signal when receiving a
- * new \a airflowDirection.
+ * This method is expected to emit the \l airflowDirectionsChanged() signal when receiving a
+ * new \a airflowDirections.
*
- * \sa airflowDirectionChanged()
+ * \sa airflowDirectionsChanged()
*/
/*!
@@ -224,15 +224,15 @@ QtIVIClimateControlBackendInterface::QtIVIClimateControlBackendInterface(QObject
*/
/*!
- * \fn virtual void QtIVIClimateControlBackendInterface::airflowDirectionChanged(QtIVIClimateControl::AirflowDirection airflowDirection, const QString &zone = QString()) = 0
+ * \fn virtual void QtIVIClimateControlBackendInterface::airflowDirectionsChanged(QtIVIClimateControl::AirflowDirections airflowDirections, const QString &zone = QString()) = 0
*
- * The signal is emitted when the \a zone airflow direction is changed to \a airflowDirection.
+ * The signal is emitted when the \a zone airflow directions changed to \a airflowDirections.
*
- * \sa setAirflowDirection()
+ * \sa setAirflowDirections()
*/
/*!
- * \fn void QtIVIClimateControlBackendInterface::airflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &attribute, const QString &zone = QString());
+ * \fn void QtIVIClimateControlBackendInterface::airflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &attribute, const QString &zone = QString());
*
* The signal is emitted when the zone airflow direction attribute for \a zone is changed to \a attribute.
*/
diff --git a/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.h b/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.h
index 57d05c4..382a808 100644
--- a/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.h
+++ b/src/ivivehiclefunctions/qtiviclimatecontrolbackendinterface.h
@@ -63,7 +63,7 @@ public:
virtual void setSteeringWheelHeater(int value, const QString &zone) = 0;
virtual void setFanSpeedLevel(int value, const QString &zone) = 0;
- virtual void setAirflowDirection(QtIVIClimateControl::AirflowDirection airflowDirection, const QString &zone) = 0;
+ virtual void setAirflowDirections(QtIVIClimateControl::AirflowDirections airflowDirections, const QString &zone) = 0;
virtual void setAirConditioningEnabled(bool enabled, const QString &zone) = 0;
virtual void setHeaterEnabled(bool enabled, const QString &zone) = 0;
virtual void setAirRecirculationEnabled(bool enabled, const QString &zone) = 0;
@@ -79,8 +79,8 @@ Q_SIGNALS:
void steeringWheelHeaterAttributeChanged(const QtIVIPropertyAttribute<int> &attribute, const QString &zone = QString());
void fanSpeedLevelChanged(int value, const QString &zone = QString());
void fanSpeedLevelAttributeChanged(const QtIVIPropertyAttribute<int> &attribute, const QString &zone = QString());
- void airflowDirectionChanged(QtIVIClimateControl::AirflowDirection value, const QString &zone = QString());
- void airflowDirectionAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> &attribute, const QString &zone = QString());
+ void airflowDirectionsChanged(QtIVIClimateControl::AirflowDirections value, const QString &zone = QString());
+ void airflowDirectionsAttributeChanged(const QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> &attribute, const QString &zone = QString());
void airConditioningEnabledChanged(bool value, const QString &zone = QString());
void airConditioningAttributeChanged(const QtIVIPropertyAttribute<bool> &attribute, const QString &zone = QString());
void heaterEnabledChanged(bool value, const QString &zone = QString());
diff --git a/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.cpp b/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.cpp
index e4d4f2c..23f714f 100644
--- a/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.cpp
+++ b/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.cpp
@@ -45,7 +45,7 @@
ClimateControlBackend::ClimateControlBackend(QObject *parent) :
QtIVIClimateControlBackendInterface(parent),
- m_flowDirection(QtIVIClimateControl::BiLevel),
+ m_flowDirection(QtIVIClimateControl::Floor | QtIVIClimateControl::Dashboard),
m_airCondition(true),
m_heater(true),
m_airRecirculation(false),
@@ -92,10 +92,10 @@ QStringList ClimateControlBackend::availableZones() const
void ClimateControlBackend::initializeAttributes()
{
- QVector<QtIVIClimateControl::AirflowDirection> list;
- list << QtIVIClimateControl::BiLevel << QtIVIClimateControl::DefrostFloor;
- emit airflowDirectionAttributeChanged(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection>(list));
- emit airflowDirectionChanged(m_flowDirection);
+ QVector<QtIVIClimateControl::AirflowDirections> list;
+ list << (QtIVIClimateControl::Floor | QtIVIClimateControl::Dashboard) << QtIVIClimateControl::Floor << QtIVIClimateControl::Dashboard;
+ emit airflowDirectionsAttributeChanged(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections>(list));
+ emit airflowDirectionsChanged(m_flowDirection);
emit airConditioningAttributeChanged(QtIVIPropertyAttribute<bool>(true));
emit airConditioningEnabledChanged(m_airCondition);
emit heaterAttributeChanged(QtIVIPropertyAttribute<bool>(true));
@@ -193,15 +193,15 @@ void ClimateControlBackend::setFanSpeedLevel(int speed, const QString &zone)
emit fanSpeedLevelChanged(speed, zone);
}
-void ClimateControlBackend::setAirflowDirection(QtIVIClimateControl::AirflowDirection direction, const QString &zone)
+void ClimateControlBackend::setAirflowDirections(QtIVIClimateControl::AirflowDirections direction, const QString &zone)
{
if (!zone.isEmpty() || m_flowDirection == direction)
return;
- qWarning() << "SIMULATION AirflowDirection changed to" << direction;
+ qWarning() << "SIMULATION AirflowDirections changed to" << direction;
m_flowDirection = direction;
- emit airflowDirectionChanged(direction);
+ emit airflowDirectionsChanged(direction);
}
void ClimateControlBackend::setAirConditioningEnabled(bool val, const QString &zone)
diff --git a/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.h b/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.h
index dc6c672..89081e4 100644
--- a/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.h
+++ b/src/plugins/ivivehiclefunctions/climate_simulator/climatecontrolbackend.h
@@ -62,14 +62,14 @@ public:
void setSeatHeater(int val, const QString &zone);
void setSteeringWheelHeater(int val, const QString &zone);
void setFanSpeedLevel(int, const QString &zone);
- void setAirflowDirection(QtIVIClimateControl::AirflowDirection direction, const QString &zone);
+ void setAirflowDirections(QtIVIClimateControl::AirflowDirections direction, const QString &zone);
void setAirConditioningEnabled(bool val, const QString &zone);
void setHeaterEnabled(bool val, const QString &zone);
void setAirRecirculationEnabled(bool val, const QString &zone);
private:
- QtIVIClimateControl::AirflowDirection m_flowDirection;
+ QtIVIClimateControl::AirflowDirections m_flowDirection;
bool m_airCondition;
bool m_heater;
bool m_airRecirculation;
diff --git a/tests/auto/vehiclefunctions/climatecontroltest/tst_climatecontroltest.cpp b/tests/auto/vehiclefunctions/climatecontroltest/tst_climatecontroltest.cpp
index 954bdc0..522b046 100644
--- a/tests/auto/vehiclefunctions/climatecontroltest/tst_climatecontroltest.cpp
+++ b/tests/auto/vehiclefunctions/climatecontroltest/tst_climatecontroltest.cpp
@@ -38,7 +38,7 @@ class ClimateControlTestBackend : public QtIVIClimateControlBackendInterface
public:
ClimateControlTestBackend()
: QtIVIClimateControlBackendInterface()
- , m_airflowDirection(QtIVIClimateControl::DefrostFloor)
+ , m_airflowDirections(QtIVIClimateControl::Floor | QtIVIClimateControl::Dashboard)
, m_airConditioningEnabled(false)
, m_airConditioningAttribute(QtIVIPropertyAttribute<bool>(true))
, m_heaterEnabled(false)
@@ -46,9 +46,9 @@ public:
, m_airRecirculationEnabled(false)
, m_airRecirculationAttribute(QtIVIPropertyAttribute<bool>(true))
{
- QVector<QtIVIClimateControl::AirflowDirection> list;
- list << QtIVIClimateControl::DefrostFloor << QtIVIClimateControl::BiLevel;
- m_airflowDirectionAttribute = list;
+ QVector<QtIVIClimateControl::AirflowDirections> list;
+ list << (QtIVIClimateControl::Floor | QtIVIClimateControl::Dashboard) << QtIVIClimateControl::Floor << QtIVIClimateControl::Dashboard;
+ m_airflowDirectionsAttribute = list;
m_zones << "FrontLeft" << "Upper" << "Lower";
foreach (const QString &z, m_zones) {
m_zoneTargetTemperature[z] = 0;
@@ -72,8 +72,8 @@ public:
void initializeAttributes() Q_DECL_OVERRIDE
{
- emit airflowDirectionChanged(m_airflowDirection);
- emit airflowDirectionAttributeChanged(m_airflowDirectionAttribute);
+ emit airflowDirectionsChanged(m_airflowDirections);
+ emit airflowDirectionsAttributeChanged(m_airflowDirectionsAttribute);
emit airConditioningEnabledChanged(m_airConditioningEnabled);
emit airConditioningAttributeChanged(m_airConditioningAttribute);
emit heaterEnabledChanged(m_heaterEnabled);
@@ -169,21 +169,21 @@ public:
}
}
- void setAirflowDirection(QtIVIClimateControl::AirflowDirection ad, const QString &z) Q_DECL_OVERRIDE
+ void setAirflowDirections(QtIVIClimateControl::AirflowDirections ad, const QString &z) Q_DECL_OVERRIDE
{
Q_UNUSED(z)
- if (m_airflowDirection != ad) {
- m_airflowDirection = ad;
- emit airflowDirectionChanged(m_airflowDirection);
+ if (m_airflowDirections != ad) {
+ m_airflowDirections = ad;
+ emit airflowDirectionsChanged(m_airflowDirections);
}
}
- void setAirflowDirectionAttribute(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> attribute, const QString &z)
+ void setAirflowDirectionsAttribute(QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> attribute, const QString &z)
{
Q_UNUSED(z)
- if (m_airflowDirectionAttribute != attribute) {
- m_airflowDirectionAttribute = attribute;
- emit airflowDirectionAttributeChanged(m_airflowDirectionAttribute, z);
+ if (m_airflowDirectionsAttribute != attribute) {
+ m_airflowDirectionsAttribute = attribute;
+ emit airflowDirectionsAttributeChanged(m_airflowDirectionsAttribute, z);
}
}
@@ -292,8 +292,8 @@ public:
}
private:
- QtIVIClimateControl::AirflowDirection m_airflowDirection;
- QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirection> m_airflowDirectionAttribute;
+ QtIVIClimateControl::AirflowDirections m_airflowDirections;
+ QtIVIPropertyAttribute<QtIVIClimateControl::AirflowDirections> m_airflowDirectionsAttribute;
bool m_airConditioningEnabled;
QtIVIPropertyAttribute<bool> m_airConditioningAttribute;
bool m_heaterEnabled;