@@ -31,14 +31,15 @@ flxRegisterDevice(flxDevAS7265X);
31
31
// ----------------------------------------------------------------------------------------------------------
32
32
// / @brief Constructor
33
33
// /
34
- flxDevAS7265X::flxDevAS7265X () : _indicator{true }
34
+ flxDevAS7265X::flxDevAS7265X () : _indicator{true }, _gain{AS7265X_GAIN_16X}
35
35
{
36
36
37
37
setName (getDeviceName (), " AS7265X Triad Spectroscopy Sensor" );
38
38
39
39
// Properties
40
40
flxRegister (readWithLED, " Enable LED" , " Measure with LED enabled" );
41
41
flxRegister (enableIndicator, " Enable Indicator" , " Indicator LED enabled" );
42
+ flxRegister (sensorGain, " Gain" , " Gain settings for sensor" );
42
43
flxRegister (outputCal, " Calibrated Output" , " Return calibrated values" );
43
44
44
45
// Register output params
@@ -57,16 +58,15 @@ flxDevAS7265X::flxDevAS7265X() : _indicator{true}
57
58
flxRegister (outI, " Channel I" );
58
59
flxRegister (outJ, " Channel J" );
59
60
flxRegister (outK, " Channel K" );
60
- flxRegister (outL, " Channel L" );
61
+ flxRegister (outL, " Channel L" );
61
62
62
63
// Register output params
63
64
flxRegister (outR, " Channel R" );
64
65
flxRegister (outS, " Channel S" );
65
66
flxRegister (outT, " Channel T" );
66
67
flxRegister (outU, " Channel U" );
67
68
flxRegister (outV, " Channel V" );
68
- flxRegister (outW, " Channel W" );
69
-
69
+ flxRegister (outW, " Channel W" );
70
70
}
71
71
72
72
// ----------------------------------------------------------------------------------------------------------
@@ -93,10 +93,14 @@ bool flxDevAS7265X::isConnected(flxBusI2C &i2cDriver, uint8_t address)
93
93
// /
94
94
bool flxDevAS7265X::onInitialize (TwoWire &wirePort)
95
95
{
96
- return AS7265X::begin (wirePort);
97
- return false ;
98
- }
96
+ bool status = AS7265X::begin (wirePort);
99
97
98
+ if (status)
99
+ {
100
+ AS7265X::setGain (_gain);
101
+ }
102
+ return status;
103
+ }
100
104
101
105
// ---------------------------------------------------------------------------
102
106
// Indicator property
@@ -106,20 +110,34 @@ bool flxDevAS7265X::get_indicator(void)
106
110
return _indicator;
107
111
}
108
112
109
-
110
113
void flxDevAS7265X::set_indicator (bool isOn)
111
114
{
112
115
if (_indicator == isOn)
113
116
return ;
114
117
115
118
if (isOn)
116
119
AS7265X::enableIndicator ();
117
- else
118
- AS7265X::disableIndicator ();
120
+ else
121
+ AS7265X::disableIndicator ();
119
122
120
123
_indicator = isOn;
121
124
}
122
125
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
+ }
123
141
// ---------------------------------------------------------------------------
124
142
// /
125
143
// / @brief Called right before data parameters are read - take measurments called
0 commit comments