Besondere Unterkünfte

Anbietereigenschaften

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

  • Verwenden Sie immer zuerst Systemeigenschaften. Anbietereigenschaften sollten nur als letztes Mittel eingesetzt werden, 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:
    • 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. Wenn häufig Big Data über Anbietereigenschaften gesendet werden, kann das den Zugriff auf das gesamte Fahrzeugnetzwerk verlangsamen. Seien Sie vorsichtig, wenn Sie eine große Nutzlast hinzufügen.
    • Property ID Wählen Sie eine eindeutige Zwei-Byte-ID für die Anbietereigenschaft aus. Beispiel: 0x1234.
  • Geben Sie unter VehiclePropConfig.configString eine kurze Beschreibung der Anbietereigenschaft ein. So können Tools zur Gültigkeitsprüfung die versehentliche Replikation vorhandener Fahrzeugeigenschaften melden. Beispiel: „Meine benutzerdefinierte Eigenschaft für XYZ“.
  • Zugriff über CarPropertyManager (für Java-Komponenten) oder über libvhalclient (für native Apps). 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 eine detailliertere Berechtigungssteuerung unterstützen Sie das Attribut SUPPORT_CUSTOMIZE_VENDOR_PERMISSION. Dieser STATIC ist schreibgeschützt, wobei das 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] Ein Enum in VehicleVendorPermission.aidl, das die Berechtigung zum Schreiben des Property-Werts angibt.

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

  • Für vendor_prop_1 ist android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT zum Lesen und android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT zum Schreiben erforderlich.
  • Für vendor_prop-2 ist android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO zum Lesen erforderlich und kann für Android-Apps nicht beschrieben werden.
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

Weitere Informationen finden Sie unter ADAS-Fahrzeugeigenschaften.

SITZ und LENKUNG

Weitere Informationen finden Sie unter Eigenschaften für Sitze und Lenkräder.

Heizung, Lüftung, Klimatechnik (HLK)

Sie können die VHAL verwenden, um die HLK zu steuern, indem Sie HLK-bezogene Eigenschaften festlegen. Die meisten HLK-Eigenschaften sind bestimmten Bereichen im Fahrzeug zugeordnet, einige sind jedoch globale Eigenschaften. Beispiele für definierte Properties:

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

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

Regeln für die Zuordnung von nicht globalen HVAC-Eigenschaften vom Typ „VehicleArea“ zu AreaIDs: Jeder „Bereich“ für einen bestimmten VehicleArea-Typ, der von der Eigenschaft betroffen ist, muss in einer AreaID für diese Eigenschaft enthalten sein. Die Temperaturregler sind der die sie „größten Einfluss“ haben, Jeder betroffene Sitzplatz muss jedoch genau einmal angegeben werden. Die Zuweisung des mittleren Rücksitzes zur linken oder rechten AreaID mag willkürlich erscheinen, aber die Aufnahme jedes betroffenen Sitzes in genau eine AreaID sorgt dafür, dass alle Sitze im Auto angegeben sind und dass eine angemessene Möglichkeit besteht, jeden Sitz zu beeinflussen.

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_RIGHT

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

  • ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
  • ROW_1_RIGHT | ROW_2_RIGHT

Beispiel 2

Ein Auto hat drei Sitzreihen mit zwei Sitzen in der ersten Reihe (ROW_1_LEFT, ROW_1_RIGHT) sowie drei Sitzen 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 einen für die Fahrer-, die Beifahrerseite und den Fond. Eine sinnvolle Möglichkeit, HVAC_TEMPERATURE_SET zu AreaIDs zuzuordnen, ist ein Array mit drei Elementen:

  • ROW_1_LEFT
  • ROW_1_RIGHT
  • 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 für die beiden Vordersitze. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_AUTO_ON wäre eine einzelne Element-Array:

  • ROW_1_LEFT | ROW_1_RIGHT

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_RIGHT

INFO_EXTERIOR_DIMENSIONS

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

Abbildung 1: Abmessungen des Fahrzeugäußeren, Vorderansicht.
Abbildung 2. Abmessungen des Fahrzeugäußeren, Seitenansicht.

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

Fahrzeugeigenschaft VHAL-Feld Beschreibung
Größe int32Values[0] Vertikale Entfernung zwischen dem Boden und dem höchsten Punkt des Fahrzeugs. Dabei wird davon ausgegangen, dass die werkseitig montierten Räder normal aufgepumpt sind.
Länge int32Values[1] Horizontaler Abstand zwischen den äußersten Punkten der Vorder- und Rückseite 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 den Vorderrädern, gemessen von der Mittellinie eines Reifenprofils bis zur Mittellinie 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, den die äußeren Räder des Fahrzeugs bei einer vollständigen Kurve mit einem vollständig verriegeltem Lenkrad beschreiben.

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 Property wird in AIDL VHAL ab Android 13 hinzugefügt, wird aber seit der Veröffentlichung von Android 12 in Car Service unterstützt. Diese Property ist als schreibgeschützte, statische globale Ganzzahleigenschaft definiert. Die möglichen Werte werden durch die Aufzählung GsrComplianceRequirementType definiert:

Name Wert Beschreibung
GSR_COMPLIANCE_NOT_REQUIRED 0 Einhaltung der GSR-Anforderungen 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 in der Referenz-HIDL-VHAL DefaultConfig.h unterstützt wird:

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

Um diese Eigenschaft in AIDL VHAL (ab Android 13) zu unterstützen, können Anbieter die Property-ID aus VehicleProperty.h und das Enum aus GsrComplianceRequirementType.h verwenden. Beispiel: 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 unter Android 12 den hartcodierten Wert 0x11400F47 als Property-ID. Dieses Für die Property ist die Berechtigung Car#PERMISSION_CAR_INFO erforderlich.