// generated from rosidl_adapter/resource/msg.idl.em
// with input from px4_msgs/msg/SensorGnssRelative.msg
// generated code does not contain a copyright notice


module px4_msgs {
  module msg {
    typedef float float__3[3];
    @verbatim (language="comment", text=
      "GNSS relative positioning information in NED frame. The NED frame is defined as the local topological system at the reference station.")
    struct SensorGnssRelative {
      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp;

      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp_sample;

      @verbatim (language="comment", text=
        "unique device ID for the sensor that does not change between power cycles")
      uint32 device_id;

      @verbatim (language="comment", text=
        "Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0")
      uint64 time_utc_usec;

      @verbatim (language="comment", text=
        "Reference Station ID")
      uint16 reference_station_id;

      @verbatim (language="comment", text=
        "GPS NED relative position vector (m)")
      float__3 position;

      @verbatim (language="comment", text=
        "Accuracy of relative position (m)")
      float__3 position_accuracy;

      @verbatim (language="comment", text=
        "Heading of the relative position vector (radians)")
      float heading;

      @verbatim (language="comment", text=
        "Accuracy of heading of the relative position vector (radians)")
      float heading_accuracy;

      @verbatim (language="comment", text=
        "Length of the position vector (m)")
      float position_length;

      @verbatim (language="comment", text=
        "Accuracy of the position length (m)")
      float accuracy_length;

      @verbatim (language="comment", text=
        "GNSS valid fix (i.e within DOP & accuracy masks)")
      boolean gnss_fix_ok;

      @verbatim (language="comment", text=
        "differential corrections were applied")
      boolean differential_solution;

      boolean relative_position_valid;

      @verbatim (language="comment", text=
        "carrier phase range solution with floating ambiguities")
      boolean carrier_solution_floating;

      @verbatim (language="comment", text=
        "carrier phase range solution with fixed ambiguities")
      boolean carrier_solution_fixed;

      @verbatim (language="comment", text=
        "if the receiver is operating in moving base mode")
      boolean moving_base_mode;

      @verbatim (language="comment", text=
        "extrapolated reference position was used to compute moving base solution this epoch")
      boolean reference_position_miss;

      @verbatim (language="comment", text=
        "extrapolated reference observations were used to compute moving base solution this epoch")
      boolean reference_observations_miss;

      boolean heading_valid;

      @verbatim (language="comment", text=
        "the components of the relative position vector (including the high-precision parts) are normalized")
      boolean relative_position_normalized;
    };
  };
};
