Besondere Eigenschaften

Anbietereigenschaften

Um partnerspezifische Anforderungen zu erfüllen, lässt die VHAL die Anbietereigenschaften zu, auf die zugegriffen wird. nur über System-APIs. Beachten Sie beim Arbeiten mit Anbietereigenschaften die folgenden Richtlinien:

  • Versuchen Sie immer zuerst, die Systemeigenschaften zu verwenden. Als letzte Option sollten Sie die Anbietereigenschaften verwenden. Wenn keine der Systemeigenschaften Ihre Anforderung erfüllt.
  • Um eine Fragmentierung des Ökosystems zu vermeiden, dürfen die Eigenschaften der Anbieter nicht verwendet werden, um Fahrzeuge nachzubilden. Eigenschaften, die bereits im SDK vorhanden sind VehiclePropertyIds Weitere Informationen finden Sie im Abschnitt 2.5 Automobilanforderungen in der CDD.
  • Verwenden Sie die folgenden Felder, um die Property-ID zu generieren: <ph type="x-smartling-placeholder">
      </ph>
    • Die VehiclePropertyGroup:VENDOR-VENDOR-Gruppe wird nur für Anbietereigenschaften verwendet.
    • VehicleArea Wählen Sie einen geeigneten Gebietstyp aus.
    • VehiclePropertyType Wählen Sie den richtigen Datentyp aus. BYTES können Rohdaten übergeben, was in den meisten Fällen ausreichend ist. Häufiges Senden von Big Data über Anbietereigenschaften kann das den Zugriff auf das gesamte Netzwerk verlangsamen. Seien Sie vorsichtig, wenn Sie eine große Nutzlast hinzufügen.
    • Property ID Wählen Sie eine eindeutige 2-Byte-ID für die Anbietereigenschaft aus. Beispiel: 0x1234.
  • Geben Sie in VehiclePropConfig.configString eine kurze Beschreibung des Anbieters ein. Property. Dadurch können Tools zur Gültigkeitsprüfung die versehentliche Replikation vorhandener Fahrzeugeigenschaften. Beispiel: „Meine benutzerdefinierte Eigenschaft für XYZ“.
  • Zugriff über Auto-Property-Manager (für Java-Komponenten) oder über die libvhalclient (für native Anzeigen). Das sollten Sie tun: keine anderen Auto-APIs ändern, da dies zu zukünftigen Kompatibilitätsproblemen führen kann.

Berechtigung für Anbietereigenschaften

Die Standardberechtigung für alle definierten Anbietereigenschaften ist android.car.Car.PERMISSION_VENDOR_EXTENSION Für detailliertere Berechtigungen die SUPPORT_CUSTOMIZE_VENDOR_PERMISSION-Eigenschaft unterstützen. Dieser STATIC ist schreibgeschützt, wobei ihr Konfigurationsarray die Berechtigungen für Anbieterattribute angibt. configArray wird so festgelegt (i ist eine Ganzzahl, die bei 0 beginnt):

  • configArray[3 * i] propId, die Property-ID für das Anbieterattribut.
  • configArray[3 * i + 1]: Eine Aufzählung in VehicleVendorPermission.aidl für und geben die Berechtigung zum Lesen des Property-Werts an.
  • configArray[3 * i + 2]: Eine Aufzählung in VehicleVendorPermission.aidl für und geben die Berechtigung zum Schreiben des Property-Werts an.

Mit dem folgenden Konfigurationsarray werden beispielsweise zwei Anbieterattribute konfiguriert: vendor_prop_1 und vendor_prop_2, um folgende Berechtigungen zu haben:

  • vendor_prop_1 erfordert android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT zu lesen, android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT zu schreiben.
  • vendor_prop-2 erfordert android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO und ist für Android-Apps nicht beschreibbar.
configArray = {
  PERMISSION_SET_VENDOR_CATEGORY_SEAT
    vendor_prop_2, PERMISSION_GET_VENDOR_CATEGORY_INFO, PERMISSION_NOT_ACCESSIBLE
}

Für Anbietereigenschaften, die nicht in diesem Array enthalten sind, wird die Standardanbieterberechtigung verwendet. Wann? PERMISSION_NOT_ACCESSIBLE ist ausgewählt, Android-Apps können nicht auf die Property zugreifen. In diesem Beispiel können Android-Apps keinen Wert für vendor_prop_2 schreiben. Nur native Anzeigen VHAL-Clients können in diese Eigenschaft schreiben.

