
[
  // *********************************************************************************
  {  "name"    : "LOC",
     "type"    : "Service" },

  // *********************************************************************************
  {  "name"    : "QMI Client LOC",
     "type"    : "Client",
     "since"   : "1.0" },

  // *********************************************************************************
  {  "name"    : "QMI Message LOC",
     "type"    : "Message-ID-Enum" },

  {  "name"    : "QMI Indication LOC",
     "type"    : "Indication-ID-Enum" },

  // *********************************************************************************

  { "common-ref"    : "LOC Indication Status",
    "name"          : "Indication Status",
    "fullname"      : "Qmi LOC Message Status",
    "id"            : "0x01",
    "mandatory"     : "yes",
    "type"          : "TLV",
    "since"         : "1.22",
    "format"        : "guint32",
    "public-format" : "QmiLocIndicationStatus" },

  { "common-ref"    : "LOC Fix Recurrence Type",
    "name"          : "Fix Recurrence Type",
    "id"            : "0x10",
    "mandatory"     : "no",
    "type"          : "TLV",
    "since"         : "1.22",
    "format"        : "guint32",
    "public-format" : "QmiLocFixRecurrenceType" },

    { "common-ref"    : "LOC Server IPv4",
      "name"          : "IPv4",
      "id"            : "0x10",
      "type"          : "TLV",
      "since"         : "1.22",
      "format"        : "sequence",
      "contents"      : [ { "name"   : "IPv4 Address",
                            "format" : "guint32",
                            "endian" : "little" },
                          { "name"   : "IPv4 Port",
                            "format" : "guint16" } ] },

    { "common-ref"    : "LOC Server IPv6",
      "name"          : "IPv6",
      "id"            : "0x11",
      "type"          : "TLV",
      "since"         : "1.22",
      "format"        : "sequence",
      "contents"      : [ { "name"          : "IPv6 Address",
                            "format"        : "array",
                            "array-element" : { "format" : "guint16",
                                                "endian" : "network" } ,
                            "fixed-size"    : "8" },
                          { "name"          : "IPv6 Port",
                            "format"        : "guint32" } ] },

    { "common-ref"    : "LOC Server URL",
      "name"          : "URL",
      "id"            : "0x12",
      "type"          : "TLV",
      "since"         : "1.22",
      "format"        : "string",
      "max-size"      : "256" },

  // *********************************************************************************

  {  "name"    : "Register Events",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0021",
     "since"   : "1.22",
     "input"   : [ { "name"          : "Event Registration Mask",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint64",
                     "public-format" : "QmiLocEventRegistrationFlag" } ],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  // *********************************************************************************
  {  "name"    : "Start",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0022",
     "version" : "1.0",
     "since"   : "1.20",
     "input"   : [ { "name"          : "Session ID",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.20",
                     "format"        : "guint8" },
                   { "common-ref"    : "LOC Fix Recurrence Type" },
                   { "name"          : "Intermediate Report State",
                     "id"            : "0x12",
                     "type"          : "TLV",
                     "since"         : "1.20",
                     "format"        : "guint32",
                     "public-format" : "QmiLocIntermediateReportState" },
                   { "name"          : "Minimum Interval between Position Reports",
                     "id"            : "0x13",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32" } ],
    "output"  : [ { "common-ref" : "Operation Result" } ] },

  // *********************************************************************************
  {  "name"    : "Stop",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0023",
     "version" : "1.0",
     "since"   : "1.20",
     "input"   : [ { "name"          : "Session ID",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8" } ],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  // *********************************************************************************

  {  "name"    : "Position Report",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0024",
     "since"   : "1.22",
     "output"  : [ { "name"          : "Session Status",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocSessionStatus" },
                   { "name"          : "Session ID",
                     "id"            : "0x02",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8" },
                   { "name"          : "Latitude",
                     "id"            : "0x10",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gdouble" },
                   { "name"          : "Longitude",
                     "id"            : "0x11",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gdouble" },
                   { "name"          : "Horizontal Uncertainty Circular",
                     "id"            : "0x12",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Horizontal Uncertainty Elliptical Minor",
                     "id"            : "0x13",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Horizontal Uncertainty Elliptical Major",
                     "id"            : "0x14",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Horizontal Uncertainty Elliptical Azimuth",
                     "id"            : "0x15",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Horizontal Confidence",
                     "id"            : "0x16",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8" },
                   { "name"          : "Horizontal Reliability",
                     "id"            : "0x17",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocReliability" },
                   { "name"          : "Horizontal Speed",
                     "id"            : "0x18",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Speed Uncertainty",
                     "id"            : "0x19",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Altitude from Ellipsoid",
                     "id"            : "0x1A",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Altitude from Sealevel",
                     "id"            : "0x1B",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Vertical Uncertainty",
                     "id"            : "0x1C",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Vertical Confidence",
                     "id"            : "0x1D",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8" },
                   { "name"          : "Vertical Reliability",
                     "id"            : "0x1E",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32" },
                   { "name"          : "Vertical Speed",
                     "id"            : "0x1F",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Heading",
                     "id"            : "0x20",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Heading Uncertainty",
                     "id"            : "0x21",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Magnetic Deviation",
                     "id"            : "0x22",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Technology Used",
                     "id"            : "0x23",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocTechnologyUsed" },
                   { "name"          : "Dilution of Precision",
                     "id"            : "0x24",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "struct",
                     "contents"      : [ { "name"   : "Position Dilution of Precision",
                                           "format" : "gfloat" },
                                         { "name"   : "Horizontal Dilution of Precision",
                                           "format" : "gfloat" },
                                         { "name"   : "Vertical Dilution of Precision",
                                           "format" : "gfloat" } ] },
                   { "name"          : "UTC Timestamp",
                     "id"            : "0x25",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint64" },
                   { "name"          : "Leap Seconds",
                     "id"            : "0x26",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8" },
                   { "name"          : "GPS Time",
                     "id"            : "0x27",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "struct",
                     "contents"      : [ { "name"   : "GPS Weeks",
                                           "format" : "guint16" },
                                         { "name"   : "GPS Time of Week Milliseconds",
                                           "format" : "guint32" } ] },
                   { "name"          : "Time Uncertainty",
                     "id"            : "0x28",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gfloat" },
                   { "name"          : "Time Source",
                     "id"            : "0x29",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocTimeSource" },
                   { "name"          : "Sensor Data Usage",
                     "id"            : "0x2A",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint64",
                     "public-format" : "QmiLocSensorDataUsage" },
                   { "name"          : "Session Fix Count",
                     "id"            : "0x2B",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32" },
                   { "name"          : "Satellites Used",
                     "id"            : "0x2C",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "struct",
                     "format"        : "array",
                     "array-element" : { "format" : "guint16" } },
                   { "name"          : "Altitude Assumed",
                     "id"            : "0x2D",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8",
                     "public-format" : "gboolean" } ] },

  // *********************************************************************************

  {  "name"    : "NMEA",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0026",
     "since"   : "1.22",
     "output"  : [ { "name"   : "NMEA String",
                     "id"     : "0x01",
                     "type"   : "TLV",
                     "since"  : "1.22",
                     "format" : "string" } ] },

  // *********************************************************************************

  {  "name"    : "Engine State",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x002B",
     "since"   : "1.22",
     "output"  : [ { "name"          : "Engine State",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "gint32",
                     "public-format" : "QmiLocEngineState" } ] },

  // *********************************************************************************

  {  "name"    : "Fix Recurrence Type",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x002C",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Fix Recurrence Type" } ] },

  // *********************************************************************************

  {  "name"    : "GNSS Sv Info",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0025",
     "since"   : "1.22",
     "output"  : [ { "name"          : "Altitude Assumed",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8",
                     "public-format" : "gboolean" },
                   { "name"          : "List",
                     "id"            : "0x10",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "array",
                     "array-element" : { "name"     : "Element",
                                         "format"   : "struct",
                                         "contents" : [ { "name"          : "Valid Information",
                                                          "format"        : "guint32",
                                                          "public-format" : "QmiLocSatelliteValidInformation" },
                                                        { "name"          : "System",
                                                          "format"        : "guint32",
                                                          "public-format" : "QmiLocSystem" },
                                                        { "name"          : "GNSS Satellite ID",
                                                          "format"        : "guint16" },
                                                        { "name"          : "Health Status",
                                                          "format"        : "guint8",
                                                          "public-format" : "QmiLocHealthStatus" },
                                                        { "name"          : "Satellite Status",
                                                          "format"        : "guint32",
                                                          "public-format" : "QmiLocSatelliteStatus" },
                                                        { "name"          : "Navigation Data",
                                                          "format"        : "guint8",
                                                          "public-format" : "QmiLocNavigationData"},
                                                        { "name"          : "Elevation Degrees",
                                                          "format"        : "gfloat" },
                                                        { "name"          : "Azimuth Degrees",
                                                          "format"        : "gfloat" },
                                                        { "name"          : "Signal to Noise Ratio BHz",
                                                          "format"        : "gfloat" } ] } } ] },

  // *********************************************************************************

  {  "name"    : "Inject Predicted Orbits Data",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0035",
     "since"   : "1.22",
     "input"   : [ { "name"               : "Total Size",
                     "id"                 : "0x01",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint32" },
                   { "name"               : "Total Parts",
                     "id"                 : "0x02",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint16" },
                   { "name"               : "Part Number",
                     "id"                 : "0x03",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint16" },
                   { "name"               : "Part Data",
                     "id"                 : "0x04",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "array",
                     "array-element"      : { "format" : "guint8" },
                     "size-prefix-format" : "guint16",
                     "max-size"           : "1024" },
                   { "name"               : "Format Type",
                     "id"                 : "0x10",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint32",
                     "public-format"      : "QmiLocPredictedOrbitsDataFormat" } ],
     "output"  : [ { "common-ref"         : "Operation Result" } ] },

  {  "name"    : "Inject Predicted Orbits Data",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0035",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" },
                   { "name"       : "Part Number",
                     "id"         : "0x10",
                     "type"       : "TLV",
                     "since"      : "1.22",
                     "format"     : "guint16" } ] },

  // *********************************************************************************

  {  "name"    : "Get Predicted Orbits Data Source",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0036",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Get Predicted Orbits Data Source",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0036",
     "since"   : "1.22",
     "output"  : [ { "common-ref"         : "LOC Indication Status" },
                   { "name"               : "Allowed Sizes",
                     "id"                 : "0x10",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "sequence",
                     "contents"           : [ { "name"   : "Max File Size",
                                                "format" : "guint32" },
                                              { "name"   : "Max Part Size",
                                                "format" : "guint32" } ] },
                   { "name"               : "Server List",
                     "id"                 : "0x11",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "array",
                     "size-prefix-format" : "guint8",
                     "array-element"      : { "format"             : "string",
                                              "size-prefix-format" : "guint8" } } ] },

  // *********************************************************************************

  {  "name"    : "Set Server",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0042",
     "since"   : "1.22",
     "input"   : [ { "name"          : "Server Type",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocServerType" },
                   { "common-ref"    : "LOC Server IPv4" },
                   { "common-ref"    : "LOC Server IPv6" },
                   { "common-ref"    : "LOC Server URL" } ],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Set Server",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0042",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" } ] },


  // *********************************************************************************

  {  "name"    : "Get Server",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0043",
     "since"   : "1.22",
     "input"   : [ { "name"          : "Server Type",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocServerType" },
                   { "name"          : "Server Address Type",
                     "id"            : "0x10",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint8",
                     "public-format" : "QmiLocServerAddressType" }],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Get Server",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0043",
     "since"   : "1.22",
     "output"  : [ { "common-ref"    : "LOC Indication Status" },
                   { "name"          : "Server Type",
                     "id"            : "0x02",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocServerType" },
                   { "common-ref"    : "LOC Server IPv4" },
                   { "common-ref"    : "LOC Server IPv6" },
                   { "common-ref"    : "LOC Server URL" } ] },

  // *********************************************************************************

  {  "name"    : "Delete Assistance Data",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x0044",
     "since"   : "1.22",
     "input"   : [ { "name"               : "Delete All",
                     "id"                 : "0x01",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint8",
                     "public-format"      : "gboolean" },
                   { "name"               : "Delete SV Info",
                     "id"                 : "0x10",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "array",
                     "size-prefix-format" : "guint8",
                     "array-element"      : { "name"     : "Element",
                                              "format"   : "struct",
                                              "contents" : [ { "name"          : "GNSS SV ID",
                                                               "format"        : "guint16" },
                                                             { "name"          : "System",
                                                               "format"        : "guint32",
                                                               "public-format" : "QmiLocSystem" },
                                                             { "name"          : "Delete SV Info Mask",
                                                               "format"        : "guint8",
                                                               "public-format" : "QmiLocDeleteSvInfo" } ] } },
                   { "name"               : "Delete GNSS Data Mask",
                     "id"                 : "0x11",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint64",
                     "public-format"      : "QmiLocDeleteGnssData" },
                   { "name"               : "Delete Cell Database Mask",
                     "id"                 : "0x12",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint32",
                     "public-format"      : "QmiLocDeleteCellDatabase" },
                   { "name"               : "Delete Clock Info Mask",
                     "id"                 : "0x13",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint32",
                     "public-format"      : "QmiLocDeleteClockInfo" } ],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Delete Assistance Data",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x0044",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" } ] },

  // *********************************************************************************

  {  "name"    : "Set Operation Mode",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x004A",
     "since"   : "1.22",
     "input"   : [ { "name"          : "Operation Mode",
                     "id"            : "0x01",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocOperationMode" } ],
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Set Operation Mode",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x004A",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" } ] },

  // *********************************************************************************

  {  "name"    : "Get Operation Mode",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x004B",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "Operation Result" } ] },

  {  "name"    : "Get Operation Mode",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x004B",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" },
                   { "name"          : "Operation Mode",
                     "id"            : "0x10",
                     "type"          : "TLV",
                     "since"         : "1.22",
                     "format"        : "guint32",
                     "public-format" : "QmiLocOperationMode" } ] },

  // *********************************************************************************

  {  "name"    : "Inject Xtra Data",
     "type"    : "Message",
     "service" : "LOC",
     "id"      : "0x00A7",
     "since"   : "1.22",
     "input"   : [ { "name"               : "Total Size",
                     "id"                 : "0x01",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint32" },
                   { "name"               : "Total Parts",
                     "id"                 : "0x02",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint16" },
                   { "name"               : "Part Number",
                     "id"                 : "0x03",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "guint16" },
                   { "name"               : "Part Data",
                     "id"                 : "0x04",
                     "type"               : "TLV",
                     "since"              : "1.22",
                     "format"             : "array",
                     "array-element"      : { "format" : "guint8" },
                     "size-prefix-format" : "guint16",
                     "max-size"           : "1024" } ],
     "output"  : [ { "common-ref"         : "Operation Result" } ] },

  {  "name"    : "Inject Xtra Data",
     "type"    : "Indication",
     "service" : "LOC",
     "id"      : "0x00A7",
     "since"   : "1.22",
     "output"  : [ { "common-ref" : "LOC Indication Status" },
                   { "name"       : "Part Number",
                     "id"         : "0x10",
                     "type"       : "TLV",
                     "since"      : "1.22",
                     "format"     : "guint16" } ] }
]
