المواقع الخاصة

خصائص المورّد

لتلبية الاحتياجات الخاصة بالشركاء، يسمح VHAL بمواقع المورّدين التي لا يمكن الوصول إليها إلا من خلال واجهات برمجة تطبيقات النظام. اتّبِع الإرشادات التالية عند العمل مع سمات المورّدين:

  • حاوِل دائمًا استخدام خصائص النظام أولاً، ويجب استخدام خصائص المورّدين كملاذ أخير عندما لا تلبّي أيّ من خصائص النظام متطلباتك.
  • لمنع تجزئة المنظومة المتكاملة، يجب عدم استخدام خصائص المورّدين لتكرار خصائص مركبة متوفّرة حاليًا في VehiclePropertyIds لحزمة SDK. لمزيد من المعلومات، يُرجى الاطّلاع على القسم 2.5، متطلبات الأجهزة المخصّصة للسيارات في "مستند CDD".
  • استخدِم الحقول التالية لإنشاء رقم تعريف الفندق:
    • VehiclePropertyGroup:VENDOR لا تُستخدَم مجموعة VENDOR إلا لمواقع المورّدين.
    • VehicleArea اختَر نوع منطقة مناسبًا.
    • VehiclePropertyType اختَر نوع البيانات المناسب. يسمح نوع BYTES بتمرير البيانات الأولية، وهو كافٍ في معظم الحالات. إنّ إرسال البيانات الكبيرة بشكل متكرّر من خلال مواقع المورّدين يمكن أن يؤدي إلى إبطاء الوصول إلى شبكة المركبة بالكامل. يُرجى توخّي الحذر عند إضافة حمولة كبيرة.
    • Property ID اختَر معرّفًا فريدًا ثنائي البايت لخاصية المورِّد. على سبيل المثال، ‎0x1234.
  • املأ الحقل VehiclePropConfig.configString بوصف موجز لممتلكات المورّد. ويسمح ذلك لأدوات التحقّق من الصحة برصد تكرار بيانات المركبات الحالية عن طريق الخطأ. على سبيل المثال، "خاصي المخصص لـ XYZ".
  • يمكن الوصول إليه من خلال CarPropertyManager (لمكوّنات Java) أو من خلال libvhalclient (لمكوّنات Java). لا تعدِّل واجهات برمجة التطبيقات الأخرى للسيارات لأنّ ذلك قد يؤدي إلى حدوث مشاكل في التوافق في المستقبل.

إذن مواقع المورّدين

ويكون الإذن التلقائي لأي خصائص محدّدة للمورّدين هو android.car.Car.PERMISSION_VENDOR_EXTENSION. للتحكّم في الأذونات بشكل أدقّ، ننصحك بإتاحة السمة SUPPORT_CUSTOMIZE_VENDOR_PERMISSION. سمة STATIC هذه للقراءة فقط، وتحدِّد صفيف الإعدادات أذونات سمات المورّدين. يتم ضبط configArray على النحو التالي (i هو عدد صحيح يبدأ من 0):

  • configArray[3 * i] propId، معرّف الموقع لموقّع المورّد
  • configArray[3 * i + 1] تعداد في VehicleVendorPermission.aidl للإشارة إلى إذن بقراءة قيمة السمة
  • configArray[3 * i + 2] قائمة أرقام مميزة في VehicleVendorPermission.aidl لتحديد الإذن بكتابة قيمة السمة

على سبيل المثال، تضبط صفيف الإعدادات التالي موقعَي مورّد، vendor_prop_1 وvendor_prop_2، للحصول على الأذونات:

  • تشترط "vendor_prop_1" استخدام android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT للقراءة، android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT للكتابة.
  • يتطلب vendor_prop-2 القراءة من android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO ولا يمكن الكتابة باستخدامه مع تطبيقات Android.
configArray = {
  PERMISSION_SET_VENDOR_CATEGORY_SEAT
    vendor_prop_2, PERMISSION_GET_VENDOR_CATEGORY_INFO, PERMISSION_NOT_ACCESSIBLE
}

تحصل مواقع المورّدين التي لا تكون في هذه الصفيف على إذن المورّد التلقائي. عند اختيار PERMISSION_NOT_ACCESSIBLE، لا يمكن لتطبيقات Android الوصول إلى الموقع. في المثال، لا يمكن لتطبيقات Android كتابة قيمة للحقل "vendor_prop_2". ويمكن لعملاء VHAL الأصليين فقط الكتابة إلى هذه السمة.

