Skip to content

Commit 5721ab4

Browse files
committed
compiles and runs, but not valid yet
1 parent eec243e commit 5721ab4

File tree

3 files changed

+86
-68
lines changed

3 files changed

+86
-68
lines changed

examples/Example1_getLux/Example1_getLux.ino

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,43 @@
55
* Paul Clark
66
* SparkFun Electronics
77
* November 4th 2021
8-
*
8+
*
99
* This example demonstrates how to initialize the VEML7700 and then get the ambient light lux.
10-
*
10+
*
1111
* Want to support open source hardware? Buy a board from SparkFun!
1212
* <br>SparkX smôl Environmental Peripheral Board (SPX-18976): https://www.sparkfun.com/products/18976
13-
*
13+
*
1414
* Please see LICENSE.md for the license information
15-
*
15+
*
1616
*/
1717

1818
#include <SparkFun_VEML7700_Arduino_Library.h> // Click here to get the library: http://librarymanager/All#SparkFun_VEML7700
1919

20-
VEML7700 mySensor; // Create a VEML7700 object
20+
SparkFunVEML7700 mySensor; // Create a VEML7700 object
2121

2222
void setup()
2323
{
24-
Serial.begin(115200);
25-
Serial.println(F("SparkFun VEML7700 Example"));
24+
Serial.begin(115200);
25+
Serial.println(F("SparkFun VEML7700 Example"));
2626

27-
Wire.begin();
27+
Wire.begin();
2828

29-
//mySensor.enableDebugging(); // Uncomment this line to enable helpful debug messages on Serial
29+
// mySensor.enableDebugging(); // Uncomment this line to enable helpful debug messages on Serial
3030

31-
// Begin the VEML7700 using the Wire I2C port
32-
// .begin will return true on success, or false on failure to communicate
33-
if (mySensor.begin() == false)
34-
{
35-
Serial.println("Unable to communicate with the VEML7700. Please check the wiring. Freezing...");
36-
while (1)
37-
;
38-
}
31+
// Begin the VEML7700 using the Wire I2C port
32+
// .begin will return true on success, or false on failure to communicate
33+
if (mySensor.begin() == false)
34+
{
35+
Serial.println("Unable to communicate with the VEML7700. Please check the wiring. Freezing...");
36+
while (1)
37+
;
38+
}
3939

40-
Serial.println(F("Lux:"));
40+
Serial.println(F("Lux:"));
4141
}
4242

4343
void loop()
4444
{
45-
Serial.println(mySensor.getLux(), 4); // Read the lux from the sensor and print it
46-
delay(250);
45+
Serial.println(mySensor.readLux(), 4); // Read the lux from the sensor and print it
46+
delay(250);
4747
}

src/sfTk/sfDevVEML7700.cpp

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
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. */
3132
const 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))
9192
bool 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
/**************************************************************************/
371372
const 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
/**************************************************************************/
390390
sfTkError_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)
401401
uint16_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
/**************************************************************************/
417417
sfTkError_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)
428428
uint16_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)
457457
uint16_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
/**************************************************************************/
516527
VEML7700_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

527538
sfDevVEML7700::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

538549
VEML7700_integration_time_t sfDevVEML7700::integrationTimeFromConfig(

0 commit comments

Comments
 (0)