Esempio n. 1
0
Alternatively you can use :func:`Get Magnetic Flux Density` and calculate the
heading with ``heading = atan2(y, x) * 180 / PI``.
""",
    'de':
    """
Gibt die Richtung zurück (Norden = 0 Grad, Osten = 90 Grad).

Alternativ kann die Funktion :func:`Get Magnetic Flux Density` genutzt werden um
die Richtung per ``heading = atan2(y, x) * 180 / PI`` zu bestimmen.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Heading',
                            data_name='Heading',
                            data_type='int16',
                            doc=heading_doc,
                            scale=(1, 10),
                            unit='Degree',
                            range_=(0, 3600))

com['packets'].append({
    'type':
    'function',
    'name':
    'Get Magnetic Flux Density',
    'elements': [('X', 'int32', 1, 'out', {
        'scale': (1, 10**8),
        'unit': 'Tesla',
        'range': (-80000, 80000)
    }),
                 ('Y', 'int32', 1, 'out', {
Esempio n. 2
0
    'constants': [('Disabled', 0), ('Enabled', 1)]
})

temperature_doc = {
    'en': """
Returns the temperature measured by the sensor.
""",
    'de': """
Gibt die gemessene Temperatur des Sensors zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Temperature',
                            data_name='Temperature',
                            data_type='int16',
                            doc=temperature_doc,
                            scale=(1, 100),
                            unit='Degree Celsius',
                            range_=(-4500, 13000))

com['packets'].append({
    'type':
    'function',
    'name':
    'Set Heater Configuration',
    'elements': [('Heater Config', 'uint8', 1, 'in', {
        'constant_group': 'Heater Config',
        'default': False
    })],
    'since_firmware': [1, 0, 0],
    'doc': [
ab. Die Beleuchtungsstärke ist in Lux/100 angegeben, d.h. bei einem Wert von
450000 wurde eine Beleuchtungsstärke von 4500Lux gemessen.

Eine Beleuchtungsstärke von 0Lux bedeutet eine Ausnahmesituation in der der
Sensor keine sinnvolle Messung durchführen kann. Dies kann bei sehr schwacher
oder sehr starker Beleuchtung auftreten. Bei starker Beleuchtung bedeutet diese
möglicherweise, dass der Sensor gesättigt (saturated) ist und die Konfiguration
angepasst werden sollte (:func:`Set Configuration`), um besser der Beleuchtung
zu entsprechen.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Illuminance',
                            data_name='Illuminance',
                            data_type='uint32',
                            doc=illuminance_doc,
                            scale=(1, 100),
                            unit='Lux')

com['packets'].append({
    'type':
    'function',
    'name':
    'Set Configuration',
    'elements': [('Illuminance Range', 'uint8', 1, 'in', {
        'constant_group': 'Illuminance Range',
        'default': 3
    }),
                 ('Integration Time', 'uint8', 1, 'in', {
                     'constant_group': 'Integration Time',
Returns the measured distance.

The laser has to be enabled, see :func:`Set Enable`.
""",
    'de':
    """
Gibt die gemessene Distanz zurück.

Der Laser muss aktiviert werden, siehe :func:`Set Enable`.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Distance',
                            data_name='Distance',
                            data_type='int16',
                            doc=distance_doc,
                            scale=(1, 100),
                            unit='Meter',
                            range_=(0, 4000))

velocity_doc = {
    'en':
    """
Returns the measured velocity. The value has a range of -12800 to 12700
and is given in 1/100 m/s.

The velocity measurement only produces stables results if a fixed
measurement rate (see :func:`Set Configuration`) is configured. Also the laser
has to be enabled, see :func:`Set Enable`.
""",
    'de':
                  ('1 1ms', 4), ('2 116ms', 5), ('4 156ms', 6), ('8 244ms', 7)]
})

current_doc = {
    'en': """
Returns the current.
""",
    'de': """
Gibt die gemessenen Stromstärke zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Current',
                            data_name='Current',
                            data_type='int32',
                            doc=current_doc,
                            scale=(1, 1000),
                            unit='Ampere',
                            range_=(-20000, 20000))

voltage_doc = {
    'en': """
Returns the voltage.
""",
    'de': """
Gibt die gemessenen Spannung zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Voltage',
    'de':
    """
Gibt den aktuellen Zählerwert des Encoders zurück. Wenn
reset auf true gesetzt wird, wird der Zählerstand
direkt nach dem auslesen auf 0 zurück gesetzt.

Der Encoder hat 24 Schritte pro Umdrehung.

Wenn der Encoder nach links gedreht wird wird der Zählerwert
dekrementiert, d.h. negative Zählerwerte sind möglich.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Count',
                            data_name='Count',
                            data_type='int32',
                            doc=count_doc)

com['packets'][0]['elements'].insert(0, ('Reset', 'bool', 1, 'in', {}))

com['packets'].append({
    'type':
    'function',
    'name':
    'Is Pressed',
    'elements': [('Pressed', 'bool', 1, 'out', {})],
    'since_firmware': [1, 0, 0],
    'doc': [
        'bf', {
            'en':
distance ranges are 40 to 300, 100 to 800 and 200 to 1500, depending on the
selected IR sensor.
""",
    'de':
    """
Gibt die gemessene Entfernung des Sensors zurück. Die möglichen
Entfernungsbereiche sind 40 bis 300, 100 bis 800 und 200 bis 1500, in Abhängigkeit vom
gewählten IR Sensor.
"""
}

add_callback_value_function(
    packets=com['packets'],
    name='Get Distance',
    data_name='Distance',
    data_type='uint16',
    doc=distance_doc,
    scale=(1, 1000),
    unit='Meter',
)

analog_value_doc = {
    'en':
    """
Returns the analog value as read by a analog-to-digital converter.

This is unfiltered raw data. We made sure that the integration time
of the ADC is shorter then the measurement interval of the sensor
(10ms vs 16.5ms). So there is no information lost.

If you want to do your own calibration or create your own lookup table
Esempio n. 8
0
    ]
})

co2_concentration_doc = {
    'en': """
Returns CO2 concentration.
""",
    'de': """
Gibt die CO2-Konzentration zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get CO2 Concentration',
                            data_name='CO2 Concentration',
                            data_type='uint16',
                            doc=co2_concentration_doc,
                            unit='Parts Per Million',
                            range_=(0, 40000))

temperature_doc = {
    'en':
    """
Returns temperature.

.. note::
 The sensor is able to messure up to 120 °C. However it is only specified up to 70 °C.
 Exposing the Bricklet to higher temperatures might result in permanent damage.
""",
    'de':
    """
Esempio n. 9
0
    ]
})

temperature_doc = {
    'en': """
Returns temperature.
""",
    'de': """
Gibt die Temperatur zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Temperature',
                            data_name='Temperature',
                            data_type='int32',
                            doc=temperature_doc,
                            scale=(1, 100),
                            unit='Degree Celsius')

humidity_doc = {
    'en': """
Returns relative humidity.
""",
    'de': """
Gibt die relative Luftfeuchtigkeit zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Humidity',
Esempio n. 10
0
}

voltage_doc = {
    'en': """
Returns the voltage for the given channel.
""",
    'de': """
Gibt die Spannung für den übergebenen Kanal zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Voltage',
                            data_name='Voltage',
                            data_type='int32',
                            channel_count=2,
                            doc=voltage_doc,
                            scale=(1, 1000),
                            unit='Volt',
                            range_=(-35000, 35000))

com['packets'].append({
    'type':
    'function',
    'name':
    'Set Sample Rate',
    'elements': [('Rate', 'uint8', 1, 'in', {
        'constant_group': 'Sample Rate',
        'default': 6
    })],
    'since_firmware': [1, 0, 0],
air_pressure_doc = {
'en':
"""
Returns the measured air pressure.
""",
'de':
"""
Gibt den Luftdruck des Luftdrucksensors zurück.
"""
}

add_callback_value_function(
    packets   = com['packets'],
    name      = 'Get Air Pressure',
    data_name = 'Air Pressure',
    data_type = 'int32',
    doc       = air_pressure_doc,
    scale     = (1, 1000),
    unit      = 'Hectopascal',
    range_    = (260000, 1260000)
)

altitude_doc = {
'en':
"""
Returns the relative altitude of the air pressure sensor. The value
is calculated based on the difference between the
current air pressure and the reference air pressure that can be set
with :func:`Set Reference Air Pressure`.
""",
'de':
"""
Esempio n. 12
0
magnetic_flux_density_doc = {
    'en':
    """
Returns the `magnetic flux density (magnetic induction) <https://en.wikipedia.org/wiki/Magnetic_flux>`__.
""",
    'de':
    """
Gibt die `magnetische Flussdichte (magnetische Induktion) <https://de.wikipedia.org/wiki/Magnetische_Flussdichte>`__ zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Magnetic Flux Density',
                            data_name='Magnetic Flux Density',
                            data_type='int16',
                            doc=magnetic_flux_density_doc,
                            scale=(1, 10**6),
                            unit='Tesla',
                            range_=(-7000, 7000))

com['packets'].append({
    'type':
    'function',
    'name':
    'Get Counter',
    'elements': [('Reset Counter', 'bool', 1, 'in', {}),
                 ('Count', 'uint32', 1, 'out', {})],
    'since_firmware': [1, 0, 0],
    'doc': [
        'bf', {
            'en':
Esempio n. 13
0
:func:`Set Configuration` eingestellt werden. Um die Beleuchtungsstärke in Lux zu
ermitteln, muss folgende Formel angewendet werden::

 lux = illuminance * 700 / gain / integration_time

Für eine korrekte Messung der Beleuchtungsstärke muss sichergestellt
sein, dass die Farbwerte (R, G oder B) nicht saturiert sind. Ein
Farbwert ist saturiert, wenn der Wert 65535 beträgt. In diesem Fall
kann die Verstärkung per :func:`Set Configuration` reduziert werden.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Illuminance',
                            data_name='Illuminance',
                            data_type='uint32',
                            doc=illuminance_doc,
                            scale='dynamic',
                            unit='Lux',
                            range_=(0, 103438))

color_temperature_doc = {
    'en':
    """
Returns the color temperature.

To get a correct color temperature measurement make sure that the color
values themselves are not saturated. The color value (R, G or B)
is saturated if it is equal to the maximum value of 65535.
In that case you have to reduce the gain, see :func:`Set Configuration`.
""",
    'de':
Esempio n. 14
0
Es ist möglich zu erkennen ob ein IEC 60381-1-kompatibler Sensor angeschlossen
ist und ob er funktionsfähig ist.

Falls die zurückgegebene Stromstärke kleiner als 4mA ist, ist wahrscheinlich
kein Sensor angeschlossen oder der Sensor ist defekt. Falls die zurückgegebene
Stromstärke über 20mA ist, besteht entweder ein Kurzschluss oder der Sensor
ist defekt. Somit ist erkennbar ob ein Sensor angeschlossen und funktionsfähig
ist.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Current',
                            data_name='Current',
                            data_type='int32',
                            channel_count=2,
                            doc=current_doc,
                            scale=(1, 1000 * 1000 * 1000),
                            unit='Ampere',
                            range_=(0, 22505322))

com['packets'].append({
    'type':
    'function',
    'name':
    'Set Sample Rate',
    'elements': [('Rate', 'uint8', 1, 'in', {
        'constant_group': 'Sample Rate',
        'default': 3
    })],
    'since_firmware': [1, 0, 0],
    'en':
    """
Returns the position of the rotary potentiometer. The value is
between -150° (turned left) and 150° (turned right).
""",
    'de':
    """
Gibt die Position des Drehpotentiometers zurück. Der Wertebereich ist
von -150° (links gedreht) und 150° (rechts gedreht).
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Position',
                            data_name='Position',
                            data_type='int16',
                            doc=position_doc,
                            unit='Degree',
                            range_=(-150, 150))

com['examples'].append({
    'name':
    'Simple',
    'functions': [('getter', ('Get Position', 'position'), [
        (('Position', 'Position'), 'int16', 1, None, '°', None)
    ], [])]
})

com['examples'].append({
    'name':
    'Callback',
position_doc = {
    'en':
    """
Returns the position of the linear potentiometer. The value is
between 0 (slider down) and 100 (slider up).
""",
    'de':
    """
Gibt die Position des Linearpotentiometers zurück. Der Wertebereich
ist von 0 (Schieberegler unten) und 100 (Schieberegler oben).
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Position',
                            data_name='Position',
                            data_type='uint8',
                            doc=position_doc,
                            range_=(0, 100))

com['examples'].append({
    'name':
    'Simple',
    'functions': [('getter', ('Get Position', 'position'), [
        (('Position', 'Position'), 'uint8', 1, None, '°', None)
    ], [])]
})

com['examples'].append({
    'name':
    'Callback',
    'functions': [('callback', ('Position', 'position'), [
Esempio n. 17
0
com['constant_groups'].append(THRESHOLD_OPTION_CONSTANT_GROUP)

ambient_temperature_doc = {
    'en': """
Returns the ambient temperature of the sensor.
""",
    'de': """
Gibt die Umgebungstemperatur des Sensors zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Ambient Temperature',
                            data_name='Temperature',
                            data_type='int16',
                            doc=ambient_temperature_doc,
                            scale=(1, 10),
                            unit='Degree Celsius',
                            range_=(-400, 1250))

object_temperature_doc = {
    'en':
    """
Returns the object temperature of the sensor, i.e. the temperature
of the surface of the object the sensor is aimed at.

The temperature of different materials is dependent on their `emissivity
<https://en.wikipedia.org/wiki/Emissivity>`__. The emissivity of the material
can be set with :func:`Set Emissivity`.
""",
    'de':
Esempio n. 18
0
    'constants': [('2', 2), ('3', 3), ('4', 4)]
})

temperature_doc = {
    'en': """
Returns the temperature of the connected sensor.
""",
    'de': """
Gibt die Temperatur des verbundenen Sensors zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Temperature',
                            data_name='Temperature',
                            data_type='int32',
                            doc=temperature_doc,
                            scale=(1, 100),
                            unit='Degree Celsius',
                            range_=(-24600, 84900))

resistance_doc = {
    'en':
    """
Returns the value as measured by the MAX31865 precision delta-sigma ADC.

The value can be converted with the following formulas:

* Pt100:  resistance = (value * 390) / 32768
* Pt1000: resistance = (value * 3900) / 32768
""",
    'de':
Esempio n. 19
0
com['constant_groups'].append(THRESHOLD_OPTION_CONSTANT_GROUP)

voltage_doc = {
    'en': """
Returns the USB supply voltage of the Raspberry Pi.
""",
    'de': """
Gibt die USB-Versorgungsspannung des Raspberry Pi zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get USB Voltage',
                            data_name='Voltage',
                            data_type='uint16',
                            doc=voltage_doc,
                            callback_since_firmware=[2, 0, 1],
                            scale=(1, 1000),
                            unit='Volt')

com['examples'].append({
    'name':
    'Simple',
    'functions': [('getter', ('Get USB Voltage', 'voltage'), [
        (('Voltage', 'Voltage'), 'uint16', 1, 1000.0, 'V', None)
    ], [])]
})

usb_voltage_channel = oh_generic_channel('USB Voltage',
                                         'USB Voltage',
                                         element_name='Voltage')
Esempio n. 20
0
:func:`Get UVI` verwendet werden.

Falls der Sensor gesättigt (saturated) ist, dann wird -1 zurückgegeben,
siehe :func:`Set Configuration`.

Wenn die Intensität periodisch abgefragt werden soll, wird empfohlen
den :cb:`UVA` Callback zu nutzen und die Periode mit
:func:`Set UVA Callback Configuration` vorzugeben.
"""
}

add_callback_value_function(
    packets   = com['packets'],
    name      = 'Get UVA',
    data_name = 'UVA',
    data_type = 'int32',
    doc       = uva_doc,
    scale     = (1, 10000),
    unit      = 'Watt Per Square Meter',
    range_    = (-1, None)
)

uvb_doc = {
'en':
"""
Returns the UVB intensity of the sensor.
The sensor has not weighted the intensity with the erythemal
action spectrum to get the skin-affecting irradiation. Therefore, you cannot
just divide the value by 250 to get the UVB index. To get the UV index use
:func:`Get UVI`.

If the sensor is saturated, then -1 is returned, see :func:`Set Configuration`.
Esempio n. 21
0
                  ('Show Distance', 3)]
})

distance_doc = {
    'en': """
Returns the distance.
""",
    'de': """
Gibt die Distanz zurück.
"""
}

add_callback_value_function(packets=com['packets'],
                            name='Get Distance',
                            data_name='Distance',
                            data_type='uint16',
                            doc=distance_doc,
                            scale=(1, 1000),
                            unit='Meter',
                            range_=(300, 5000))

com['packets'].append({
    'type':
    'function',
    'name':
    'Set Update Rate',
    'elements': [('Update Rate', 'uint8', 1, 'in', {
        'constant_group': 'Update Rate',
        'default': 0
    })],
    'since_firmware': [1, 0, 0],
    'doc': [
"""
Returns the measured voltage. The resolution is approximately 10mV to 1mV
depending on the oversampling configuration (:func:`Set Oversampling`).
""",
'de':
"""
Gibt die gemessene Spannung zurück. Die Auflösung ca. 10mV bis 1mV abhängig von der
Überabtastungs-Konfiguration (:func:`Set Oversampling`).
"""
}

add_callback_value_function(
    packets   = com['packets'],
    name      = 'Get Voltage',
    data_name = 'Voltage',
    data_type = 'uint16',
    doc       = voltage_doc,
    scale     = (1, 1000),
    unit      = 'Volt',
    range_    = (0, 42000)
)

com['packets'].append({
'type': 'function',
'name': 'Set Oversampling',
'elements': [('Oversampling', 'uint8', 1, 'in', {'constant_group': 'Oversampling', 'default': 7})],
'since_firmware': [1, 0, 0],
'doc': ['af', {
'en':
"""
Sets the oversampling between 32x and 16384x. The Bricklet
takes one 12bit sample every 17.5µs. Thus an oversampling