<phyphox version="1.10">
    <title>Barometric FastFineSmooth(3colors)</title>
    <category>TP</category>
    <color>blue</color>
    <description>Read pressure and temperature from barometric sensor of a Texas Instruments SensorTag like the CC2650 or the CC1350.
Reading interval set to minimum, 100ms (0A). High precision of pressure (0.01 hPa). Added smoothed pressure indication by 'gausssmooth'(20), 'loess'(10) and average of last points(20)</description>
    <icon format="string">Pc3</icon>
    <data-containers>
        <container size="0" static="false">t</container>
        <container size="1" static="false">count</container>
	<container size="1" static="false">count2</container>
        <container size="1" static="false">tmax</container>
        <container size="1" static="false">final_average</container>
        <container size="0" static="false">pRaw</container>
        <container size="0" static="false">T2raw</container>
        <container size="0" static="false">pCal</container>
        <container size="20" static="false">final</container>
        <container size="0" static="false">T2cal</container>
        <container size="0" static="false">smooth</container>
        <container size="0" static="false">smooth2</container>
        <container size="0" static="false">t2</container>
    </data-containers>
    <input>
        <bluetooth id="Pressure/Temperature" name="SensorTag"  mode="notification" rate="1" subscribeOnStart="false">
            <config char="F000AA44-0451-4000-B000-000000000000" conversion="hexadecimal">0A</config>
            <config char="F000AA42-0451-4000-B000-000000000000" conversion="hexadecimal">01</config>
            <output char="F000AA41-0451-4000-B000-000000000000" conversion="uInt24LittleEndian" offset="3" length="3">pRaw</output>
            <output char="F000AA41-0451-4000-B000-000000000000" conversion="int24LittleEndian" offset="0" length="3">T2raw</output>
        </bluetooth>
    </input>
    <output>
    </output>
    <analysis sleep="0"  onUserInput="false">
        <multiply>
            <input as="factor" type="value">0.01</input>
            <input as="factor" clear="false">T2raw</input>
            <output as="product">T2cal</output>
        </multiply>
        <multiply>
            <input as="factor" type="value">0.01</input>
            <input as="factor" clear="false">pRaw</input>
            <output as="product">pCal</output>
        </multiply>
        <gausssmooth sigma="20">
            <input as="in" clear="false">pCal</input>
            <output as="out">smooth</output>
        </gausssmooth>
        <count>
            <input as="buffer" clear="false">pRaw</input>
            <output as="count">count</output>
        </count>
        <formula formula="([1]-1)*0.1">
            <input as="in" clear="false">count</input>
            <output as="out">tmax</output>
        </formula>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" clear="false">tmax</input>
            <input as="length" clear="false">count</input>
            <output as="out">t</output>
        </ramp>
	<divide>
	    <input as="dividend" clear="false">count</input>
	    <input as="divisor" type="value">10</input>
	    <output as="quotient">count2</output>
	</divide>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop">tmax</input>
            <input as="length">count2</input>
            <output as="out">t2</output>
        </ramp>
	<loess>
	    <input as="x" clear="false">t</input>
	    <input as="y" clear="false">pCal</input>
	    <input as="d" type="value">10</input>
	    <input as="xi" clear="false">t2</input>
	    <output as="yi0">smooth2</output>
	</loess>
	<append>
	    <input clear="false"> pCal </input>
	    <output> final </output>
	</append>
	<average>
	    <input> final </input>
	    <output a="average"> final_average </output>
	</average>
    </analysis>
    <views>
        <view label="Pressure/Temperature">
            <graph label="Pressure" aspectRatio="2.5" style="lines" lineWidth="1" partialUpdate="true" history="1" labelX="t" labelY="Pressure" labelZ="" unitX="sec" unitY="hPa" unitZ="" logX="false" logY="false" logZ="false" xPrecision="3" yPrecision="6" zPrecision="3" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" scaleMinZ="auto" scaleMaxZ="auto" minX="0" maxX="0" minY="0" maxY="0" minZ="0" maxZ="0"  mapWidth="0" >
		<input axis="x" color="yellow">t2</input>
                <input axis="y">smooth2</input>
		<input axis="x" color="red">t</input>
                <input axis="y">smooth</input>
                <input axis="x" color="blue">t</input>
                <input axis="y">pCal</input>
            </graph>
            <value label="Raw pressure" size="2" precision="2" scientific="false" unit="hPa" factor="1" color="blue">
                <input>pCal</input>
            </value>
            <value label="Gaussed pressure" size="2" precision="2" scientific="false" unit="hPa" factor="1" color="red">
                <input>smooth</input>
            </value>
            <value label="LOESS pressure" size="2" precision="2" scientific="false" unit="hPa" factor="1" color="yellow">
                <input>smooth2</input>
            </value>
            <value label="Last20 pressure" size="2" precision="2" scientific="false" unit="hPa" factor="1" >
                <input>final_average</input>
            </value>
        </view>
        <view label="Temperature">
            <graph label="Temperature" aspectRatio="2.5" style="lines" lineWidth="1" color="ff7e22" partialUpdate="true" history="1" labelX="t" labelY="T" labelZ="" unitX="sec" unitY="°C" unitZ="" logX="false" logY="false" logZ="false" xPrecision="3" yPrecision="4" zPrecision="3" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" scaleMinZ="auto" scaleMaxZ="auto" minX="0" maxX="0" minY="0" maxY="0" minZ="0" maxZ="0"  mapWidth="0" >
                <input axis="x">t</input>
                <input axis="y">T2cal</input>
            </graph>
            <value label="Temperature" size="2" precision="2" scientific="false" unit="°C" factor="1" >
                <input>T2cal</input>
            </value>
        </view>
    </views>
    <export>
        <set name="PressureAndTemperature">
            <data name="time (sec)">t</data>
            <data name="Pressure (hPa)">pCal</data>
            <data name="Temp_P (°C)">T2cal</data>
        </set>
        <set name="GaussSmooth">
            <data name="time (sec)">t</data>
            <data name="Pressure (hPa)">smooth</data>
        </set>
        <set name="LoessSmooth">
            <data name="time (sec)">t2</data>
            <data name="Pressure (hPa)">smooth2</data>
        </set>
    </export>
</phyphox>
