AbstractZonedFeature QML Type

The AbstractZonedFeature is not directly accessible. The QML type provides base QML properties for all zoned features. More...

Import Statement: import QtInterfaceFramework
In C++: QIfAbstractZonedFeature
Inherits:

AbstractFeature

Properties

Methods

Detailed Description

AbstractZonedFeature provides an API to access all the available zones.

Once the backend is connected, the availableZones property can be used to learn about all currently available zones. A specific zone can be accessed using the zoneAt property or by using the zones property which returns all zones in a list.

ClimateControl{
    id: climateControl
}

Text {
    text: climateControl.zoneAt.FrontLeft.temperature
}

Property Documentation

asynchronousBackendLoading : bool [since 6.8]

This property holds whether backend loading is asynchronous.

By default, this property is false.

If set to true, the backend loading is asynchronous. This means that the feature will not wait for the backend to complete loading during auto discovery. Instead, the backend loads in the background and the feature will be updated once the backend is ready.

Note: This property defaults to true if the AbstractFeature is created within an asynchronous QQmlIncubator (e.g. Loader).

This property was introduced in Qt 6.8.


availableZones : QStringList [read-only]

Holds a list of the available zones.


backendUpdatesEnabled : bool [since 6.8]

This property holds whether backend updates are enabled

By default, this property is true.

setBackendUpdatesEnabled() is normally used to disable updates for a short period of time, for instance to skip expensive updates while the application is currently not visible on the screen.

This is especially useful when backend upates are triggered over an IPC and received by multiple applications. By disabling updates, the application can avoid unnecessary updates.

A change to this property will cause the connectToServiceObject() and disconnectFromServiceObject() functions to be called, depending on the new value.

This property was introduced in Qt 6.8.


configurationId : string [since 6.5]

Holds the id to determine which configuration this feature belongs to.

Once the id has been set, it is possible to change certain values using the InterfaceFrameworkConfiguration API.

Note: Values set in the matching InterfaceFrameworkConfiguration can override the initial values set during the component creation.

This property was introduced in Qt 6.5.

See also InterfaceFrameworkConfiguration.


discoveryMode : enumeration

Holds the mode that is used for the autoDiscovery

Available values are:

ConstantDescription
NoAutoDiscoveryNo auto discovery is done and the ServiceObject needs to be set manually.
AutoDiscoveryTries to find a production backend with a matching interface and falls back to a simulation backend if not found.
LoadOnlyProductionBackendsOnly tries to load a production backend with a matching interface.
LoadOnlySimulationBackendsOnly tries to load a simulation backend with a matching interface.

If necessary, auto discovery is started once the feature creation is completed.

Note: If you change this property after the feature is instantiated, make sure to call startAutoDiscovery() to search for a new service object.


discoveryResult : enumeration [read-only]

The result of the last autoDiscovery

Available values are:

ConstantDescription
NoResultIndicates that no auto discovery was started because the feature already has a valid ServiceObject assigned or no result could be returned as the backend is loaded asynchronously.
ErrorWhileLoadingAn error has happened while searching for a backend with a matching interface.
ProductionBackendLoadedA production backend was loaded, as a result of auto discovery.
SimulationBackendLoadedA simulation backend was loaded, as a result of auto discovery.

isInitialized : bool [read-only]

Indicates whether the feature has been initialized with all the values from the backend.

The property is true once the backend sends the QIfFeatureInterface::initializationDone signal to indicate that all values have now been initialized with values from the backend.

See also isValid and QIfFeatureInterface::initializationDone.


isValid : bool [read-only]

Indicates whether the feature is ready for use.

The property is true if the feature is ready to be used, otherwise false. Not being ready usually indicates that no suitable service object could be found, or that automatic discovery has not been triggered.

The backend still might not have sent all properties yet and is not fully initialized. Use isInitialized instead to know when the feature holds all correct values.

See also QIfServiceObject, discoveryMode, and isInitialized.


preferredBackends : list<string> [since 6.5]

Holds a list of wildcards to load the preferred backend during auto discovery.

The auto discovery mechanism will automatically search for backends which provide a matching interface for this feature implementation. See startAutoDiscovery() for more information.

In case multiple backends implement the same interface, the list of wildcards can be used to determine the correct one to load.

The wildcards are applied in order to the found backends. If the wildcard matches some backends those backends will be loaded, otherwise the next wildcard is used.

For example: Given an AbstractFeature with two backends, backend_mqtt.so and backend_qtro.so, the property can be set to "*_mqtt*" to always select the backend_mqtt.so backend when available.

This property was introduced in Qt 6.5.


serviceObject : ServiceObject

Sets the service object for the feature.

As Features only expose the front API facing the developer, a service object implementing the actual function is required. This is usually retrieved through the auto discovery mechanism.

The setter for this property returns false if the QIfServiceObject is already set to this particular instance or the QIfServiceObject isn't accepted by the feature.

See also discoveryMode.


zone : QString

Name of the zone for this zoned feature.

The zone can be given in the feature initialization. This property lets you control a single specific feature zone only.

This property is only writable before the backend is connected. Once the backend is discovered and the component is verified to be valid, the zone is not writable anymore. It's not recommended to change the zone after initialization.

 ClimateControl {
     zone: "FrontLeft"
     onAirConditioningChanged: {
         // Take action on front left A/C changes.
     }
}

zoneAt : QVariantMap [read-only]

Provides direct feature access to the given zone.

feature.zoneAt.FrontLeft

zones : QVariantList [read-only]

Provides access to the feature zones model.

model: feature.zones

Method Documentation

enumeration startAutoDiscovery()

Performs an automatic discovery attempt.

The feature tries to locate a single ServiceObject that implements the required interface.

If no ServiceObject is found, the feature remains invalid. If more than one ServiceObject is found, the first instance is used.

This function returns either the type of the backend that was loaded; or an error.

If the discoveryMode is set to QIfAbstractFeature::NoAutoDiscovery, this function does nothing and returns QIfAbstractFeature::NoResult.

Return values are:

ConstantDescription
NoResultIndicates that no auto discovery was started because the feature already has a valid ServiceObject assigned or no result could be returned as the backend is loaded asynchronously.
ErrorWhileLoadingIndicates an error has occurred while searching for a backend with a matching interface.
ProductionBackendLoadedA production backend was loaded, as a result of auto discovery.
SimulationBackendLoadedA simulation backend was loaded, as a result of auto discovery.

See also Dynamic Backend System and QIfServiceManager.


© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.