2626 */
2727
2828#include " sfDevVEML7700.h"
29+ #include " Arduino.h"
2930
3031/* * The sensor resolution vs. gain and integration time. Taken from the VEML7700 Application Note. */
3132const float VEML7700_LUX_RESOLUTION[VEML7700_SENSITIVITY_INVALID][VEML7700_INTEGRATION_INVALID] = {
@@ -54,10 +55,10 @@ sfTkError_t sfDevVEML7700::updateConfiguration(sfDevVEML7700Config_t &config)
5455 if (_theBus == nullptr )
5556 return ksfTkErrBusNotInit; // Not initialized
5657
57- return _theBus->readRegister ( (VEML7700_CONFIGURATION_REGISTER, config.all );
58+ return _theBus->readRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
5859}
5960// --------------------------------------------------------------------------------------------------
60- sfTkError_t sfDevVEML7700::begin (sfTkIBus *theBus))
61+ sfTkError_t sfDevVEML7700::begin (sfTkIBus *theBus)
6162{
6263
6364 // Nullptr check
@@ -91,7 +92,7 @@ sfTkError_t sfDevVEML7700::begin(sfTkIBus *theBus))
9192bool sfDevVEML7700::isConnected (void )
9293{
9394 sfDevVEML7700Config_t config;
94- return updateConfiguration (config) == ksfTkErrSuccess ;
95+ return updateConfiguration (config) == ksfTkErrOk ;
9596}
9697
9798/* *************************************************************************/
@@ -110,12 +111,12 @@ sfTkError_t sfDevVEML7700::setShutdown(bool shutdown)
110111 sfDevVEML7700Config_t config;
111112 sfTkError_t rc = updateConfiguration (config);
112113
113- if (rc != ksfTkErrSuccess )
114+ if (rc != ksfTkErrOk )
114115 return rc; // Error reading the configuration register
115116
116117 config.CONFIG_REG_SD = shutdown ? VEML7700_SHUT_DOWN : VEML7700_POWER_ON;
117118
118- return theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
119+ return _theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
119120}
120121
121122/* *************************************************************************/
@@ -129,10 +130,10 @@ bool sfDevVEML7700::isShutdown(void)
129130 sfDevVEML7700Config_t config;
130131 sfTkError_t rc = updateConfiguration (config);
131132
132- if (rc != ksfTkErrSuccess )
133+ if (rc != ksfTkErrOk )
133134 return true ; // Error reading the configuration register
134135
135- return (((VEML7700_shutdown_t)_configurationRegister .CONFIG_REG_SD ) == VEML7700_SHUT_DOWN);
136+ return (((VEML7700_shutdown_t)config .CONFIG_REG_SD ) == VEML7700_SHUT_DOWN);
136137}
137138
138139/* *************************************************************************/
@@ -151,12 +152,12 @@ sfTkError_t sfDevVEML7700::enableInterrupt(bool bEnable)
151152 sfDevVEML7700Config_t config;
152153 sfTkError_t rc = updateConfiguration (config);
153154
154- if (rc != ksfTkErrSuccess )
155+ if (rc != ksfTkErrOk )
155156 return rc; // Error reading the configuration register
156157
157158 config.CONFIG_REG_INT_EN = (VEML7700_t)bEnable;
158159
159- return theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
160+ return _theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
160161}
161162
162163/* *************************************************************************/
@@ -173,7 +174,7 @@ bool sfDevVEML7700::interruptEnabled(void)
173174 sfDevVEML7700Config_t config;
174175 sfTkError_t rc = updateConfiguration (config);
175176
176- if (rc != ksfTkErrSuccess )
177+ if (rc != ksfTkErrOk )
177178 return false ; // Error reading the configuration register
178179
179180 return config.CONFIG_REG_INT_EN == VEML7700_INT_ENABLE;
@@ -199,11 +200,11 @@ sfTkError_t sfDevVEML7700::setPersistenceProtect(VEML7700_persistence_protect_t
199200 sfDevVEML7700Config_t config;
200201 sfTkError_t rc = updateConfiguration (config);
201202
202- if (rc != ksfTkErrSuccess )
203+ if (rc != ksfTkErrOk )
203204 return rc; // Error reading the configuration register
204205
205206 config.CONFIG_REG_PERS = (VEML7700_t)pp;
206- return theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
207+ return _theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
207208}
208209
209210/* *************************************************************************/
@@ -219,7 +220,7 @@ VEML7700_persistence_protect_t sfDevVEML7700::persistenceProtect(void)
219220 sfDevVEML7700Config_t config;
220221 sfTkError_t rc = updateConfiguration (config);
221222
222- if (rc != ksfTkErrSuccess )
223+ if (rc != ksfTkErrOk )
223224 return VEML7700_PERSISTENCE_INVALID; // Error reading the configuration register
224225
225226 return (VEML7700_persistence_protect_t)config.CONFIG_REG_PERS ;
@@ -265,11 +266,11 @@ sfTkError_t sfDevVEML7700::setIntegrationTime(VEML7700_integration_time_t it)
265266 sfDevVEML7700Config_t config;
266267 sfTkError_t rc = updateConfiguration (config);
267268
268- if (rc != ksfTkErrSuccess )
269+ if (rc != ksfTkErrOk )
269270 return rc; // Error reading the configuration register
270271
271272 config.CONFIG_REG_IT = (VEML7700_t)integrationTimeConfig (it);
272- return theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
273+ return _theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
273274}
274275
275276/* *************************************************************************/
@@ -291,7 +292,7 @@ VEML7700_integration_time_t sfDevVEML7700::integrationTime(void)
291292 sfDevVEML7700Config_t config;
292293 sfTkError_t rc = updateConfiguration (config);
293294
294- if (rc != ksfTkErrSuccess )
295+ if (rc != ksfTkErrOk )
295296 return VEML7700_INTEGRATION_INVALID; // Error reading the configuration register
296297
297298 return ((VEML7700_integration_time_t)integrationTimeFromConfig (
@@ -333,11 +334,11 @@ sfTkError_t sfDevVEML7700::setSensitivityMode(VEML7700_sensitivity_mode_t sm)
333334 sfDevVEML7700Config_t config;
334335 sfTkError_t rc = updateConfiguration (config);
335336
336- if (rc != ksfTkErrSuccess )
337+ if (rc != ksfTkErrOk )
337338 return rc; // Error reading the configuration register
338339
339340 config.CONFIG_REG_SM = (VEML7700_t)sm;
340- return theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
341+ return _theBus ->writeRegister (VEML7700_CONFIGURATION_REGISTER, config.all );
341342}
342343
343344/* *************************************************************************/
@@ -357,7 +358,7 @@ VEML7700_sensitivity_mode_t sfDevVEML7700::sensitivityMode()
357358 sfDevVEML7700Config_t config;
358359 sfTkError_t rc = updateConfiguration (config);
359360
360- if (rc != ksfTkErrSuccess )
361+ if (rc != ksfTkErrOk )
361362 return VEML7700_SENSITIVITY_INVALID; // Error reading the configuration register
362363
363364 return ((VEML7700_sensitivity_mode_t)config.CONFIG_REG_SM );
@@ -370,11 +371,10 @@ VEML7700_sensitivity_mode_t sfDevVEML7700::sensitivityMode()
370371/* *************************************************************************/
371372const char *sfDevVEML7700::sensitivityModeString ()
372373{
373- VEML7700_sensitivity_mode_t sm = sensitivityMode ()
374+ VEML7700_sensitivity_mode_t sm = sensitivityMode ();
374375
375- if (sm < VEML7700_SENSITIVITY_x1 ||
376- sm >= VEML7700_SENSITIVITY_INVALID) return " INVALID" ; // Invalid sensitivity mode setting
377- getSensitivityMode (&sm);
376+ if (sm < VEML7700_SENSITIVITY_x1 || sm >= VEML7700_SENSITIVITY_INVALID)
377+ return " INVALID" ; // Invalid sensitivity mode setting
378378
379379 return kVEML7700GainSettingsString [sm];
380380}
@@ -389,7 +389,7 @@ const char *sfDevVEML7700::sensitivityModeString()
389389/* *************************************************************************/
390390sfTkError_t sfDevVEML7700::setHighThreshold (uint16_t threshold)
391391{
392- return theBus ->writeRegister (VEML7700_HIGH_THRESHOLD, threshold);
392+ return _theBus ->writeRegister (VEML7700_HIGH_THRESHOLD, threshold);
393393}
394394
395395/* *************************************************************************/
@@ -401,9 +401,9 @@ sfTkError_t sfDevVEML7700::setHighThreshold(uint16_t threshold)
401401uint16_t sfDevVEML7700::highThreshold (void )
402402{
403403 uint16_t threshold;
404- sfTkError_t rc =_theBus->readRegister ( (VEML7700_HIGH_THRESHOLD, threshold);
405-
406- return rc == ksfTkErrSuccess ? threshold : kVEML7700ValueError ; // Return 0xFFFF on error
404+ sfTkError_t rc = _theBus->readRegister (VEML7700_HIGH_THRESHOLD, threshold);
405+
406+ return rc == ksfTkErrOk ? threshold : kVEML7700ValueError ; // Return 0xFFFF on error
407407}
408408
409409/* *************************************************************************/
@@ -416,7 +416,7 @@ uint16_t sfDevVEML7700::highThreshold(void)
416416/* *************************************************************************/
417417sfTkError_t sfDevVEML7700::setLowThreshold (uint16_t threshold)
418418{
419- return theBus ->writeRegister (VEML7700_LOW_THRESHOLD, threshold);
419+ return _theBus ->writeRegister (VEML7700_LOW_THRESHOLD, threshold);
420420}
421421
422422/* *************************************************************************/
@@ -428,9 +428,9 @@ sfTkError_t sfDevVEML7700::setLowThreshold(uint16_t threshold)
428428uint16_t sfDevVEML7700::lowThreshold (void )
429429{
430430 uint16_t threshold;
431- sfTkError_t rc =_theBus->readRegister ( (VEML7700_LOW_THRESHOLD, threshold);
432-
433- return rc == ksfTkErrSuccess ? threshold : kVEML7700ValueError ; // Return 0xFFFF on error
431+ sfTkError_t rc = _theBus->readRegister (VEML7700_LOW_THRESHOLD, threshold);
432+
433+ return rc == ksfTkErrOk ? threshold : kVEML7700ValueError ; // Return 0xFFFF on error
434434}
435435
436436/* *************************************************************************/
@@ -443,9 +443,9 @@ uint16_t sfDevVEML7700::readAmbientLight(void)
443443{
444444
445445 uint16_t ambient;
446- sfTkError_t rc =_theBus->readRegister ( (VEML7700_ALS_OUTPUT, ambient);
447-
448- return rc == ksfTkErrSuccess ? ambient : kVEML7700ValueError ;
446+ sfTkError_t rc = _theBus->readRegister (VEML7700_ALS_OUTPUT, ambient);
447+
448+ return rc == ksfTkErrOk ? ambient : kVEML7700ValueError ;
449449}
450450
451451/* *************************************************************************/
@@ -457,9 +457,9 @@ uint16_t sfDevVEML7700::readAmbientLight(void)
457457uint16_t sfDevVEML7700::readWhiteLevel (void )
458458{
459459 uint16_t whiteLevel;
460- sfTkError_t rc =_theBus->readRegister ( (VEML7700_WHITE_OUTPUT, whiteLevel);
461-
462- return rc == ksfTkErrSuccess ? whiteLevel : kVEML7700ValueError ;
460+ sfTkError_t rc = _theBus->readRegister (VEML7700_WHITE_OUTPUT, whiteLevel);
461+
462+ return rc == ksfTkErrOk ? whiteLevel : kVEML7700ValueError ;
463463}
464464
465465/* *************************************************************************/
@@ -479,18 +479,29 @@ float sfDevVEML7700::readLux(void)
479479 VEML7700_sensitivity_mode_t senseMode = sensitivityMode ();
480480
481481 if (senseMode == VEML7700_SENSITIVITY_INVALID)
482+ {
483+ Serial.println (" Invalid sensitivity mode" );
482484 return 0.0 ;
485+ }
483486
484487 VEML7700_integration_time_t intTime = integrationTime ();
485488
486489 if (intTime == VEML7700_INTEGRATION_INVALID)
490+ {
491+ Serial.println (" Invalid integration time" );
487492 return 0.0 ;
493+ }
488494
489495 /* * Now we read the ambient level and multiply it by the resolution */
490- uint16_t ambient = ambientLight ();
496+ uint16_t ambient = readAmbientLight ();
491497
492498 if (ambient == kVEML7700ValueError )
499+ {
500+ Serial.println (" Error reading ambient light" );
493501 return 0.0 ;
502+ }
503+ Serial.printf (" sends: %d, intTime: %d, factor: %f, ambient: %d\n " , senseMode, intTime,
504+ VEML7700_LUX_RESOLUTION[senseMode][intTime], ambient);
494505
495506 // Apply the resolution to the ambient light reading
496507 return (float )ambient * VEML7700_LUX_RESOLUTION[senseMode][intTime];
@@ -515,24 +526,24 @@ float sfDevVEML7700::readLux(void)
515526/* *************************************************************************/
516527VEML7700_interrupt_status_t sfDevVEML7700::interruptStatus (void )
517528{
518- VEML7700_error_t err;
529+
519530 VEML7700_INTERRUPT_STATUS_REGISTER_t isr;
520531
521532 uint16_t ambient;
522- sfTkError_t rc =_theBus->readRegister ( (VEML7700_INTERRUPT_STATUS, isr.all );
533+ sfTkError_t rc = _theBus->readRegister (VEML7700_INTERRUPT_STATUS, isr.all );
523534
524- return rc != ksfTkErrSuccess ? VEML7700_INT_STATUS_INVALID : (VEML7700_interrupt_status_t)isr.INT_STATUS_REG_INT_FLAGS ;
535+ return rc != ksfTkErrOk ? VEML7700_INT_STATUS_INVALID : (VEML7700_interrupt_status_t)isr.INT_STATUS_REG_INT_FLAGS ;
525536}
526537
527538sfDevVEML7700::VEML7700_config_integration_time_t sfDevVEML7700::integrationTimeConfig (VEML7700_integration_time_t it)
528539{
529540 // since the value of integration time is defined in a simple sequential order, and the intput is typed,
530541 // just use a translation table.
531- VEML7700_config_integration_time_t table[] = {VEML7700_CONFIG_INTEGRATION_25ms, VEML7700_CONFIG_INTEGRATION_50ms,
532- VEML7700_CONFIG_INTEGRATION_100ms, VEML7700_CONFIG_INTEGRATION_200ms,
533- VEML7700_CONFIG_INTEGRATION_400ms, VEML7700_CONFIG_INTEGRATION_800ms] ;
542+ VEML7700_config_integration_time_t table[] = {VEML7700_CONFIG_INTEGRATION_25ms, VEML7700_CONFIG_INTEGRATION_50ms,
543+ VEML7700_CONFIG_INTEGRATION_100ms, VEML7700_CONFIG_INTEGRATION_200ms,
544+ VEML7700_CONFIG_INTEGRATION_400ms, VEML7700_CONFIG_INTEGRATION_800ms} ;
534545
535- return tt < VEML7700_INTEGRATION_INVALID ? table[tt ] : VEML7700_CONFIG_INTEGRATION_INVALID;
546+ return it < VEML7700_INTEGRATION_INVALID ? table[it ] : VEML7700_CONFIG_INTEGRATION_INVALID;
536547}
537548
538549VEML7700_integration_time_t sfDevVEML7700::integrationTimeFromConfig (
0 commit comments