Browse Source

module: respect shutdown settings when writing command

- this fixes a serious flaw where until now this library never powered the sensor down
- not noticable directly as the sensor still takes measurements but wastes power in between
pull/36/head
cn 2 years ago
parent
commit
5cf6d2aad5
  1. 6
      README.md
  2. 86
      tests/snapshots/snap_veml6070_test.py
  3. 2
      veml6070/veml6070.py

6
README.md

@ -14,6 +14,12 @@ Consult the [datasheet](https://www.vishay.com/docs/84277/veml6070.pdf), the [ap
Not all functions of the chip are supported, especially not the interrupt handling since I had no use for this. Please send pull requests for improvements and bug fixes!
## Serious Flaws before September 2019
In September 2019 it was discovered (and fixed) that:
- previously the sensor was never shutdown between measurements which wastes power but still takes measurements successfully
## License
Python files in this repository are released under the [MIT license](LICENSE).

86
tests/snapshots/snap_veml6070_test.py

@ -7,39 +7,6 @@ from snapshottest import Snapshot
snapshots = Snapshot()
snapshots['TestVeml6070::test_uva_light_intensity_raw 1'] = [
(
'w',
56,
6
),
(
'w',
56,
6
),
(
'w',
56,
6
),
(
'r',
57,
18
),
(
'r',
56,
52
),
(
'w',
56,
6
)
]
snapshots['TestVeml6070::test_disable 1'] = [
(
'w',
@ -49,12 +16,12 @@ snapshots['TestVeml6070::test_disable 1'] = [
(
'w',
56,
6
7
),
(
'w',
56,
6
7
)
]
@ -67,7 +34,7 @@ snapshots['TestVeml6070::test_enable 1'] = [
(
'w',
56,
6
7
),
(
'w',
@ -85,12 +52,12 @@ snapshots['TestVeml6070::test_integration_time 1'] = [
(
'w',
56,
2
3
),
(
'w',
56,
14
15
)
]
@ -103,7 +70,7 @@ snapshots['TestVeml6070::test_setup 1'] = [
(
'w',
56,
6
7
)
]
@ -116,7 +83,7 @@ snapshots['TestVeml6070::test_uva_light_intensity 1'] = [
(
'w',
56,
6
7
),
(
'w',
@ -136,12 +103,12 @@ snapshots['TestVeml6070::test_uva_light_intensity 1'] = [
(
'w',
56,
6
7
),
(
'w',
56,
14
15
),
(
'w',
@ -161,6 +128,39 @@ snapshots['TestVeml6070::test_uva_light_intensity 1'] = [
(
'w',
56,
14
15
)
]
snapshots['TestVeml6070::test_uva_light_intensity_raw 1'] = [
(
'w',
56,
6
),
(
'w',
56,
7
),
(
'w',
56,
6
),
(
'r',
57,
18
),
(
'r',
56,
52
),
(
'w',
56,
7
)
]

2
veml6070/veml6070.py

@ -64,7 +64,7 @@ class Veml6070(object):
assembles the command byte for the current state
"""
cmd = (self.shutdown & 0x01) << 0 # SD
cmd = (self.integration_time & 0x03) << 2 # IT
cmd = cmd | (self.integration_time & 0x03) << 2 # IT
cmd = ((cmd | 0x02) & 0x3F) # reserved bits
return cmd

Loading…
Cancel
Save