أنظمة مساعدة السائق المتقدمة (ADAS)

راجِع خصائص المركبات في ADAS.

المقعد وتوجيه السيارة

اطّلِع على خصائص المقاعد وعجلة القيادة.

التدفئة والتهوية وتكييف الهواء

يمكنك استخدام VHAL للتحكّم في التدفئة والتهوية وتكييف الهواء من خلال ضبط السمات ذات الصلة بالتدفئة والتهوية وتكييف الهواء. ترتبط معظم خصائص التدفئة والتهوية وتكييف الهواء بمساحات معيّنة في المركبة، إلا أنّ العديد منها يشكّل مواقع عالمية. تشمل أمثلة السمات المحدّدة ما يلي:

الخاصية الغرض
HVAC_TEMPERATURE_SET ضبط درجة الحرارة لكل رقم تعريف منطقة
HVAC_POWER_ON تعرض هذه السمة حالة الطاقة لنظام التدفئة والتهوية وتكييف الهواء حسب معرّف المنطقة.

بالنسبة إلى سمات التدفئة والتهوية وتكييف الهواء التي تعتمد على حالة الطاقة في نظام التدفئة والتهوية وتكييف الهواء، يجب إدراجها في صفيف الإعدادات HVAC_POWER_ON. للاطّلاع على قائمة كاملة بسمات التدفئة والتهوية وتكييف الهواء، ابحث عن HVAC_* في VehicleProperty.aidl، اطّلِع على سمات النظام المتوافقة. المواقع.

قواعد ربط سمات HVAC من النوع VehicleArea غير الشاملة بأرقام تعريف المناطق: يجب أن يتم تضمين كل "منطقة" لنوع VehicleArea معيّن يتأثّر بالموقع في رقم تعريف منطقة لذلك الموقع. يتم تعيين أدوات التحكّم في درجة الحرارة إلى المقاعد التي "تؤثر فيها بشكلٍ أكبر"، ولكن يجب تضمين كل مقعد متأثر مرة واحدة بالضبط. قد يبدو أنّ تخصيص المقعد الخلفي الأوسط لرقم تعريف منطقة على يمين أو يسار السيارة هو إجراء عشوائي، ولكنّ تضمين كل مقعد متأثر في رقم تعريف منطقة واحد بالضبط يضمن تمثيل المقاعد في السيارة بالكامل وتوفير طريقة معقولة للتأثير في كل مقعد.

مثال 1

