Skip to content

Commit

Permalink
Generate SEN66 driver from SEN66 model version 1.3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Driver Generator 2 committed Dec 3, 2024
1 parent 7531f9d commit 1f2683f
Show file tree
Hide file tree
Showing 11 changed files with 131 additions and 63 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,9 @@ jobs:
if: github.event_name == 'push' && github.ref != 'refs/head/main'
uses: sensirion/.github/.github/workflows/driver.common.todo_check.yml@main

dg-metadata-validation:
if: github.event_name == 'push' && github.ref != 'refs/head/main'
uses: sensirion/.github/.github/workflows/driver.generated.metadata_check.yml@main

test:
uses: sensirion/.github/.github/workflows/driver.python.test.yml@main
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.0.1] - 2024-12-1

### Fixed

- Fix naming from mass concentration to number concentration for read number concentration method (returned values were correct).
## [1.0.0] - 2024-11-25

### Added
Expand All @@ -21,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add interfaces to start, stop and read measurements.
- Add interfaces to read product name, serial number and version

[Unreleased]: https://github.com/Sensirion/python-i2c-sen66/compare/1.0.0...HEAD
[Unreleased]: https://github.com/Sensirion/python-i2c-sen66/compare/1.0.1...HEAD
[1.0.1]: https://github.com/Sensirion/python-i2c-sen66/compare/1.0.0...1.0.1
[1.0.0]: https://github.com/Sensirion/python-i2c-sen66/compare/0.1.0...1.0.0
[0.1.0]: https://github.com/Sensirion/python-i2c-sen66/releases/tag/0.1.0
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ For special setups you find the sensor pinout in the section below.

| *Pin* | *Cable Color* | *Name* | *Description* | *Comments* |
|-------|---------------|:------:|----------------|------------|
| 1 | red | VDD | Supply Voltage | 3.3V ±10%
| 1 | red | VDD | Supply Voltage | 3.3V ±5%
| 2 | black | GND | Ground |
| 3 | green | SDA | I2C: Serial data input / output | TTL 5V compatible
| 4 | yellow | SCL | I2C: Serial clock input | TTL 5V compatible
| 5 | | NC | Do not connect |
| 6 | | NC | Do not connect |
| 5 | | GND | Ground | Do not connect (Pins 2 and 5 are connected internally)
| 6 | | VDD | Supply Voltage | Do not connect (Pins 1 and 6 are connected internally)


</p>
Expand Down
2 changes: 1 addition & 1 deletion examples/example_usage_linux_sen66.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#

import argparse
Expand Down
2 changes: 1 addition & 1 deletion examples/example_usage_sensorbridge_sen66.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#

import argparse
Expand Down
4 changes: 2 additions & 2 deletions metadata.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# driver generation metadata
generator_version: 1.0.1
model_version: 1.3.0
model_version: 1.3.1
dg_status: released
is_manually_modified: false
first_generated: '2024-10-30 08:14'
last_generated: '2024-11-27 07:57'
last_generated: '2024-12-03 09:56'
2 changes: 1 addition & 1 deletion sensirion_i2c_sen66/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#
"""
The transfer classes specify the data that is transferred between host and sensor. The generated transfer classes
Expand Down
54 changes: 28 additions & 26 deletions sensirion_i2c_sen66/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#
"""
The class Sen66DeviceBase implements the low level interface of the sensor.
Expand All @@ -30,10 +30,12 @@
SetVocAlgorithmTuningParameters, StartContinuousMeasurement,
StartFanCleaning, StopMeasurement)

from sensirion_i2c_sen66.result_types import (SignalCo2, SignalHumidity, SignalMassConcentrationPm0p5,
SignalMassConcentrationPm10p0, SignalMassConcentrationPm1p0,
SignalMassConcentrationPm2p5, SignalMassConcentrationPm4p0,
SignalNoxIndex, SignalTemperature, SignalVocIndex)
from sensirion_i2c_sen66.result_types import (SignalCo2, SignalHumidity, SignalMassConcentrationPm10p0,
SignalMassConcentrationPm1p0, SignalMassConcentrationPm2p5,
SignalMassConcentrationPm4p0, SignalNoxIndex,
SignalNumberConcentrationPm0p5, SignalNumberConcentrationPm10p0,
SignalNumberConcentrationPm1p0, SignalNumberConcentrationPm2p5,
SignalNumberConcentrationPm4p0, SignalTemperature, SignalVocIndex)


