#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (c) Copyright 2025 Sensirion AG, Switzerland
#
# THIS FILE IS AUTOMATICALLY GENERATED!
#
# Generator: sensirion-driver-generator 1.3.4
# Product: sfm3505
# Model-Version: 1.2.0
#
"""
The signal classes specify transformations of the raw sensor signals into a meaningful units.
The generated signal types are used by the driver class and not intended for direct use.
"""
from sensirion_driver_support_types.signals import AbstractSignal
[docs]class SignalAirFlow(AbstractSignal):
"""
This signal represents the measured Air flow in slm (at 20°C and 1013.25hPa).
It is scaled with the corresponding scaling factor and offset.
"""
def __init__(self, flow_bytes_raw):
flow_raw = (flow_bytes_raw[0] << 16) | (flow_bytes_raw[1] << 8) | flow_bytes_raw[2]
self._air_flow = (float(flow_raw) - 8388608) / 25600
@property
def value(self):
return self._air_flow
def __str__(self):
return '{0:.2f}'.format(self.value)
[docs]class SignalO2Flow(AbstractSignal):
"""
This signal represents the measured O2 flow in slm (at 20°C and 1013.25hPa).
It is scaled with the corresponding scaling factor and offset.
"""
def __init__(self, flow_bytes_raw):
flow_raw = (flow_bytes_raw[3] << 16) | (flow_bytes_raw[4] << 8) | flow_bytes_raw[5]
self._o2_flow = (float(flow_raw) - 8388608) / 25600
@property
def value(self):
return self._o2_flow
def __str__(self):
return '{0:.2f}'.format(self.value)
[docs]class SignalO2FlowRaw(AbstractSignal):
"""
This raw signal represents the measured O2 flow as returned by the sensor.
The result needs to be scaled to obtain slm.
"""
def __init__(self, flow_bytes_raw):
self._o2_flow_raw = int((flow_bytes_raw[3] << 16) | (flow_bytes_raw[4] << 8) | flow_bytes_raw[5])
@property
def value(self):
return self._o2_flow_raw
def __str__(self):
return '{0}'.format(self.value)
[docs]class SignalAirFlowRaw(AbstractSignal):
"""
This raw signal represents the measured Air flow as returned by the sensor.
The result needs to be scaled to obtain slm.
"""
def __init__(self, flow_bytes_raw):
self._air_flow_raw = int((flow_bytes_raw[0] << 16) | (flow_bytes_raw[1] << 8) | flow_bytes_raw[2])
@property
def value(self):
return self._air_flow_raw
def __str__(self):
return '{0}'.format(self.value)