Erweitertes Fahrassistenzsystem

Siehe ADAS-Fahrzeugeigenschaften.

SITZPLATZ und LEITUNG

Weitere Informationen finden Sie unter Eigenschaften von Sitz und Lenkrad.

Heizung, Lüftung, Klimatechnik (HLK)

Sie können den VHAL verwenden, um die HLK-Anlagen zu steuern, indem Sie HLK-bezogene Eigenschaften festlegen. Die meisten HLK-Eigenschaften mit bestimmten Bereichen des Fahrzeugs verknüpft sind, wobei es sich bei einigen auch um globale Objekte handelt. Beispiele für definierte Properties:

Attribut Zweck
HVAC_TEMPERATURE_SET Legen Sie die Temperatur pro Gebiets-ID fest.
HVAC_POWER_ON Der Stromversorgungsstatus des HLK-Systems nach Gebiets-ID.

Für HLK-Eigenschaften, die vom Stromversorgungsstatus des HLK-Systems abhängen, müssen diese sind im HVAC_POWER_ON-Konfigurationsarray aufgeführt. Eine vollständige Liste der HLK-Eigenschaften findest du, In VehicleProperty.aidl nach HVAC_* suchen, siehe Unterstützte Systemeigenschaften. Eigenschaften.

Regeln für die Zuordnung von nicht-GLOBALen HLK-Eigenschaften des Typs „Fahrzeugfläche“ zu AreaIDs: Jede „Region“ eines bestimmten VehicleArea-Typs, die von der Property betroffen ist, muss in einer Gebiets-ID für diese Unterkunft enthalten ist. Die Temperaturregler sind der die sie „größten Einfluss“ haben, Jeder betroffene Sitzplatz muss jedoch genau einmal angegeben werden. Die Zuordnung der Mitte hinten zur linken oder rechten AreaID kann beliebig erscheinen. aber durch die Aufnahme jedes betroffenen Sitzes in genau eine AreaID wird sichergestellt, alle Sitze im Auto vertreten sind und eine angemessene Möglichkeit zur Anpassung der einzelnen Sitzplätze vorhanden ist.

Beispiel 1

Ein Auto hat zwei Vordersitze (ROW_1_LEFT, ROW_1_RIGHT) und drei Rücksitze. (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). Es gibt zwei Temperaturregler, jeweils eines für auf der Fahrer- und Beifahrerseite. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_TEMPERATURE_SET wäre ein Array mit zwei Elementen:

  • ROW_1_LEFT | ROW_2_LEFT
  • ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RECHTS

Eine alternative Zuordnung für dieselbe Hardwarekonfiguration wäre:

  • ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
  • ROW_1_RIGHT | ROW_2_RECHTS

Beispiel 2

Ein Auto hat drei Reihen mit zwei Sitzen in der ersten Reihe (ROW_1_LEFT, ROW_1_RIGHT) und drei Sitze in der zweiten (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) und dritten Reihe (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT). Es gibt drei Temperaturregler, jeweils eines für Fahrer-, Beifahrer- und Heckseite. Eine sinnvolle Kartierungsmethode HVAC_TEMPERATURE_SET zu AreaIDs ist ein Array aus drei Elementen:

  • ROW_1_LEFT
  • ROW_1_RECHTS
  • ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RECHTS

Beispiel 3

Ein Auto hat zwei Vordersitze (ROW_1_LEFT, ROW_1_RIGHT) und drei Rücksitze. (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). Angenommen, das Auto unterstützt HVAC_AUTO_ON nur auf den beiden Vordersitzen. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_AUTO_ON wäre eine einzelne Element-Array:

  • ROW_1_LEFT | ROW_1_RECHTS

Wenn HVAC_AUTO_ON zwei separate Steuereinheiten für Fahrer- und Beifahrerseiten hätte eine alternative Zuordnung wäre ein Array mit zwei Elementen:

  • ROW_1_LEFT
  • ROW_1_RECHTS

INFO_EXTERIOR_DIMENSIONEN

Die Außenabmessungen eines Fahrzeugs werden in Millimetern gemessen, wie in Abbildung 1 dargestellt.