تحتوي السيارة على مقعدَين أماميَّين (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية (ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). تتوفّر وحدتَا تحكّم في درجة الحرارة، واحدة لكل من جانبَي السائق والراكب. ستكون مجموعة الربط الصالحة لمعرّفات LocationID في HVAC_TEMPERATURE_SET عبارة عن مصفوفة مكوّنة من عنصرَين:

  • الصف_1_اليمين | الصف_2_اليمين
  • ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT

في ما يلي تعيين بديل لإعدادات الأجهزة نفسها:

  • ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
  • ROW_1_RIGHT | ROW_2_RIGHT

مثال 2

تحتوي السيارة على ثلاثة صفوف مقاعد مع مقعدَين في الصف الأمامي (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد في الصف الثاني (ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT) والصف الثالث (ROW_3_LEFT وROW_3_CENTER وROW_3_RIGHT). تتوفّر ثلاث وحدات للتحكّم في درجة الحرارة، واحدة لكل من جانب السائق وجانب الراكب والجانب الخلفي. إنّ طريقة معقولة لربط HVAC_TEMPERATURE_SET بـ AreaIDs هي صفيف من ثلاثة عناصر:

  • ROW_1_LEFT
  • ROW_1_RIGHT
  • ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT

مثال 3

تحتوي السيارة على مقعدَين أماميَّين (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية (ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). لنفترض أنّ السيارة تتيح استخدام HVAC_AUTO_ON فقط في المقعدَين الأماميَين. ستكون مجموعة الربط الصالحة لـ AreaIDs الخاصة بـ HVAC_AUTO_ON عبارة عن صفيف عنصر واحد:

  • ROW_1_LEFT | ROW_1_RIGHT

إذا كان لدى HVAC_AUTO_ON وحدتَا تحكّم منفصلتَين ناحية السائق وناحية الراكب، سيكون الربط البديل مصفوفة من عنصرَين:

  • ROW_1_LEFT
  • ROW_1_RIGHT

INFO_EXTERIOR_DIMENSIONS

يتم قياس الأبعاد الخارجية للمركبة بالملليمتر، كما هو موضّح في الشكل 1.

الشكل 1. الأبعاد الخارجية للمركبة، والرؤية الأمامية
الشكل 2. أبعاد المركبة الخارجية، صورة جانبية

استخدِم السمات الموضّحة في هذا الجدول لتحديد الأبعاد الخارجية للمركبة.

بيانات المركبة حقل VHAL الوصف
الطول int32Values[0] المسافة العمودية بين الأرض وأعلى نقطة في المركبة والافتراض أنّ عجلات التصنيع تكون منتفخة عادةً.
المدة int32Values[1] المسافة الأفقية بين أقصى نقطتَي الجزء الأمامي والخلفي من المركبة
العرض، باستثناء المرايا int32Values[2] المسافة الأفقية بين النقطتَين الأقصى على كل جانب من جوانب المركبة، باستثناء المرايا الجانبية
العرض، بما في ذلك المرايا int32Values[3] المسافة الأفقية بين النقطتين الخارجيين على كل جانب من جوانب المركبة، بما في ذلك المرايا الجانبية.
قاعدة العجلات int32Values[4] المسافة بين مركزَي العجلتين الأمامية والخلفية للمركبة
عرض الجنوط، الجهة الأمامية int32Values[5] المسافة بين العجلة الأمامية، تقاس من خط مركزي لمداس أحد الإطارات إلى خط مركزي لمداس الإطار المقابل
عرض المسار الخلفي int32Values[6] المسافة بين العجلة الخلفية، تقاس من خط مركزي لمداس أحد الإطارات إلى خط مركزي لمداس الإطار المقابل
قطر الدوران من الرصيف إلى الرصيف int32Values[7] قطر الدائرة التي تشكلها العجلات الخارجية للمركبة عند إجراء دوران كامل بعجلة قيادة مقفلة بالكامل

الامتثال للائحة الاتحاد الأوروبي العامة للسلامة

إذا كان يجب أن تكون المركبة متوافقة مع متطلبات "لوائح السلامة العامة" (GSR) في الاتحاد الأوروبي من خلال Android، يجب أن يكون الموقع GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT متوافقًا. على سبيل المثال، تشمل حالات الاستخدام ميزة "المساعدة السريعة الذكية" (ISA) وفقًا لـ "لوائح السلامة العامّة" (GSR) كما هو محدّد في لائحة الاتحاد الأوروبي 2019/2144. تمت إضافة هذا السمة في AIDL VHAL من Android 13، ومع ذلك، فهي متوافقة مع Car Service منذ إصدار Android 12. يتم تعريف هذه السمة على أنّها خاصية للقراءة فقط بعدد صحيح عمومي ثابت، مع تحديد القيم المحتملة من خلال تعداد GsrComplianceRequirementType:

الاسم القيمة الوصف
GSR_COMPLIANCE_NOT_REQUIRED 0 لا يُشترط الامتثال لـ GSR
GSR_COMPLIANCE_REQUIRED_V1 1 يجب الامتثال لـ GSR ويكون إصدار حلّ المتطلبات هو 1.

لتفعيل هذه السمة في HIDL VHAL (في Android 12)، على المورّدين تضمين معرّف السمة في الرمز البرمجي. على سبيل المثال، يوضّح المقتطف التالي كيفية توفّر هذه الميزة في مرجع HIDL 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}},
}

لإتاحة هذا الموقع في AIDL VHAL (من نظام التشغيل Android 13)، يمكن للمورّدين استخدام معرّف الموقع من VehicleProperty.h والتعداد من GsrComplianceRequirementType.h. على سبيل المثال، كما هو موضّح في مرجع AIDL VHAL DefaultProperties.json:

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

لقراءة هذه السمة من تطبيق Android، استخدِم CarPropertyManager.getIntProperty.

  • في الإصدار 13 من Android والإصدارات الأحدث، استخدِم VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE كرقم تعريف الموقع.
  • في Android 12، استخدِم القيمة الثابتة 0x11400F47 كمعرّف للموقع. تتطلّب هذه السمة الحصول على الإذن Car#PERMISSION_CAR_INFO.