<phyphox version="1.10" locale="en">
    <title>Barometric CpCv / dT</title>
    <category>own experiment</category>
    <color>blue</color>
    <description>Read only pressure 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).
Detect p0, p1 and p2 and calculate Cp/Cv. From p1 and p2 calculate dT.</description>
    <icon format="string">GAM</icon>
    <data-containers>
        <container size="0" static="false">t</container>
        <container size="1" static="false">count</container>
        <container size="1" static="false">tmax</container>
        <container size="1" static="false">pMean</container>
        <container size="1" static="false">p0</container>
        <container size="1" static="false">p1</container>
        <container size="1" static="false">p2</container>
        <container size="1" static="false">p3</container>
	<container size="1" static="false">gamma1</container>
	<container size="1" static="false">gamma</container>
        <container size="0" static="false">pRaw</container>
        <container size="0" static="false">pCal</container>
	<container size="20" static="false">final</container>
        <container size="1" static="false">temperature</container>
        <container size="1" static="false">dT</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>
        </bluetooth>
    </input>
    <output>
    </output>
    <analysis sleep="0"  onUserInput="false">
        <multiply>
            <input as="factor" type="value">0.01</input>
            <input as="factor" clear="false">pRaw</input>
            <output as="product">pCal</output>
        </multiply>
        <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">tmax</input>
            <input as="length" clear="false">count</input>
            <output as="out">t</output>
        </ramp>
	<append>
	    <input clear="false"> pCal </input>
	    <output> final </output>
	</append>
	<average>
	    <input> final </input>
	    <output as="average"> pMean </output>
	</average>
	<if less="true" equal="true" greater="false">
	    <input as="a" clear="false"> count </input>
	    <input as="b" type="value"> 40 </input>
	    <input as="true" clear="false"> pMean </input>
	    <output as="result"> p0 </output>
	</if>
	<if less="false" equal="false" greater="true">
	    <input as="a" clear="false"> count </input>
	    <input as="b" type="value"> 40 </input>
	    <input as="true" clear="false"> pMean </input>
	    <output as="result"> p3 </output>
	</if>
	<max>
	    <input as="y" clear="false"> pCal </input>
	    <output as="max"> p1 </output>
	</max>
        <formula formula="log([2]/[1])/log([3]/[1])">
            <input as="in" clear="false">p0</input>
            <input as="in" clear="false">p1</input>
            <input as="in" clear="false">p3</input>
            <output as="out">gamma1</output>
        </formula>
	<if less="true" equal="true" greater="false">
	    <input as="a" clear="false"> t </input>
	    <input as="b" type="value"> 20 </input>
	    <input as="true" clear="false"> gamma1 </input>
	    <output as="result"> gamma </output>
	</if>
	<if less="true" equal="true" greater="false">
	    <input as="a" clear="false"> t </input>
	    <input as="b" type="value"> 20 </input>
	    <input as="true" clear="false"> p3 </input>
	    <output as="result"> p2 </output>
	</if>
        <formula formula="(273.17+[3])*([1]-[2])/[2]">
            <input as="in" clear="false">p1</input>
            <input as="in" clear="false">p2</input>
            <input as="in" clear="false">temperature</input>
            <output as="out">dT</output>
	</formula>		
    </analysis>
    <views>
        <view label="Pressure">
            <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">t</input>
                <input axis="y">pCal</input>
            </graph>
            <value label="Pressure" size="1" precision="2" scientific="false" unit="hPa" factor="1">
                <input>pCal</input>
            </value>
            <value label="p0" size="1" precision="2" scientific="false" unit="hPa" factor="1">
                <input>p0</input>
            </value>
            <value label="p1" size="1" precision="2" scientific="false" unit="hPa" factor="1">
                <input>p1</input>
            </value>
            <value label="p2" size="1" precision="2" scientific="false" unit="hPa" factor="1">
                <input>p2</input>
            </value>
            <value label="p3" size="1" precision="2" scientific="false" unit="hPa" factor="1">
                <input>p3</input>
            </value>
            <value label="Cp/Cv" size="2" precision="2" scientific="false" unit="" factor="1">
                <input>gamma</input>
            </value>
            <edit label="temperature" signed="true" decimal="true" unit="°C" factor="1" default="20">
                <output>temperature</output>
            </edit>
            <value label="dT" size="2" precision="1" scientific="false" unit="°C" factor="1">
                <input>dT</input>
            </value>
            <value label="count" size="1" precision="0" scientific="false" unit="" factor="1">
                <input>count</input>
            </value>
        </view>
    </views>
    <export>
        <set name="Pressure">
            <data name="time (sec)">t</data>
            <data name="Pressure (hPa)">pCal</data>
        </set>
    </export>
</phyphox>
