@@ -31,14 +31,15 @@ flxRegisterDevice(flxDevAS7265X);
3131// ----------------------------------------------------------------------------------------------------------
3232// / @brief Constructor
3333// /
34- flxDevAS7265X::flxDevAS7265X () : _indicator{true }
34+ flxDevAS7265X::flxDevAS7265X () : _indicator{true }, _gain{AS7265X_GAIN_16X}
3535{
3636
3737 setName (getDeviceName (), " AS7265X Triad Spectroscopy Sensor" );
3838
3939 // Properties
4040 flxRegister (readWithLED, " Enable LED" , " Measure with LED enabled" );
4141 flxRegister (enableIndicator, " Enable Indicator" , " Indicator LED enabled" );
42+ flxRegister (sensorGain, " Gain" , " Gain settings for sensor" );
4243 flxRegister (outputCal, " Calibrated Output" , " Return calibrated values" );
4344
4445 // Register output params
@@ -57,16 +58,15 @@ flxDevAS7265X::flxDevAS7265X() : _indicator{true}
5758 flxRegister (outI, " Channel I" );
5859 flxRegister (outJ, " Channel J" );
5960 flxRegister (outK, " Channel K" );
60- flxRegister (outL, " Channel L" );
61+ flxRegister (outL, " Channel L" );
6162
6263 // Register output params
6364 flxRegister (outR, " Channel R" );
6465 flxRegister (outS, " Channel S" );
6566 flxRegister (outT, " Channel T" );
6667 flxRegister (outU, " Channel U" );
6768 flxRegister (outV, " Channel V" );
68- flxRegister (outW, " Channel W" );
69-
69+ flxRegister (outW, " Channel W" );
7070}
7171
7272// ----------------------------------------------------------------------------------------------------------
@@ -93,10 +93,14 @@ bool flxDevAS7265X::isConnected(flxBusI2C &i2cDriver, uint8_t address)
9393// /
9494bool flxDevAS7265X::onInitialize (TwoWire &wirePort)
9595{
96- return AS7265X::begin (wirePort);
97- return false ;
98- }
96+ bool status = AS7265X::begin (wirePort);
9997
98+ if (status)
99+ {
100+ AS7265X::setGain (_gain);
101+ }
102+ return status;
103+ }
100104
101105// ---------------------------------------------------------------------------
102106// Indicator property
@@ -106,20 +110,34 @@ bool flxDevAS7265X::get_indicator(void)
106110 return _indicator;
107111}
108112
109-
110113void flxDevAS7265X::set_indicator (bool isOn)
111114{
112115 if (_indicator == isOn)
113116 return ;
114117
115118 if (isOn)
116119 AS7265X::enableIndicator ();
117- else
118- AS7265X::disableIndicator ();
120+ else
121+ AS7265X::disableIndicator ();
119122
120123 _indicator = isOn;
121124}
122125
126+ // ---------------------------------------------------------------------------
127+ // Gain property
128+ // ---------------------------------------------------------------------------
129+
130+ uint8_t flxDevAS7265X::get_gain (void )
131+ {
132+ return _gain;
133+ }
134+
135+ void flxDevAS7265X::set_gain (uint8_t value)
136+ {
137+ _gain = value;
138+ if (isInitialized ())
139+ AS7265X::setGain (value);
140+ }
123141// ---------------------------------------------------------------------------
124142// /
125143// / @brief Called right before data parameters are read - take measurments called
0 commit comments