مرجع بنية vehicle_hw_device

مرجع بنية vehicle_hw_device

#include < vehicle.h >

حقول البيانات

struct hw_device_t   شائعة
 
int(*  init )(struct vehicle_hw_device *device, vehicle_event_callback_fn event_fn, vehicle_error_callback_fn err_fn)
 
int(*  release )(struct vehicle_hw_device *device)
 
vehicle_prop_config_t const *(*  list_properties )(struct vehicle_hw_device *device, int *num_properties)
 
int(*  get )(struct vehicle_hw_device *device, vehicle_prop_value_t *data)
 
void(*  release_memory_from_get )(struct vehicle_hw_device *device, vehicle_prop_value_t *data)
 
int(*  set )(struct vehicle_hw_device *device, const vehicle_prop_value_t *data)
 
int(*  subscribe )(struct vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t zones)
 
int(*  unsubscribe )(struct vehicle_hw_device *device, int32_t prop)
 
int(*  dump )(struct vehicle_hw_device *device, int fd)
 

وصف مفصّل

التعريف في السطر 1639 من الملف vehicle.h .

مستندات الحقل

struct hw_device_t common

التعريف في السطر 1640 من الملف vehicle.h .

int(* dump)(struct vehicle_hw_device *device, int fd)

طباعة حالة تصحيح الأخطاء لـ HAL في السيارة ستستدعي خدمة شبكة المركبة هذا الإجراء وسيتم تضمينه في ملف تخزين الخدمة.

يمكن استخدام ملف الوصف الذي تم تمريره لكتابة نص تصحيح الأخطاء باستخدام dprintf()‎ أو write()‎. يجب أن يكون النص بترميز ASCII فقط.

متطلبات الأداء:

يجب أن تكون هذه مكالمة غير محظورة. من المفترض أن يعود HAL من هذه المكالمة خلال 1 مللي ثانية، ومن المفترض أن يعود من هذه المكالمة خلال 10 مللي ثانية. يجب أن تتجنّب هذه الدعوة حالات التوقف المفاجئ للعمل، لأنّه يمكن استدعاؤها في أي مرحلة من مراحل التشغيل. يجب الحصول على أيّ من الوحدات الأساسية للمزامنة المستخدَمة (مثل أقفال المُحجوزات الحصرية أو وحدات الإشارة) باستخدام مهلة.

التعريف في السطر 1744 من الملف vehicle.h .

int(* get)(struct vehicle_hw_device *device, vehicle_prop_value_t *data)

الحصول على قيمة سمة المركبة على الفور. يجب تخصيص البيانات بشكل صحيح. يملك المُرسِل لطلب البيانات من واجهة برمجة التطبيقات حقل البيانات. سيضبط المُرسِل data->prop وdata->value_type وقيمة المنطقة اختياريًا للموقع الجغرافي. ولكن يجب ملء جميع الإدخالات بشكل صحيح عند تنفيذ HAL لإرجاعها. بالنسبة إلى نوع المؤشر، يجب أن يخصّص تنفيذ HAL الذاكرة اللازمة ويتحمل المُرسِل مسؤولية استدعاء release_memory_from_get، ما يسمح لواجهة HAL بإخلاء الذاكرة المخصّصة. بالنسبة إلى نوع السمة VEHICLE_PROP_CHANGE_MODE_STATIC، من المفترض أن يعرض الإجراء get القيمة نفسها دائمًا. بالنسبة إلى نوع السمة VEHICLE_PROP_CHANGE_MODE_ON_CHANGE، من المفترض أن يعرض الحقل أحدث قيمة. إذا لم تتوفّر أي بيانات بعد، وهو ما يمكن أن يحدث خلال المرحلة الأولية، من المفترض أن يعرض هذا الطلب على الفور رمز الخطأ -EAGAIN.

التعريف في السطر 1681 من الملف vehicle.h .

بعد استدعاء open on device، على المستخدم تسجيل عمليات الاستدعاء لوظائف الأحداث والأخطاء.

التعريف في السطر 1646 من الملف vehicle.h .

vehicle_prop_config_t const*(* list_properties)(struct vehicle_hw_device *device, int *num_properties)

عدّ كل المواقع المتاحة. يتم عرض القائمة في "قائمة".