<ph type="x-smartling-placeholder">
</ph>
Abbildung 1: Fahrzeugaußenabmessungen, Vorderansicht.
<ph type="x-smartling-placeholder">
</ph>
Abbildung 2. Fahrzeugaußenabmessungen, Seitenansicht.

Verwenden Sie die in dieser Tabelle beschriebenen Eigenschaften, um die Außenansicht eines Fahrzeugs zu definieren Dimensionen.

Fahrzeugeigenschaft VHAL-Feld Beschreibung
Größe int32Values[0] Vertikaler Abstand zwischen Boden und höchstem Punkt des Fahrzeugs. Dies setzt voraus, normalerweise aufgeblähte Fabrikräder.
Länge int32Values[1] Horizontaler Abstand zwischen den äußersten Punkten vorne und hinten des Fahrzeugs.
Breite, ohne Spiegel int32Values[2] Horizontaler Abstand zwischen den beiden äußersten Punkten auf jeder Seite des Fahrzeugs, ausgenommen in die Seitenspiegel.
Breite, einschließlich Spiegeln int32Values[3] Horizontaler Abstand zwischen den beiden äußersten Punkten auf jeder Seite des Fahrzeugs einschließlich der Seitenspiegel.
Radstand int32Values[4] Abstand zwischen der Mitte der Vorder- und Hinterräder des Fahrzeugs.
Spurbreite, vorne int32Values[5] Abstand zwischen Vorderrad, gemessen von der Mittellinie eines Reifenprofils bis zum des gegenüberliegenden Reifenprofils.
Spurbreite, hinten int32Values[6] Abstand zwischen dem Hinterrad, gemessen von der Mittellinie eines Reifenprofils bis zum des gegenüberliegenden Reifenprofils.
Durchmesser zum Drehen des Bordsteins int32Values[7] Der Durchmesser des Kreises, der von den äußeren Rädern des Fahrzeugs beim vollständigen Abbiegen erzeugt wird mit einem vollständig verriegelten Lenkrad.

Einhaltung der allgemeinen Sicherheitsvorschriften der Europäischen Union

Ob das Fahrzeug den Anforderungen der EU-Datenschutz-Grundverordnung (GSR) entsprechen muss Android verwendet, muss die Property GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT unterstützt werden. Ein Anwendungsfall ist z. B. der in der EU definierte GSR-ISA (Intelligent Speed Assist) Verordnung 2019/2144. Diese Eigenschaft wird in AIDL VHAL von Android 13 hinzugefügt, ist jedoch seit der Veröffentlichung von Android 12 in CarService unterstützt wird. Diese Eigenschaft ist als schreibgeschützt definiert statisches globales Ganzzahlattribut mit möglichen Werten durch GsrComplianceRequirementType-Enum:

Name Wert Beschreibung
GSR_COMPLIANCE_NOT_REQUIRED 0 GSR-Konformität ist nicht erforderlich
GSR_COMPLIANCE_REQUIRED_V1 1 Die GSR-Konformität ist erforderlich und die Anforderungslösungsversion ist 1.

Um diese Eigenschaft in HIDL VHAL (in Android 12) zu unterstützen, müssen Anbieter die Eigenschafts-ID hartcodieren. Das folgende Snippet zeigt beispielsweise, wie dies im Referenz-HIDL unterstützt wird VHAL DefaultConfig.h:

{
  .config =
      {
          // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
          .prop = 0x11400F47,
          .access = VehiclePropertyAccess::READ,
          .changeMode = VehiclePropertyChangeMode::STATIC,
      },
  // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1
  .initialValue = {.int32Values = {1}},
}

Zur Unterstützung dieser Eigenschaft in AIDL VHAL (ab Android 13) können Anbieter die Eigenschafts-ID von VehicleProperty.h und Enum aus GsrComplianceRequirementType.h. Für Beispiel, wie in der Referenz AIDL VHAL DefaultProperties.json:

{
  "property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT",
  "defaultValue": {
    "int32Values": [
      "GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1"
    ]
  }
}

Wenn Sie diese Property aus einer Android-App lesen möchten, verwenden Sie CarPropertyManager.getIntProperty

  • Verwenden Sie unter Android 13 und höher VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE als Property-ID ein.
  • Verwenden Sie in Android 12 den hartcodierten Wert 0x11400F47 als Property-ID. Dieses Für die Property ist die Berechtigung Car#PERMISSION_CAR_INFO erforderlich.