.. _object_SensirionSFM3300: :index:`SensirionSFM3300` ------------------------- Description *********** This object was introduced in InCore 2.5. :**› Inherits**: :ref:`SensirionHDLC ` Overview ******** Properties ++++++++++ .. hlist:: :columns: 3 * :ref:`baseUnit ` * :ref:`measureContinuously ` * :ref:`sensorSerialNumber ` * :ref:`siPrefix ` * :ref:`timeBase ` * :ref:`unit ` * :ref:`value ` * :ref:`SensirionHDLC.articleCode ` * :ref:`SensirionHDLC.error ` * :ref:`SensirionHDLC.errorString ` * :ref:`SensirionHDLC.firmwareVersion ` * :ref:`SensirionHDLC.hardwareVersion ` * :ref:`SensirionHDLC.productName ` * :ref:`SensirionHDLC.serialNumber ` * :ref:`SerialPortBusNode.bus ` * :ref:`SerialPortBusNode.portName ` * :ref:`SerialPortBusNode.responseTimeout ` * :ref:`SerialPortBusNode.serialPort ` * :ref:`Object.objectId ` * :ref:`Object.parent ` Methods +++++++ .. hlist:: :columns: 1 * :ref:`pollValue() ` * :ref:`SensirionHDLC.reset() ` * :ref:`SensirionHDLC.sendCommand() ` * :ref:`Object.deserializeProperties() ` * :ref:`Object.fromJson() ` * :ref:`Object.serializeProperties() ` * :ref:`Object.toJson() ` Signals +++++++ .. hlist:: :columns: 1 * :ref:`SensirionHDLC.errorOccurred() ` * :ref:`SensirionHDLC.responseReceived() ` * :ref:`Object.completed() ` Enumerations ++++++++++++ .. hlist:: :columns: 1 * :ref:`BaseUnit ` * :ref:`SensirionHDLC.Error ` Properties ********** .. _property_SensirionSFM3300_baseUnit: .. _signal_SensirionSFM3300_baseUnitChanged: .. index:: single: baseUnit baseUnit ++++++++ This property holds the base unit for temperature or pressure measurements. :**› Type**: :ref:`BaseUnit ` :**› Signal**: baseUnitChanged() :**› Attributes**: Readonly .. _property_SensirionSFM3300_measureContinuously: .. _signal_SensirionSFM3300_measureContinuouslyChanged: .. index:: single: measureContinuously measureContinuously +++++++++++++++++++ This property holds whether to configure the sensor such that it measures continuously. :**› Type**: Boolean :**› Default**: ``true`` :**› Signal**: measureContinuouslyChanged() :**› Attributes**: Writable .. _property_SensirionSFM3300_sensorSerialNumber: .. _signal_SensirionSFM3300_sensorSerialNumberChanged: .. index:: single: sensorSerialNumber sensorSerialNumber ++++++++++++++++++ This property holds the serial number of the attached sensor. :**› Type**: UnsignedInteger :**› Signal**: sensorSerialNumberChanged() :**› Attributes**: Readonly .. _property_SensirionSFM3300_siPrefix: .. _signal_SensirionSFM3300_siPrefixChanged: .. index:: single: siPrefix siPrefix ++++++++ This property holds the SI prefix for measurements. :**› Type**: :ref:`Measurement.SiPrefix ` :**› Signal**: siPrefixChanged() :**› Attributes**: Readonly .. _property_SensirionSFM3300_timeBase: .. _signal_SensirionSFM3300_timeBaseChanged: .. index:: single: timeBase timeBase ++++++++ This property holds the time base unit for measurements. :**› Type**: :ref:`Measurement.Unit ` :**› Signal**: timeBaseChanged() :**› Attributes**: Readonly .. _property_SensirionSFM3300_unit: .. _signal_SensirionSFM3300_unitChanged: .. index:: single: unit unit ++++ This property holds the full unit string based on :ref:`siPrefix `, :ref:`baseUnit ` and :ref:`timeBase `. :**› Type**: String :**› Signal**: unitChanged() :**› Attributes**: Readonly .. _property_SensirionSFM3300_value: .. _signal_SensirionSFM3300_valueChanged: .. index:: single: value value +++++ This property holds the most recently measured value from the sensor. :**› Type**: Float :**› Signal**: valueChanged() :**› Attributes**: Readonly, Requires :ref:`Polling ` Methods ******* .. _method_SensirionSFM3300_pollValue: .. index:: single: pollValue pollValue() +++++++++++ This method polls the :ref:`value ` property. It is called automatically when using a :ref:`Polling ` property modifier on this property and usually does not have to be called manually. Enumerations ************ .. _enum_SensirionSFM3300_BaseUnit: .. index:: single: BaseUnit BaseUnit ++++++++ .. index:: single: SensirionSFM3300.NoBaseUnit .. index:: single: SensirionSFM3300.NormLiter .. index:: single: SensirionSFM3300.StandardLiter .. index:: single: SensirionSFM3300.Liter .. index:: single: SensirionSFM3300.Gram .. index:: single: SensirionSFM3300.Pascal .. index:: single: SensirionSFM3300.Bar .. index:: single: SensirionSFM3300.MeterOfWater .. index:: single: SensirionSFM3300.InchOfWater .. list-table:: :widths: auto :header-rows: 1 * - Name - Value - Description .. _enumitem_SensirionSFM3300_NoBaseUnit: * - ``SensirionSFM3300.NoBaseUnit`` - ``0`` - .. _enumitem_SensirionSFM3300_NormLiter: * - ``SensirionSFM3300.NormLiter`` - ``1`` - .. _enumitem_SensirionSFM3300_StandardLiter: * - ``SensirionSFM3300.StandardLiter`` - ``2`` - .. _enumitem_SensirionSFM3300_Liter: * - ``SensirionSFM3300.Liter`` - ``3`` - .. _enumitem_SensirionSFM3300_Gram: * - ``SensirionSFM3300.Gram`` - ``4`` - .. _enumitem_SensirionSFM3300_Pascal: * - ``SensirionSFM3300.Pascal`` - ``5`` - .. _enumitem_SensirionSFM3300_Bar: * - ``SensirionSFM3300.Bar`` - ``6`` - .. _enumitem_SensirionSFM3300_MeterOfWater: * - ``SensirionSFM3300.MeterOfWater`` - ``7`` - .. _enumitem_SensirionSFM3300_InchOfWater: * - ``SensirionSFM3300.InchOfWater`` - ``8`` - .. _example_SensirionSFM3300: Example ******* .. code-block:: qml import InCore.Foundation 2.5 import InCore.IO 2.5 Application { SensirionSFM3300 { property real volume: 0 portName: "ttyUSB0" Polling on value { interval: 25 } onValueChanged: { // integrate volume flow to get the total exhaled volume if( value > 0.5 ) { if(timer.msecsElapsed > 0) { volume += value * timer.msecsElapsed / 60000; } timer.restart() } else if( value < -0.5 && timer.running ) { console.log("Exhaled volume", volume) volume = 0 timer.stop() } } } Timer { id: timer } }