<phyphox version="1.10">
  <title>Light with acceleration v.5</title>
  <category>Test Experiments</category>
  <icon>PoL</icon>
  <color>yellow</color>
  <description>Light intensity and orientation are measured using optical sensor and 3 accelerometers of a smartphone. The interval between measurements is set 0.5s in order to synchronize these sensors. 
Can be used for angular dependence of the light intensity, for example Malus law.</description>
   <data-containers>
   	<!--Containers for light -->
     <container size="0">illum</container>
     <container size="0">illum_time</container>
     <container size="1">avg_illum</container>
     <container size="1">avg_illum_time</container>
     <container size="0">Illum</container>
     <container size="0">Illum_Time</container>

	<!--Containers for acceleration -->
     <container size="0">accX</container>
     <container size="0">accY</container>
     <container size="0">accZ</container>
     <container size="0">acc_time</container>
     <container size="1">avg_accX</container>
     <container size="1">avg_accY</container>
     <container size="1">avg_accZ</container>
     <container size="1">avg_acc_time</container>
     <container size="0">AccX</container>
     <container size="0">AccY</container>
     <container size="0">AccZ</container>
     <container size="0">Acc_Time</container>

     <container size="0">angle</container>
  </data-containers>

  <input>
    <sensor type="light">
      <output component="x">illum</output>
      <output component="t">illum_time</output>
    </sensor>
    <sensor type="accelerometer">
      <output component="x">accX</output>
      <output component="y">accY</output>
      <output component="z">accZ</output>
      <output component="t">acc_time</output>
    </sensor>
  </input>
  
  <analysis sleep="0.5">
     <average>
       <input clear="true">illum</input>
       <output as="average">avg_illum</output>
     </average>
     <average>
       <input clear="true">illum_time</input>
       <output as="average">avg_illum_time</output>
     </average>
     <average>
       <input clear="true">accX</input>
       <output as="average">avg_accX</output>
     </average>
     <average>
       <input clear="true">accY</input>
       <output as="average">avg_accY</output>
     </average>
     <average>
       <input clear="true">accZ</input>
       <output as="average">avg_accZ</output>
     </average>
     <average>
       <input clear="true">acc_time</input>
       <output as="average">avg_acc_time</output>
     </average>

     <append>
       <input>avg_illum</input>
       <output clear="false">Illum</output>
     </append>
     <append>
       <input>avg_illum_time</input>
       <output clear="false">Illum_Time</output>
     </append>
     <append>
       <input>avg_accX</input>
       <output clear="false">AccX</output>
     </append>
     <append>
       <input>avg_accY</input>
       <output clear="false">AccY</output>
     </append>
     <append>
       <input>avg_accZ</input>
       <output clear="false">AccZ</output>
     </append>
     <append>
       <input>avg_acc_time</input>
       <output clear="false">Acc_Time</output>
     </append>

     <formula formula="atan2([1_],[2_])*57.29577951"> <!-- angle in degree -->
       <input clear="false">AccY</input>
       <input clear="false">AccX</input>
       <output>angle</output>
      </formula>    
  </analysis>

  <views>
    <view label="Graph">
      <graph label="I(angle)" aspectRatio="2.5" labelX="ay" unitX="°" labelY="Ev" unitY="lx" style="dots" lineWidth="2" partialUpdate="true">
        <input axis="x">angle</input>
        <input axis="y">Illum</input>
      </graph>
    </view>
    <view label="Diagram">
      <graph label="(Ax,Ay)" aspectRatio="1.0" labelX="Ax" unitX="m/s²" labelY="Ay" unitY="m/s²" style="dots" lineWidth="2" partialUpdate="true">
        <input axis="x">AccX</input>
        <input axis="y">AccY</input>
      </graph>
    </view>
  </views>

  <export>
    <set name="All Data">
      <data name="Time (s)">Illum_Time</data>
      <data name="Illuminance (lx)">Illum</data>
      <data name="Time (s)">Acc_Time</data>
      <data name="Acc. X (m/s²)">AccX</data>
      <data name="Acc. Y (m/s²)">AccY</data>
      <data name="Acc. Z (m/s²)">AccZ</data>
      <data name="angle (°)">angle</data>
    </set>
  </export>
</phyphox>
