<phyphox version="1.6">
    <title>Lissajous Activity</title>
    <category>PocketLab Voyager</category>
    <description>Damped Lissajous Figures
	
	https://www.thepocketlab.com/educators/lesson/pocketlabphyphox-damped-lissajous-figures
	</description>
	<icon format="base64">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
	</icon>       
    <data-containers>
        <container size="0">d</container>
        <container size="0">dRaw</container>
        <container size="0">dCal</container>
        <container size="0">tRaw</container>
        <container size="0">t</container>
        <container size="1">n</container>
        <container size="1">n-1</container>
        <container size="1">tmax</container>
		
		<container size="0">d2</container>
        <container size="0">dRaw2</container>
        <container size="0">dCal2</container>
        <container size="0">tRaw2</container>
        <container size="0">t2</container>
        <container size="1">m</container>
        <container size="1">m-1</container>
        <container size="1">tmax2</container>
    </data-containers>
    <input>
        <bluetooth name="PL Voyager" mode="notification" id="x position locator">
            <config char="F000AA12-0452-4000-B000-000000000000" conversion="hexadecimal">0132</config>
            <output char="F000AA13-0452-4000-B000-000000000000" conversion="int16BigEndian">dRaw</output>
            <output char="F000AA13-0452-4000-B000-000000000000" extra="time">tRaw</output>			
        </bluetooth>
		
		<bluetooth name="PL Voyager" mode="notification" id="y position locator">
            <config char="F000AA12-0452-4000-B000-000000000000" conversion="hexadecimal">0132</config>
            <output char="F000AA13-0452-4000-B000-000000000000" conversion="int16BigEndian">dRaw2</output>
            <output char="F000AA13-0452-4000-B000-000000000000" extra="time">tRaw2</output>			
        </bluetooth>
    </input>
    <views>
        <view label="Rangefinder">
            <graph label="Damped Lissajous Figure Plotter" labelX="x Location (m)" labelY="y Location (m)" partialUpdate="true">
                <input axis="x">d</input>
				<input axis="y">d2</input>
            </graph>
        </view>
    </views>
    <analysis>
        <multiply>
            <input clear="false">dRaw</input>
            <input type="value">0.001</input>
            <output clear="true">dCal</output>
        </multiply>
        <count>
            <input clear="false">dCal</input>
            <output>n</output>
        </count>
        <subtract>
            <input clear="false">n</input>
            <input type="value">1</input>
            <output>n-1</output>
        </subtract>
        <multiply>
            <input type="value">0.02</input>
            <input clear="false">n-1</input>
            <output>tmax</output>
        </multiply>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" clear="false">tmax</input>
            <input as="length" clear="false">n</input>
            <output>tRaw</output>
        </ramp>
        <rangefilter>
            <input clear="false">tRaw</input>
            <input clear="false">dCal</input>
            <input as="max" type="value">2.2</input>
            <output>t</output>
            <output>d</output>
        </rangefilter>
		
		<multiply>
            <input clear="false">dRaw2</input>
            <input type="value">-0.001</input>
            <output clear="true">dCal2</output>
        </multiply>
        <count>
            <input clear="false">dCal2</input>
            <output>m</output>
        </count>
        <subtract>
            <input clear="false">m</input>
            <input type="value">1</input>
            <output>m-1</output>
        </subtract>
        <multiply>
            <input type="value">0.02</input>
            <input clear="false">m-1</input>
            <output>tmax2</output>
        </multiply>
        <ramp>
            <input as="start" type="value">0</input>
            <input as="stop" clear="false">tmax2</input>
            <input as="length" clear="false">m</input>
            <output>tRaw2</output>
        </ramp>
        <rangefilter>
            <input clear="false">tRaw2</input>
            <input clear="false">dCal2</input>
            <input as="max" type="value">2.2</input>
            <output>t2</output>
            <output>d2</output>
        </rangefilter>
    </analysis>
	<export>
        <set name="Voyager Rangefinder Data">
            <data name="x-position (m)">d</data>
            <data name="y-position (m)">d2</data>
        </set>
    </export>
</phyphox>
