summaryrefslogtreecommitdiff
path: root/model/driver/bme680.dfa
blob: cb640f835fc2645178da84ca7da99927ce7dde26 (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
133
134
135
codegen:
  instance: bme680
  includes: ['driver/bme680.h']
  flags: ['drivers=bme680', 'arch_drivers=i2c']

dummygen:
  enum:
    rf24_pa_dbm_e:
      - RF24_PA_MIN
      - RF24_PA_LOW
      - RF24_PA_HIGH
      - RF24_PA_MAX
      - RF24_PA_ERROR
    rf24_datarate_e:
      - RF24_1MBPS
      - RF24_2MBPS
      - RF24_250KBPS
    rf24_crclength_e:
      - RF24_CRC_DISABLED
      - RF24_CRC_8
      - RF24_CRC_16

parameters:
- power_mode
- humidity_oversampling
- pressure_oversampling
- temperature_oversampling
- gas_enabled
- heater_duration_ms
- heater_temperature_degc

parameter_normalization:
  humidity_oversampling:
    enum:
      BME680_OS_NONE: 0
      BME680_OS_1X: 1
      BME680_OS_2X: 2
      BME680_OS_4X: 4
      BME680_OS_8X: 8
      BME680_OS_16X: 16
  pressure_oversampling:
    enum:
      BME680_OS_NONE: 0
      BME680_OS_1X: 1
      BME680_OS_2X: 2
      BME680_OS_4X: 4
      BME680_OS_8X: 8
      BME680_OS_16X: 16
  temperature_oversampling:
    enum:
      BME680_OS_NONE: 0
      BME680_OS_1X: 1
      BME680_OS_2X: 2
      BME680_OS_4X: 4
      BME680_OS_8X: 8
      BME680_OS_16X: 16

states:
  - UNINITIALIZED
  - SLEEP
  - SLEEP_PENDING_ATTR
  - FORCED

transition:
  init:
    src: [UNINITIALIZED, SLEEP, FORCED]
    dst: SLEEP
  setPowerMode:
    src: [SLEEP]
    dst: SLEEP
    arguments:
    - name: mode
      values: ['BME680_SLEEP_MODE', 'BME680_FORCED_MODE']
      parameter: power_mode
  setPowerMode:
    src: [SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: mode
      values: ['BME680_SLEEP_MODE', 'BME680_FORCED_MODE']
      parameter: power_mode
  setHumidityOversampling:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: os
      values: ['BME680_OS_NONE', 'BME680_OS_1X', 'BME680_OS_2X', 'BME680_OS_4X', 'BME680_OS_8X', 'BME680_OS_16X']
      parameter: humidity_oversampling
  setPressureOversampling:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: os
      values: ['BME680_OS_NONE', 'BME680_OS_1X', 'BME680_OS_2X', 'BME680_OS_4X', 'BME680_OS_8X', 'BME680_OS_16X']
      parameter: pressure_oversampling
  setTemperatureOversampling:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: os
      values: ['BME680_OS_NONE', 'BME680_OS_1X', 'BME680_OS_2X', 'BME680_OS_4X', 'BME680_OS_8X', 'BME680_OS_16X']
      parameter: temperature_oversampling
  setRunGas:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: enabled
      values: ['BME680_DISABLE_GAS_MEAS', 'BME680_ENABLE_GAS_MEAS']
      parameter: gas_enabled
  setHeaterDuration:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: ms
      values: [10, 30, 60, 100, 150]
      parameter: heater_duration_ms
  setHeaterTemp:
    src: [SLEEP, SLEEP_PENDING_ATTR]
    dst: SLEEP_PENDING_ATTR
    arguments:
    - name: degc
      values: [100, 150, 200, 250, 300]
      parameter: heater_temperature_degc
  setSensorSettings:
    src: [SLEEP_PENDING_ATTR]
    dst: SLEEP
    arguments:
    - name: desired_settings
      values: ['BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | BME680_GAS_SENSOR_SEL']
  setSensorMode:
    src: [SLEEP]
    dst: FORCED
  getSensorData:
    src: [FORCED]
    dst: SLEEP