<phyphox version="1.7" locale="en">
  <title>Faire s'envoler Ernest</title>
  <category>Jeu</category>
  <description>en tournant très vite !</description>

  <data-containers>
    <container size="0">gyrX</container>
    <container size="0">gyrY</container>
    <container size="0">gyrZ</container>
    <container size="0" init="0">gyr_time</container>
    <container size="2" init="-5,-5">limit_max</container>
    <container size="2" init="-3,-3">limit_min</container>
    <container size="1" init="0">last_time</container>
    <container size="2" init="0,0">limit_time</container>
    <container size="1" init="-5">min_threshold</container>
    <container size="1" init="-3">max_threshold</container>
    <container size="1" init="1">one</container>
    <container size="1" init="0">zero</container>
    <container size="1" init="0">step_1</container>
    <container size="20" init="0">valid_1</container> <!--changer ici la durée (en dixièmes de seconde) de l'étape 1-->
    <container size="1" init="0">avg_1</container>
    <container size="1" init="0">to_add_1</container>
    <container size="1" init="0">intermediate_1_1</container>
    <container size="1" init="0">intermediate_1_2</container>
    <container size="1" init="0">intermediate_1_3</container>
  </data-containers>

  <input>
    <sensor type="gyroscope">
      <output component="x">gyrX</output>
      <output component="y">gyrY</output>
      <output component="z">gyrZ</output>
      <output component="t">gyr_time</output>
    </sensor>
  </input>

  <views>
    <view label="test">
      <info label="Pense à appuyer sur le bouton Play (le triangle) en haut à droite avant de commencer !"/>
      <info label="Tiens le téléphone à l'horizontale, écran vers le haut, tourne pendant 2s dans le sens horaire entre 3 et 5 rad/s !"/>
      <value label="">
        <input>gyr_time</input>
        <map min="0.01">C'est parti !</map>
        <map>En attente</map>
      </value>
      <graph label="Accélération en fonction du temps" aspectRatio="2.5" style="lines" lineWidth="1" color="ff7e22" partialUpdate="false" history="1" labelX="Temps" labelY="Accélération" labelZ="" unitX="s" unitY="m/s^-2" unitZ="" logX="false" logY="false" logZ="false" xPrecision="3" yPrecision="3" 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">gyr_time</input>
          <input axis="y">gyrZ</input>
          <input axis="x" color="red">limit_time</input>
          <input axis="y">limit_max</input>
          <input axis="x" color="red">limit_time</input>
          <input axis="y">limit_min</input>
      </graph>
		  <value label="Code secret :">
        <input>step_1</input>
			  <map min="1">oc11q</map>
        <map>Tourne avec le téléphone !</map>
		  </value>
	  </view>
  </views>

  <analysis sleep="0.1">
    <add>
      <input clear="false">gyr_time</input>
      <output>last_time</output>
    </add>
    <add>
      <input type="value">0</input>
      <output>limit_time</output>
    </add>
    <add>
      <input clear="false">last_time</input>
      <output clear="false">limit_time</output>
    </add>
    <if less="true">
        <input as="a" clear="false">gyrZ</input>
        <input as="b" clear="false">max_threshold</input>
        <input as="true" clear="false">one</input>
        <input as="false" clear="false">zero</input>
        <output clear="false">intermediate_1_1</output>
    </if>
    <if greater="true">
        <input as="a" clear="false">gyrZ</input>
        <input as="b" clear="false">min_threshold</input>
        <input as="true" clear="false">one</input>
        <input as="false" clear="false">zero</input>
        <output clear="false">intermediate_1_2</output>
    </if>
    <multiply>
      <input clear="false">intermediate_1_1</input>
      <input clear="false">intermediate_1_2</input>
      <output clear="false">intermediate_1_3</output>
    </multiply>
    <if equal="true">
        <input as="a" clear="false">intermediate_1_3</input>
        <input as="b" clear="false">one</input>
        <input as="true" clear="false">one</input>
        <input as="false" clear="false">zero</input>
        <output clear="false">valid_1</output>
    </if>
    <average>
        <input clear="false">valid_1</input>
        <output as="average" clear="true">avg_1</output>
    </average>
    <if equal="true">
        <input as="a" clear="false">avg_1</input>
        <input as="b" clear="false">one</input>
        <input as="true" clear="false">one</input>
        <input as="false" clear="false">zero</input>
        <output clear="true">to_add_1</output>
    </if>
    <add>
        <input clear="false">step_1</input>
        <input clear="false">to_add_1</input>
        <output clear="true">step_1</output>
    </add>
  </analysis>

</phyphox>