@@ -31,7 +31,10 @@ flxRegisterDevice(flxDevAS7265X);
3131// ----------------------------------------------------------------------------------------------------------
3232// / @brief Constructor
3333// /
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}
3538{
3639
3740 setName (getDeviceName (), " AS7265X Triad Spectroscopy Sensor" );
@@ -40,6 +43,12 @@ flxDevAS7265X::flxDevAS7265X() : _indicator{true}, _gain{AS7265X_GAIN_16X}
4043 flxRegister (readWithLED, " Enable LED" , " Measure with LED enabled" );
4144 flxRegister (enableIndicator, " Enable Indicator" , " Indicator LED enabled" );
4245 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+
4352 flxRegister (outputCal, " Calibrated Output" , " Return calibrated values" );
4453
4554 // Register output params
@@ -95,15 +104,21 @@ bool flxDevAS7265X::onInitialize(TwoWire &wirePort)
95104{
96105 bool status = AS7265X::begin (wirePort);
97106
107+ // if initialization was successful - true - set parameters
98108 if (status)
99109 {
100110 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);
101116 }
102117 return status;
103118}
104119
105120// ---------------------------------------------------------------------------
106- // Indicator property
121+ // Indicator property - getter/setter
107122// ---------------------------------------------------------------------------
108123bool flxDevAS7265X::get_indicator (void )
109124{
@@ -124,7 +139,7 @@ void flxDevAS7265X::set_indicator(bool isOn)
124139}
125140
126141// ---------------------------------------------------------------------------
127- // Gain property
142+ // Gain property - getter/setter
128143// ---------------------------------------------------------------------------
129144
130145uint8_t flxDevAS7265X::get_gain (void )
@@ -138,9 +153,84 @@ void flxDevAS7265X::set_gain(uint8_t value)
138153 if (isInitialized ())
139154 AS7265X::setGain (value);
140155}
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+ }
141231// ---------------------------------------------------------------------------
142232// /
143- // / @brief Called right before data parameters are read - take measurments called
233+ // / @brief Called right before data parameters are read - take measurements called
144234// /
145235
146236bool flxDevAS7265X::execute (void )
0 commit comments