class Sen66DeviceBase:
Expand Down Expand Up @@ -689,13 +691,13 @@ def read_measured_values(self):
Read measured values and apply scaling as defined in datasheet.
:return mass_concentration_pm1p0:
Mass concentration for particles smaller than 1.0 μm.
Mass concentration in μg/m³ for particles smaller than 1.0 μm.
:return mass_concentration_pm2p5:
Mass concentration for particles smaller than 2.5 μm.
Mass concentration in μg/m³ for particles smaller than 2.5 μm.
:return mass_concentration_pm4p0:
Mass concentration for particles smaller than 4.0 μm.
Mass concentration in μg/m³ for particles smaller than 4.0 μm.
:return mass_concentration_pm10p0:
Mass concentration for particles smaller than 10.0 μm.
Mass concentration in μg/m³ for particles smaller than 10.0 μm.
:return humidity:
Measured humidity in %RH.
:return temperature:
Expand All @@ -722,22 +724,22 @@ def read_number_concentration_values(self):
"""
Read measured number concentration values and apply scaling as defined in datasheet.
:return mass_concentration_pm0p5:
Mass concentration for particles smaller than 1.0 μm.
:return mass_concentration_pm1p0:
Mass concentration for particles smaller than 1.0 μm.
:return mass_concentration_pm2p5:
Mass concentration for particles smaller than 2.5 μm.
:return mass_concentration_pm4p0:
Mass concentration for particles smaller than 4.0 μm.
:return mass_concentration_pm10p0:
Mass concentration for particles smaller than 10.0 μm.
:return number_concentration_pm0p5:
Number concentration in particles/cm³ for particles smaller than 0.5 μm.
:return number_concentration_pm1p0:
Number concentration in particles/cm³ for particles smaller than 1.0 μm.
:return number_concentration_pm2p5:
Number concentration in particles/cm³ for particles smaller than 2.5 μm.
:return number_concentration_pm4p0:
Number concentration in particles/cm³ for particles smaller than 4.0 μm.
:return number_concentration_pm10p0:
Number concentration in particles/cm³ for particles smaller than 10.0 μm.
"""
(mass_concentration_pm0p5_raw, mass_concentration_pm1p0_raw, mass_concentration_pm2p5_raw,
mass_concentration_pm4p0_raw, mass_concentration_pm10p0_raw
(number_concentration_pm0p5_raw, number_concentration_pm1p0_raw, number_concentration_pm2p5_raw,
number_concentration_pm4p0_raw, number_concentration_pm10p0_raw
) = self.read_number_concentration_values_as_integers()
return (SignalMassConcentrationPm0p5(mass_concentration_pm0p5_raw),
SignalMassConcentrationPm1p0(mass_concentration_pm1p0_raw),
SignalMassConcentrationPm2p5(mass_concentration_pm2p5_raw),
SignalMassConcentrationPm4p0(mass_concentration_pm4p0_raw),
SignalMassConcentrationPm10p0(mass_concentration_pm10p0_raw))
return (SignalNumberConcentrationPm0p5(number_concentration_pm0p5_raw),
SignalNumberConcentrationPm1p0(number_concentration_pm1p0_raw),
SignalNumberConcentrationPm2p5(number_concentration_pm2p5_raw),
SignalNumberConcentrationPm4p0(number_concentration_pm4p0_raw),
SignalNumberConcentrationPm10p0(number_concentration_pm10p0_raw))
94 changes: 75 additions & 19 deletions sensirion_i2c_sen66/result_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#
"""
The signal classes specify transformations of the raw sensor signals into a meaningful units.
Expand All @@ -17,22 +17,8 @@
from sensirion_driver_support_types.signals import AbstractSignal


class SignalMassConcentrationPm0p5(AbstractSignal):
"""Mass concentration for particles smaller than 0.5 μm"""

def __init__(self, mass_concentration_pm0p5_raw):
self._mass_concentration_pm0p5 = mass_concentration_pm0p5_raw / 10.0

@property
def value(self):
return self._mass_concentration_pm0p5

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalMassConcentrationPm1p0(AbstractSignal):
"""Mass concentration for particles smaller than 1.0 μm"""
"""Mass concentration in μg/m³ for particles smaller than 1.0 μm"""

def __init__(self, mass_concentration_pm1p0_raw):
self._mass_concentration_pm1p0 = mass_concentration_pm1p0_raw / 10.0
Expand All @@ -46,7 +32,7 @@ def __str__(self):


class SignalMassConcentrationPm2p5(AbstractSignal):
"""Mass concentration for particles smaller than 2.5 μm"""
"""Mass concentration in μg/m³ for particles smaller than 2.5 μm"""

def __init__(self, mass_concentration_pm2p5_raw):
self._mass_concentration_pm2p5 = mass_concentration_pm2p5_raw / 10.0
Expand All @@ -60,7 +46,7 @@ def __str__(self):


class SignalMassConcentrationPm4p0(AbstractSignal):
"""Mass concentration for particles smaller than 4.0 μm"""
"""Mass concentration in μg/m³ for particles smaller than 4.0 μm"""

def __init__(self, mass_concentration_pm4p0_raw):
self._mass_concentration_pm4p0 = mass_concentration_pm4p0_raw / 10.0
Expand All @@ -74,7 +60,7 @@ def __str__(self):


class SignalMassConcentrationPm10p0(AbstractSignal):
"""Mass concentration for particles smaller than 10.0 μm"""
"""Mass concentration in μg/m³ for particles smaller than 10.0 μm"""

def __init__(self, mass_concentration_pm10p0_raw):
self._mass_concentration_pm10p0 = mass_concentration_pm10p0_raw / 10.0
Expand All @@ -87,6 +73,76 @@ def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalNumberConcentrationPm0p5(AbstractSignal):
"""Number concentration in particles/cm³ for particles smaller than 0.5 μm"""

def __init__(self, number_concentration_pm0p5_raw):
self._number_concentration_pm0p5 = number_concentration_pm0p5_raw / 10.0

@property
def value(self):
return self._number_concentration_pm0p5

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalNumberConcentrationPm1p0(AbstractSignal):
"""Number concentration in particles/cm³ for particles smaller than 1.0 μm"""

def __init__(self, number_concentration_pm1p0_raw):
self._number_concentration_pm1p0 = number_concentration_pm1p0_raw / 10.0

@property
def value(self):
return self._number_concentration_pm1p0

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalNumberConcentrationPm2p5(AbstractSignal):
"""Number concentration in particles/cm³ for particles smaller than 2.5 μm"""

def __init__(self, number_concentration_pm2p5_raw):
self._number_concentration_pm2p5 = number_concentration_pm2p5_raw / 10.0

@property
def value(self):
return self._number_concentration_pm2p5

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalNumberConcentrationPm4p0(AbstractSignal):
"""Number concentration in particles/cm³ for particles smaller than 4.0 μm"""

def __init__(self, number_concentration_pm4p0_raw):
self._number_concentration_pm4p0 = number_concentration_pm4p0_raw / 10.0

@property
def value(self):
return self._number_concentration_pm4p0

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalNumberConcentrationPm10p0(AbstractSignal):
"""Number concentration in particles/cm³ for particles smaller than 10.0 μm"""

def __init__(self, number_concentration_pm10p0_raw):
self._number_concentration_pm10p0 = number_concentration_pm10p0_raw / 10.0

@property
def value(self):
return self._number_concentration_pm10p0

def __str__(self):
return '{0:.2f}'.format(self.value)


class SignalTemperature(AbstractSignal):
"""Measured temperature in degrees celsius. The raw value is scaled appropriately."""

Expand Down
2 changes: 1 addition & 1 deletion sensirion_i2c_sen66/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function

version = "1.0.0"
version = "1.0.1"
16 changes: 8 additions & 8 deletions tests/test_sen66.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#
# Generator: sensirion-driver-generator 1.0.1
# Product: sen66
# Model-Version: 1.3.0
# Model-Version: 1.3.1
#

import pytest
Expand Down Expand Up @@ -179,14 +179,14 @@ def test_start_continuous_measurement1(sensor):
f"nox_index: {nox_index}; "
f"co2: {co2}; "
)
(mass_concentration_pm0p5, mass_concentration_pm1p0, mass_concentration_pm2p5, mass_concentration_pm4p0,
mass_concentration_pm10p0
(number_concentration_pm0p5, number_concentration_pm1p0, number_concentration_pm2p5, number_concentration_pm4p0,
number_concentration_pm10p0
) = sensor.read_number_concentration_values()
print(f"mass_concentration_pm0p5: {mass_concentration_pm0p5}; "
f"mass_concentration_pm1p0: {mass_concentration_pm1p0}; "
f"mass_concentration_pm2p5: {mass_concentration_pm2p5}; "
f"mass_concentration_pm4p0: {mass_concentration_pm4p0}; "
f"mass_concentration_pm10p0: {mass_concentration_pm10p0}; "
print(f"number_concentration_pm0p5: {number_concentration_pm0p5}; "
f"number_concentration_pm1p0: {number_concentration_pm1p0}; "
f"number_concentration_pm2p5: {number_concentration_pm2p5}; "
f"number_concentration_pm4p0: {number_concentration_pm4p0}; "
f"number_concentration_pm10p0: {number_concentration_pm10p0}; "
)
(number_concentration_pm0p5, number_concentration_pm1p0, number_concentration_pm2p5, number_concentration_pm4p0,
number_concentration_pm10p0
Expand Down

0 comments on commit 1f2683f

Please sign in to comment.