مرجع ساختار خودرو_hw_device

مرجع ساختار خودرو_hw_device

#include < vehicle.h >

فیلدهای داده

ساخت hw_device_t مشترک
int(* init )(ساخت وسیله نقلیه_hw_device *دستگاه، خودرو_رویداد_بازخوانی_fn رویداد_fn، خودرو_خطا_بازخوانی_fn err_fn)
int(* انتشار )(ساخت وسیله نقلیه_hw_دستگاه *دستگاه)
wesayît_prop_config_t const *(* list_properties )(ساخت وسیله نقلیه_hw_device *device, int *num_properties)
int(* گرفتن _ _
خالی(* release_memory_from_get )(struct move_hw_device *device, vehicle_prop_value_t *data)
int(* مجموعه )(ساختار وسیله نقلیه_hw_دستگاه *دستگاه، const automjet_prop_value_t *داده)
int(* مشترک شدن
int(* لغو اشتراک
int(* dump )(struct vehicle_hw_device *device, int fd)

توصیف همراه با جزئیات

تعریف در خط 1639 فایل automjet.h .

مستندات میدانی

struct hw_device_t مشترک

تعریف در خط 1640 فایل automjet.h .

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

حالت اشکال زدایی را برای hal وسیله نقلیه چاپ کنید. این توسط سرویس شبکه خودرو فراخوانی می شود و در dump سرویس گنجانده می شود.

توصیفگر فایل منتقل شده می تواند برای نوشتن متن اشکال زدایی با استفاده از dprintf() یا write() استفاده شود. متن باید فقط در رمزگذاری ASCII باشد.

ملزومات اجرا:

این باید یک تماس غیر مسدود باشد. HAL باید از این تماس در 1 میلی ثانیه برگردد، باید از این تماس در 10 میلی ثانیه برگردد. این تماس باید از بن بست جلوگیری کند، زیرا ممکن است در هر نقطه از عملیات فراخوانی شود. هر نوع همگام سازی اولیه مورد استفاده (مانند قفل های mutex یا سمافورها) باید با یک بازه زمانی به دست آید.

تعریف در خط 1744 فایل automjet.h .

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

فوراً ارزش دارایی خودرو را دریافت کنید. داده ها باید به درستی تخصیص داده شوند. تماس‌گیرنده API مالک فیلد داده است. تماس گیرنده data->prop، data->value_type، و به صورت اختیاری مقدار zone را برای ویژگی منطقه بندی شده تنظیم می کند. اما پیاده سازی HAL باید هنگام بازگشت همه ورودی ها را به درستی پر کند. برای نوع اشاره گر، اجرای HAL باید حافظه لازم را تخصیص دهد و تماس گیرنده مسئول فراخوانی release_memory_from_get است، که به HAL اجازه می دهد تا حافظه اختصاص داده شده را آزاد کند. برای نوع VEHICLE_PROP_CHANGE_MODE_STATIC، get باید همیشه همان مقدار را برگرداند. برای VEHICLE_PROP_CHANGE_MODE_ON_CHANGE نوع ویژگی، باید آخرین مقدار را برگرداند. اگر هنوز هیچ داده ای در دسترس نیست، که می تواند در مرحله اولیه اتفاق بیفتد، این تماس باید بلافاصله با کد خطای -EAGAIN برگردد.

تعریف در خط 1681 فایل automjet.h .

int(* init)(struct vehicle_hw_device *device, automjet_event_callback_fn event_fn, automjet_error_callback_fn err_fn)

پس از فراخوانی باز در دستگاه، کاربر باید برای عملکردهای رویداد و خطا، تماس‌های برگشتی را ثبت کند.

تعریف در خط 1646 فایل automjet.h .

Vehicle_prop_config_t const*(* list_properties)(structure automjet_hw_device *device, int *num_properties)

تمام املاک موجود را برشمارید. لیست در "لیست" برگردانده می شود.

مولفه های
num_properties تعداد ویژگی های موجود در آرایه تنظیم مجدد.
برمی گرداند
مجموعه ای از تنظیمات ویژگی که توسط این خودرو پشتیبانی می شود. توجه داشته باشید که داده های برگشتی const هستند و تماس گیرنده نمی تواند آن را تغییر دهد. اجرای HAL باید این حافظه را تا زمان آزاد شدن HAL حفظ کند تا از کپی مجدد آن جلوگیری شود.

تعریف در خط 1663 فایل automjet.h .

int(* release)(structure vehicle_hw_device *device)

قبل از فراخوانی بستن، کاربر باید توابع بازگشت به تماس ثبت شده را از بین ببرد. در صورتی که فراخوانی unsubscribe() قبل از release() روی همه ویژگی ها فراخوانی نشود، آنگاه release() خود ویژگی ها را لغو می کند.

تعریف در خط 1654 فایل automjet.h .

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

حافظه اختصاص داده شده به داده ها در تماس دریافت قبلی را آزاد کنید. دریافت فراخوان برای بایت یا رشته شامل تخصیص حافظه لازم از وسیله نقلیه هال است. برای ایمن بودن، حافظه تخصیص‌یافته توسط خودرو hal باید توسط خودرو hal آزاد شود و سرویس شبکه خودرو زمانی که دیگر نیازی به داده‌های خودرو hal نباشد، این مورد را فراخوانی می‌کند. پیاده سازی خودرو hal فقط باید عضوی از wesayît_prop_value_t مانند data->str_value.data یا data->bytes_value.data را آزاد کند، اما نه خود داده را زیرا خود داده از سرویس شبکه خودرو تخصیص داده می شود. هنگامی که حافظه آزاد شد، نشانگر مربوطه باید روی NULL bu automjet hal تنظیم شود.

تعریف در خط 1693 فایل automjet.h .

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

مقدار خاصیت وسیله نقلیه را تنظیم کنید. داده ها باید به درستی تخصیص داده شوند نه NULL. تماس‌گیرنده API مالک فیلد داده است. مهر زمانی داده ها برای عملیات تنظیم نادیده گرفته می شود. تنظیم برخی از ویژگی ها نیاز به در دسترس بودن حالت اولیه دارد. بسته به hal وسیله نقلیه، چنین داده های اولیه ممکن است برای مدت کوتاهی پس از شروع در دسترس نباشد. در چنین حالتی، تماس تنظیم شده می‌تواند دوباره مانند دریافت تماس، بازگردد. برای یک ویژگی با کنترل توان جداگانه، اگر ویژگی روشن نباشد، تنظیم ممکن است خراب شود. در چنین حالتی، hal باید خطای ESHUTDOWN را برگرداند.

تعریف در خط 1706 فایل automjet.h .

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

اشتراک در رویدادها بسته به خروجی list_properties اگر ویژگی این باشد: الف) on-change: sample_rate باید روی 0 تنظیم شود. ب) فرکانس پشتیبانی می کند: sample_rate باید از min_sample_rate به max_sample_rate تنظیم شود. برای نوع ویژگی‌های در حال تغییر، سرویس شبکه خودرو یک تماس دیگر برای بررسی وضعیت اولیه برقرار می‌کند. به همین دلیل، پیاده سازی هال وسیله نقلیه نیازی به ارسال حالت اولیه برای نوع در حال تغییر خواص ندارد.

مولفه های
دستگاه
پشتیبانی
نرخ نمونه
مناطق همه مناطق مشترک برای دارایی منطقه بندی شده. می توان برای اموال غیر منطقه ای نادیده گرفت. 0 به این معنی است که همه مناطق به جای بدون منطقه پشتیبانی می شوند.

تعریف در خط 1723 فایل automjet.h .

int(* لغو اشتراک)(ساخت وسیله نقلیه_hw_device *دستگاه، پایه int32_t)

لغو اشتراک در یک ملک.

تعریف در خط 1727 فایل automjet.h .


مستندات این ساختار از فایل زیر تولید شده است:
  • hardware/libhardware/include/hardware/ automjet.h