mirror of
https://github.com/cmur2/python-veml6070.git
synced 2024-10-04 19:02:18 +02:00
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
This commit is contained in:
parent
2610387dae
commit
5cf6d2aad5
@ -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).
|
||||
|
@ -7,6 +7,131 @@ from snapshottest import Snapshot
|
||||
|
||||
snapshots = Snapshot()
|
||||
|
||||
snapshots['TestVeml6070::test_disable 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_enable 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_integration_time 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
2
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
3
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
15
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_setup 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_uva_light_intensity 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'r',
|
||||
57,
|
||||
1
|
||||
),
|
||||
(
|
||||
'r',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
7
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
15
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
14
|
||||
),
|
||||
(
|
||||
'r',
|
||||
57,
|
||||
1
|
||||
),
|
||||
(
|
||||
'r',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
15
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_uva_light_intensity_raw 1'] = [
|
||||
(
|
||||
'w',
|
||||
@ -16,7 +141,7 @@ snapshots['TestVeml6070::test_uva_light_intensity_raw 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
7
|
||||
),
|
||||
(
|
||||
'w',
|
||||
@ -36,131 +161,6 @@ snapshots['TestVeml6070::test_uva_light_intensity_raw 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_disable 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_enable 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_integration_time 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
2
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
2
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
14
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_setup 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
)
|
||||
]
|
||||
|
||||
snapshots['TestVeml6070::test_uva_light_intensity 1'] = [
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'r',
|
||||
57,
|
||||
1
|
||||
),
|
||||
(
|
||||
'r',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
14
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
14
|
||||
),
|
||||
(
|
||||
'r',
|
||||
57,
|
||||
1
|
||||
),
|
||||
(
|
||||
'r',
|
||||
56,
|
||||
6
|
||||
),
|
||||
(
|
||||
'w',
|
||||
56,
|
||||
14
|
||||
7
|
||||
)
|
||||
]
|
||||
|
@ -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…
Reference in New Issue
Block a user