<?xml version='1.0' encoding='utf-8'?>
<phyphox version="1.19" locale="en">
  <title>X1 Driver Collection</title>
  <category>Net examples</category>
  <description>Vehicle X1. Select driver before Start. driver_id, vehicle_id and device_id are sent by MQTT and included in exports.</description>
  <data-containers>
    <container size="1" init="1" static="true" clearGroup="_">vehicleId</container>
    <container size="1" init="1" clearGroup="_">driverId</container>
    <container size="1" init="0" clearGroup="_">deviceId</container>
    <container size="10">accX</container>
    <container size="10">accY</container>
    <container size="10">accZ</container>
    <container size="10">gyrX</container>
    <container size="10">gyrY</container>
    <container size="10">gyrZ</container>
    <container size="10">magX</container>
    <container size="10">magY</container>
    <container size="10">magZ</container>
    <container size="10">laccX</container>
    <container size="10">laccY</container>
    <container size="10">laccZ</container>
    <container size="10">gX</container>
    <container size="10">gY</container>
    <container size="10">gZ</container>
    <container size="10">attW</container>
    <container size="10">attX</container>
    <container size="10">attY</container>
    <container size="10">attZ</container>
    <container size="1">gpsLat</container>
    <container size="1">gpsLon</container>
    <container size="1">gpsAlt</container>
    <container size="1">gpsSpeed</container>
    <container size="1">gpsDir</container>
    <container size="1">gpsAcc</container>
  </data-containers>
  <export>
    <set name="Identity">
      <data name="vehicle_id (X1=1)">vehicleId</data>
      <data name="driver_id">driverId</data>
      <data name="device_id">deviceId</data>
    </set>
    <set name="Sensor data">
      <data name="acc_x">accX</data>
      <data name="acc_y">accY</data>
      <data name="acc_z">accZ</data>
      <data name="linear_acc_x">laccX</data>
      <data name="linear_acc_y">laccY</data>
      <data name="linear_acc_z">laccZ</data>
      <data name="gyro_x">gyrX</data>
      <data name="gyro_y">gyrY</data>
      <data name="gyro_z">gyrZ</data>
      <data name="mag_x">magX</data>
      <data name="mag_y">magY</data>
      <data name="mag_z">magZ</data>
      <data name="gravity_x">gX</data>
      <data name="gravity_y">gY</data>
      <data name="gravity_z">gZ</data>
      <data name="att_w">attW</data>
      <data name="att_x">attX</data>
      <data name="att_y">attY</data>
      <data name="att_z">attZ</data>
      <data name="gps_lat">gpsLat</data>
      <data name="gps_lon">gpsLon</data>
      <data name="gps_alt">gpsAlt</data>
      <data name="gps_speed">gpsSpeed</data>
      <data name="gps_dir">gpsDir</data>
      <data name="gps_acc">gpsAcc</data>
    </set>
  </export>
  <network>
    <connection id="mqtt" address="vmtest01.dotvision.com:1883" service="mqtt/json" sendTopic="phyphox/imu_gps/buffered/X1" privacy="https://phyphox.org/disclaimer/" autoConnect="true" interval="1">
      <send id="vehicle_id" type="buffer" datatype="number" keep="true">vehicleId</send>
      <send id="driver_id" type="buffer" datatype="number" keep="true">driverId</send>
      <send id="device_id" type="buffer" datatype="number" keep="true">deviceId</send>
      <send id="acc_x" type="buffer" datatype="array" keep="true">accX</send>
      <send id="acc_y" type="buffer" datatype="array" keep="true">accY</send>
      <send id="acc_z" type="buffer" datatype="array" keep="true">accZ</send>
      <send id="lacc_x" type="buffer" datatype="array" keep="true">laccX</send>
      <send id="lacc_y" type="buffer" datatype="array" keep="true">laccY</send>
      <send id="lacc_z" type="buffer" datatype="array" keep="true">laccZ</send>
      <send id="gyr_x" type="buffer" datatype="array" keep="true">gyrX</send>
      <send id="gyr_y" type="buffer" datatype="array" keep="true">gyrY</send>
      <send id="gyr_z" type="buffer" datatype="array" keep="true">gyrZ</send>
      <send id="mag_x" type="buffer" datatype="array" keep="true">magX</send>
      <send id="mag_y" type="buffer" datatype="array" keep="true">magY</send>
      <send id="mag_z" type="buffer" datatype="array" keep="true">magZ</send>
      <send id="g_x" type="buffer" datatype="array" keep="true">gX</send>
      <send id="g_y" type="buffer" datatype="array" keep="true">gY</send>
      <send id="g_z" type="buffer" datatype="array" keep="true">gZ</send>
      <send id="att_w" type="buffer" datatype="array" keep="true">attW</send>
      <send id="att_x" type="buffer" datatype="array" keep="true">attX</send>
      <send id="att_y" type="buffer" datatype="array" keep="true">attY</send>
      <send id="att_z" type="buffer" datatype="array" keep="true">attZ</send>
      <send id="gps_lat" type="buffer" datatype="number">gpsLat</send>
      <send id="gps_lon" type="buffer" datatype="number">gpsLon</send>
      <send id="gps_alt" type="buffer" datatype="number">gpsAlt</send>
      <send id="gps_speed" type="buffer" datatype="number">gpsSpeed</send>
      <send id="gps_dir" type="buffer" datatype="number">gpsDir</send>
      <send id="gps_acc" type="buffer" datatype="number">gpsAcc</send>
    </connection>
  </network>
  <input>
    <sensor type="accelerometer" rate="10">
      <output component="x">accX</output>
      <output component="y">accY</output>
      <output component="z">accZ</output>
    </sensor>
    <sensor type="linear_acceleration" rate="10">
      <output component="x">laccX</output>
      <output component="y">laccY</output>
      <output component="z">laccZ</output>
    </sensor>
    <sensor type="gyroscope" rate="10">
      <output component="x">gyrX</output>
      <output component="y">gyrY</output>
      <output component="z">gyrZ</output>
    </sensor>
    <sensor type="magnetic_field" rate="10">
      <output component="x">magX</output>
      <output component="y">magY</output>
      <output component="z">magZ</output>
    </sensor>
    <sensor type="gravity" rate="10">
      <output component="x">gX</output>
      <output component="y">gY</output>
      <output component="z">gZ</output>
    </sensor>
    <sensor type="attitude" rate="10">
      <output component="abs">attW</output>
      <output component="x">attX</output>
      <output component="y">attY</output>
      <output component="z">attZ</output>
    </sensor>
    <location>
      <output component="lat">gpsLat</output>
      <output component="lon">gpsLon</output>
      <output component="z">gpsAlt</output>
      <output component="v">gpsSpeed</output>
      <output component="dir">gpsDir</output>
      <output component="accuracy">gpsAcc</output>
    </location>
  </input>
  <views>
    <view label="Session">
      <info label="Vehicle: X1" bold="true" size="1.5" />
      <dropdown label="Driver" default="1">
        <output>driverId</output>
        <map value="1">gaume</map>
        <map value="2">guy</map>
        <map value="3">sophie</map>
        <map value="4">simon</map>
        <map value="5">ferd</map>
      </dropdown>
      <dropdown label="Device" default="0">
        <output>deviceId</output>
        <map value="0">0</map>
        <map value="1">1</map>
        <map value="2">2</map>
        <map value="3">3</map>
        <map value="4">4</map>
        <map value="5">5</map>
        <map value="6">6</map>
        <map value="7">7</map>
        <map value="8">8</map>
        <map value="9">9</map>
        <map value="10">10</map>
      </dropdown>
      <separator />
      <value label="Vehicle ID" precision="0" size="1">
        <input>vehicleId</input>
      </value>
      <value label="Driver ID" precision="0" size="1">
        <input>driverId</input>
      </value>
      <value label="Device ID" precision="0" size="1">
        <input>deviceId</input>
      </value>
      <info label="Select the driver and the device (0 to 10), then press the normal phyphox Start button." />
    </view>
    <view label="Live">
      <value label="acc x" size="2" precision="3" unit="m/s^2">
        <input>accX</input>
      </value>
      <value label="acc y" size="2" precision="3" unit="m/s^2">
        <input>accY</input>
      </value>
      <value label="acc z" size="2" precision="3" unit="m/s^2">
        <input>accZ</input>
      </value>
      <value label="gyr x" size="2" precision="3" unit="rad/s">
        <input>gyrX</input>
      </value>
      <value label="gyr y" size="2" precision="3" unit="rad/s">
        <input>gyrY</input>
      </value>
      <value label="gyr z" size="2" precision="3" unit="rad/s">
        <input>gyrZ</input>
      </value>
      <value label="mag x" size="2" precision="3" unit="uT">
        <input>magX</input>
      </value>
      <value label="mag y" size="2" precision="3" unit="uT">
        <input>magY</input>
      </value>
      <value label="mag z" size="2" precision="3" unit="uT">
        <input>magZ</input>
      </value>
      <separator />
      <value label="lat" size="2" precision="6" unit="deg">
        <input>gpsLat</input>
      </value>
      <value label="lon" size="2" precision="6" unit="deg">
        <input>gpsLon</input>
      </value>
      <value label="alt" size="2" precision="1" unit="m">
        <input>gpsAlt</input>
      </value>
      <value label="speed" size="2" precision="2" unit="m/s">
        <input>gpsSpeed</input>
      </value>
      <value label="dir" size="2" precision="0" unit="deg">
        <input>gpsDir</input>
      </value>
      <value label="acc" size="2" precision="1" unit="m">
        <input>gpsAcc</input>
      </value>
    </view>
  </views>
</phyphox>