@@ -31,7 +31,10 @@ flxRegisterDevice(flxDevAS7265X);
31
31
// ----------------------------------------------------------------------------------------------------------
32
32
// / @brief Constructor
33
33
// /
34
- flxDevAS7265X::flxDevAS7265X () : _indicator{true }, _gain{AS7265X_GAIN_16X}
34
+ flxDevAS7265X::flxDevAS7265X ()
35
+ : _indicator{true }, _gain{AS7265X_GAIN_16X}, _mmode{AS7265X_MEASUREMENT_MODE_6CHAN_ONE_SHOT},
36
+ _icycles{kAS7265xDefaultIntCycles }, _ind_current{AS7265X_INDICATOR_CURRENT_LIMIT_8MA},
37
+ _white_current{AS7265X_LED_CURRENT_LIMIT_12_5MA}, _ir_current{AS7265X_LED_CURRENT_LIMIT_12_5MA}
35
38
{
36
39
37
40
setName (getDeviceName (), " AS7265X Triad Spectroscopy Sensor" );
@@ -40,6 +43,12 @@ flxDevAS7265X::flxDevAS7265X() : _indicator{true}, _gain{AS7265X_GAIN_16X}
40
43
flxRegister (readWithLED, " Enable LED" , " Measure with LED enabled" );
41
44
flxRegister (enableIndicator, " Enable Indicator" , " Indicator LED enabled" );
42
45
flxRegister (sensorGain, " Gain" , " Gain settings for sensor" );
46
+ flxRegister (measureMode, " Measurement Mode" , " Mode use when taking measurements" );
47
+ flxRegister (intCycles, " Integration Cycles" , " The number of cycles per reading (n * 2.8ms)" );
48
+ flxRegister (whiteCurrent, " White LED Current" , " White LED current - milli amps" );
49
+ flxRegister (irCurrent, " IR LED Current" , " IR LED current - milli amps" );
50
+ flxRegister (indicatorCurrent, " Indicator Current" , " Indicator current - milli amps" );
51
+
43
52
flxRegister (outputCal, " Calibrated Output" , " Return calibrated values" );
44
53
45
54
// Register output params
@@ -95,15 +104,21 @@ bool flxDevAS7265X::onInitialize(TwoWire &wirePort)
95
104
{
96
105
bool status = AS7265X::begin (wirePort);
97
106
107
+ // if initialization was successful - true - set parameters
98
108
if (status)
99
109
{
100
110
AS7265X::setGain (_gain);
111
+ AS7265X::setMeasurementMode (_mmode);
112
+ AS7265X::setIntegrationCycles (_icycles);
113
+ AS7265X::setIndicatorCurrent (_ind_current);
114
+ AS7265X::setBulbCurrent (_white_current, AS7265x_LED_WHITE);
115
+ AS7265X::setBulbCurrent (_ir_current, AS7265x_LED_IR);
101
116
}
102
117
return status;
103
118
}
104
119
105
120
// ---------------------------------------------------------------------------
106
- // Indicator property
121
+ // Indicator property - getter/setter
107
122
// ---------------------------------------------------------------------------
108
123
bool flxDevAS7265X::get_indicator (void )
109
124
{
@@ -124,7 +139,7 @@ void flxDevAS7265X::set_indicator(bool isOn)
124
139
}
125
140
126
141
// ---------------------------------------------------------------------------
127
- // Gain property
142
+ // Gain property - getter/setter
128
143
// ---------------------------------------------------------------------------
129
144
130
145
uint8_t flxDevAS7265X::get_gain (void )
@@ -138,9 +153,84 @@ void flxDevAS7265X::set_gain(uint8_t value)
138
153
if (isInitialized ())
139
154
AS7265X::setGain (value);
140
155
}
156
+
157
+ // ---------------------------------------------------------------------------
158
+ // Measurement Mode property - getter/setter
159
+ // ---------------------------------------------------------------------------
160
+ uint8_t flxDevAS7265X::get_mmode (void )
161
+ {
162
+ return _mmode;
163
+ }
164
+
165
+ void flxDevAS7265X::set_mmode (uint8_t value)
166
+ {
167
+ _mmode = value;
168
+ if (isInitialized ())
169
+ AS7265X::setMeasurementMode (value);
170
+ }
171
+
172
+ // ---------------------------------------------------------------------------
173
+ // Integration Cycles property - getter/setter
174
+ // ---------------------------------------------------------------------------
175
+ uint8_t flxDevAS7265X::get_icycles (void )
176
+ {
177
+ return _icycles;
178
+ }
179
+
180
+ void flxDevAS7265X::set_icycles (uint8_t value)
181
+ {
182
+ _icycles = value;
183
+ if (isInitialized ())
184
+ AS7265X::setIntegrationCycles (value);
185
+ }
186
+
187
+ // ---------------------------------------------------------------------------
188
+ // Indicator Current property - getter/setter
189
+ // ---------------------------------------------------------------------------
190
+ uint8_t flxDevAS7265X::get_ind_current (void )
191
+ {
192
+ return _ind_current;
193
+ }
194
+
195
+ void flxDevAS7265X::set_ind_current (uint8_t value)
196
+ {
197
+ _ind_current = value;
198
+ if (isInitialized ())
199
+ AS7265X::setIndicatorCurrent (value);
200
+ }
201
+
202
+ // ---------------------------------------------------------------------------
203
+ // White LED Current property - getter/setter
204
+ // ---------------------------------------------------------------------------
205
+ uint8_t flxDevAS7265X::get_white_current (void )
206
+ {
207
+ return _white_current;
208
+ }
209
+
210
+ void flxDevAS7265X::set_white_current (uint8_t value)
211
+ {
212
+ _white_current = value;
213
+ if (isInitialized ())
214
+ AS7265X::setBulbCurrent (value, AS7265x_LED_WHITE);
215
+ }
216
+
217
+ // ---------------------------------------------------------------------------
218
+ // IR LED Current property - getter/setter
219
+ // ---------------------------------------------------------------------------
220
+ uint8_t flxDevAS7265X::get_ir_current (void )
221
+ {
222
+ return _ir_current;
223
+ }
224
+
225
+ void flxDevAS7265X::set_ir_current (uint8_t value)
226
+ {
227
+ _ir_current = value;
228
+ if (isInitialized ())
229
+ AS7265X::setBulbCurrent (value, AS7265x_LED_IR);
230
+ }
141
231
// ---------------------------------------------------------------------------
142
232
// /
143
- // / @brief Called right before data parameters are read - take measurments called
233
+ // / @brief Called right before data parameters are read - take measurements called
144
234
// /
145
235
146
236
bool flxDevAS7265X::execute (void )
0 commit comments