summaryrefslogtreecommitdiff
path: root/examples/ivicore/qface-ivi-climate/example-ivi-climate.qface
blob: 07b5be72362793d12e12fb0a5ee3019bae12e0b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/**
 * Test module
 */
module Example.IVI.Climate 1.0;

/**
 * The ClimateControl provides a QML interface to the climate control
 * of the vehicle.
 */
@config: { zoned: true, id: "example.qtivi.ClimateControl/1.0", qml_type: "UiClimateControl" }
interface ClimateControl {
    /**
     * \brief Value is true if the air conditioning is enabled.
     */
    bool airConditioning;
    /**
     * \brief value is true if the heater is enabled.
     */
    bool heater;
    /**
     * \brief value holds the fan speed level, where the level can be between
     * minimumValue(off) to maximumValue (strongest).
     */
    @config_simulator: { range: [0, 50] }
    int fanSpeedLevel;
    /**
     * \brief value holds the steering wheel heater level, where the level can
     * be between minimumValue(off) to maximumValue (warmest).
     */
    @config_simulator: { minimum: 0 }
    int steeringWheelHeater;
    /**
     * \brief value holds the target temperature of the zone expressed
     * in centigrades, where the temperature can be between
     * minimumValue(coolest) to maximumValue (warmest).
     */
    @config_simulator: { maximum: 30.0 }
    real targetTemperature;
    /**
     * \brief value holds the seat cooler level, where the level can be
     * between minimumValue(off) to maximumValue (coolest).
     */
    int seatCooler;
    /**
     * \brief value holds the seat heater level, where the level can be between
     * minimumValue(off) to maximumValue (warmest).
     */
    int seatHeater;
    /**
     * \brief value holds the outside temperature of the zone expressed in
     * centigrades, where the temperature can be between
     * minimumValue(coolest) to maximumValue (warmest).
     */
    int outsideTemperature;
    /**
     * \brief outside temp lable
     */
    @config_simulator: { domain: ["cold", "mild", "warm" ] }
    string outsideTemperatureLabel;
    /**
     * \brief value is true if the zone synchronization is enabled.
     *
     * Which zones and properties are synchronized is controlled
     * by the backend implementing it.
     */
    bool zoneSynchronization;
    /**
     * \brief value is true if defrost is enabled. Usually that means that the fans
     * are on the highest level to remove ice from the windshield.
     */
    bool defrost;
    /**
     * \brief value holds the recirculation mode
     */
    RecirculationMode recirculationMode;
    /**
     * \brief value is true if the recirculation is currently running.
     */
    bool recirculation;
    /**
     * \brief value holds the sensitivity level of the recirculation
     * system when the recirculationMode is set to AutoRecirculation,
     * where the level can be between minimumValue(least sensitive)
     * to maximumValue(most sensitive).
     */
    int recirculationSensitivityLevel;
    /**
     * \brief value holds the climate mode
     */
    ClimateMode climateMode;
    /**
     * \brief value holds the intensity level of the fan when the climateMode
     * is set to AutoClimate, where the level can be between
     * minimumValue(least intensity) to maximumValue(most intensity).
     */
    int automaticClimateFanIntensityLevel;
    /**
     * \brief value holds the combination of flags indicating the areas
     * where airflow is on.
     */
    AirflowDirection airflowDirections;
}

/**
 * \brief Control where the airflow goes
 */
flag AirflowDirection {
    /**
     * \brief Airflow to the windshield
     */
    Windshield = 1,
    /**
     * \brief Airflow to the dashboard
     */
    Dashboard = 2,
    /**
     * \brief Airflow to the floor
     */
    Floor = 4
}

enum RecirculationMode {
    RecirculationOff = 0x0,
    RecirculationOn = 0x1,
    AutoRecirculation = 0x2
}

enum ClimateMode {
    ClimateOff = 0x0,
    ClimateOn = 0x1,
    AutoClimate = 0x2
}