المعلمات
num_properties عدد المواقع التي تتضمّنها الصفيف المعروض
المرتجعات
صفيف من إعدادات الموقع المتوافقة مع هذه السيارة يُرجى العلم أنّ البيانات المعروضة ثابتة ولا يمكن للمتصل تعديلها. من المفترض أن يحتفظ تنفيذ HAL بهذه الذاكرة إلى أن يتم إصدار HAL لتجنُّب نسخه مرة أخرى.

التعريف في السطر 1663 من الملف vehicle.h .

int(* release)(struct vehicle_hw_device *device)

قبل إغلاق المكالمة، على المستخدم إلغاء وظائف ردّ الاتصال المسجّلة. في حال عدم استدعاء unsubscribe() في جميع المواقع قبل release() سيؤدي ذلك إلى أن release() يلغي اشتراك المواقع بنفسها.

التعريف في السطر 1654 من الملف vehicle.h .

void(* release_memory_from_get)(struct vehicle_hw_device *device, vehicle_prop_value_t *data)

تحرير الذاكرة المخصّصة للبيانات في طلب get السابق. يتضمن طلب get للبايت أو السلسلة تخصيص الذاكرة اللازمة من hal للمركبة. لضمان الأمان، يجب أن تُفرِج واجهة HAL للمركبة عن الذاكرة التي خصصتها، وستستدعي خدمة شبكة المركبة هذه الخطوة عندما لا تعود البيانات الواردة من واجهة HAL للمركبة ضرورية. يجب أن تُفرِج عملية تنفيذ واجهة HAL للمركبة عن العضو فقط من vehicle_prop_value_t مثل data->str_value.data أو data->bytes_value.data ولكن ليس data نفسها لأنّه يتم تخصيص data نفسها من خدمة شبكة المركبة. بعد تحرير الذاكرة، يجب ضبط المؤشر المقابل على NULL من خلال واجهة HAL للمركبة.

التعريف في السطر 1693 من الملف vehicle.h .

int(* set)(struct vehicle_hw_device *device, const vehicle_prop_value_t *data)

يجب ضبط قيمة خاصية المركبة. يجب تخصيص البيانات بشكل صحيح وليس NULL. يملك المُتصل بواجهة برمجة التطبيقات حقّ الوصول إلى حقل البيانات. وسيتم تجاهل الطابع الزمني للبيانات لإجراء عملية الضبط. تتطلّب ضبط بعض السمات توفُّر الحالة الأولية. استنادًا إلى واجهة برمجة التطبيقات للمركبة، قد لا تكون هذه البيانات الأولية متاحة لفترة قصيرة بعد البدء. في هذه الحالة، يمكن أن يعرض set call الخطأ -EAGAIN مثل get call. بالنسبة إلى الموقع الذي يتضمّن عنصر تحكّم منفصلاً في الطاقة، قد يتعذّر ضبطه إذا لم يكن الموقع مُشغّلاً. في هذه الحالة، من المفترض أن يعرض hal الخطأ -ESHUTDOWN.

التعريف في السطر 1706 من الملف vehicle.h .

int(* subscribe)(struct vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t zones)

الاشتراك في الأحداث استنادًا إلى ناتج list_properties إذا كانت السمة: أ) عند التغيير: يجب ضبط sample_rate على 0. ب) تتيح تكرارًا: يجب ضبط sample_rate من min_sample_rate إلى max_sample_rate. بالنسبة إلى نوع القيم المتغيرة، ستُجري خدمة شبكة المركبات طلبًا آخر للحصول على البيانات من أجل التحقّق من الحالة الأولية. ولهذا السبب، لا يحتاج تنفيذ hal للمركبات إلى إرسال الحالة الأولية لنوع السمات التي يتم تغييرها.

المعلمات
جهاز
prop
sample_rate
المناطق يمكن تجاهل جميع المناطق المشترَكة للموقع المُدرَج في منطقة معيّنة في الموقع غير المُدرَج في منطقة معيّنة. يشير الرمز 0 إلى جميع المناطق المتوافقة بدلاً من عدم توفّر أي منطقة.

التعريف في السطر 1723 من الملف vehicle.h .

int(* unsubscribe)(struct vehicle_hw_device *device, int32_t prop)

إلغاء اشتراك في موقع

التعريف في السطر 1727 من الملف vehicle.h .


تم إنشاء مستندات هذه البنية من الملف التالي: