การอ้างอิงโครงสร้าง vehicle_hw_device

การอ้างอิงโครงสร้าง vehicle_hw_device

#include < vehicle.h >

เขตข้อมูล

โครงสร้าง hw_device_t ทั่วไป
อินท์(* init )(struct vehicle_hw_device *อุปกรณ์ vehicle_event_callback_fn event_fn ยานพาหนะ_error_callback_fn err_fn)
อินท์(* ปล่อย )(struct vehicle_hw_device *อุปกรณ์)
vehicle_prop_config_t const *(* list_properties )(struct vehicle_hw_device *อุปกรณ์, int *num_properties)
อินท์(* รับ )(struct vehicle_hw_device *อุปกรณ์, vehicle_prop_value_t *data)
เป็นโมฆะ(* release_memory_from_get ) (struct vehicle_hw_device * อุปกรณ์, vehicle_prop_value_t * data)
อินท์(* ชุด )(struct vehicle_hw_device *อุปกรณ์, const vehicle_prop_value_t *data)
อินท์(* สมัครสมาชิก ) (struct vehicle_hw_device * อุปกรณ์, int32_t prop, float Sample_rate, โซน int32_t)
อินท์(* ยกเลิกการสมัคร )(struct vehicle_hw_device *อุปกรณ์, int32_t prop)
อินท์(* ดัมพ์ )(struct vehicle_hw_device *อุปกรณ์, int fd)

คำอธิบายโดยละเอียด

คำจำกัดความที่บรรทัด 1639 ของไฟล์ vehicle.h

เอกสารภาคสนาม

struct hw_device_t ทั่วไป

คำจำกัดความที่บรรทัด 1640 ของไฟล์ vehicle.h

int(* dump)(struct vehicle_hw_device *อุปกรณ์, int fd)

พิมพ์สถานะการดีบักสำหรับฮาลของยานพาหนะ บริการเครือข่ายของยานพาหนะจะเรียกสิ่งนี้ และจะรวมไว้ในดัมพ์ของบริการ

ตัวอธิบายไฟล์ที่ส่งผ่านสามารถใช้เพื่อเขียนข้อความการดีบักโดยใช้ dprintf() หรือ write() ข้อความควรอยู่ในการเข้ารหัส ASCII เท่านั้น

ต้องการประสิทธิภาพการทำงาน:

นี่จะต้องเป็นการโทรที่ไม่บล็อค HAL ควรกลับจากการโทรนี้ใน 1 มิลลิวินาที และต้องกลับจากการโทรนี้ใน 10 มิลลิวินาที การเรียกนี้ต้องหลีกเลี่ยงการหยุดชะงัก เนื่องจากอาจถูกเรียก ณ จุดใดจุดหนึ่งของการดำเนินการ การซิงโครไนซ์พื้นฐานใดๆ ที่ใช้ (เช่น ล็อค mutex หรือเซมาฟอร์) ควรได้รับพร้อมกับการหมดเวลา

คำจำกัดความที่บรรทัด 1744 ของไฟล์ vehicle.h

int (* รับ) (struct vehicle_hw_device * อุปกรณ์, vehicle_prop_value_t * data)

รับมูลค่าทรัพย์สินรถทันที ข้อมูลควรได้รับการจัดสรรอย่างเหมาะสม ผู้เรียก API เป็นเจ้าของช่องข้อมูล ผู้เรียกจะตั้งค่า 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

int(* init)(struct vehicle_hw_device *อุปกรณ์, vehicle_event_callback_fn event_fn, vehicle_error_callback_fn err_fn)

หลังจากเรียก open บนอุปกรณ์แล้ว ผู้ใช้ควรลงทะเบียนการเรียกกลับสำหรับฟังก์ชันเหตุการณ์และข้อผิดพลาด

คำจำกัดความที่บรรทัด 1646 ของไฟล์ vehicle.h

vehicle_prop_config_t const * (* list_properties) (struct vehicle_hw_device * อุปกรณ์, int * num_properties)

ระบุคุณสมบัติที่มีอยู่ทั้งหมด รายการจะถูกส่งกลับใน "รายการ"

พารามิเตอร์
num_properties จำนวนคุณสมบัติที่มีอยู่ในอาร์เรย์ที่ปรับแต่งใหม่
การส่งคืน
อาร์เรย์ของการกำหนดค่าคุณสมบัติที่รถคันนี้รองรับ โปรดทราบว่าข้อมูลที่ส่งคืนคือ const และผู้โทรไม่สามารถแก้ไขได้ การใช้งาน HAL ควรเก็บหน่วยความจำนี้ไว้จนกว่า HAL จะออกเพื่อหลีกเลี่ยงการคัดลอกอีกครั้ง

คำจำกัดความที่บรรทัด 1663 ของไฟล์ vehicle.h

int (* release) (struct vehicle_hw_device * อุปกรณ์)

ก่อนที่จะโทรปิดผู้ใช้ควรทำลายฟังก์ชันการโทรกลับที่ลงทะเบียนไว้ ในกรณีที่การโทร unsubscribe() ไม่ได้ถูกเรียกในคุณสมบัติทั้งหมดก่อน release() ดังนั้น release() จะยกเลิกการสมัครคุณสมบัตินั้นเอง

คำจำกัดความที่บรรทัด 1654 ของไฟล์ vehicle.h

เป็นโมฆะ (* release_memory_from_get) (struct vehicle_hw_device * อุปกรณ์, vehicle_prop_value_t * data)

ปล่อยหน่วยความจำที่จัดสรรให้กับข้อมูลในการรับสายครั้งก่อน รับการเรียกไบต์หรือสตริงที่เกี่ยวข้องกับการจัดสรรหน่วยความจำที่จำเป็นจากยานพาหนะ เพื่อความปลอดภัย หน่วยความจำที่จัดสรรโดย Hal ของรถควรถูกปล่อยออกมาโดย Hal ของรถ และบริการเครือข่ายของรถจะเรียกสิ่งนี้เมื่อไม่จำเป็นต้องใช้ข้อมูลจาก Hal ของรถอีกต่อไป การใช้งาน vehicle hal ควรปล่อยสมาชิกของ vehicle_prop_value_t เท่านั้น เช่น data->str_value.data หรือ data->bytes_value.data แต่ไม่ควรปล่อยตัวข้อมูลเอง เนื่องจากข้อมูลได้รับการจัดสรรจากบริการเครือข่ายของยานพาหนะ เมื่อหน่วยความจำว่างแล้ว ตัวชี้ที่เกี่ยวข้องควรตั้งค่าเป็น NULL bu vehicle hal

คำจำกัดความที่บรรทัด 1693 ของไฟล์ vehicle.h

int(* set)(struct vehicle_hw_device *อุปกรณ์, const vehicle_prop_value_t *data)

กำหนดมูลค่าทรัพย์สินของยานพาหนะ ข้อมูลควรได้รับการจัดสรรอย่างถูกต้องและไม่ใช่ NULL ผู้เรียก API เป็นเจ้าของช่องข้อมูล การประทับเวลาของข้อมูลจะถูกละเว้นสำหรับการดำเนินการที่ตั้งไว้ การตั้งค่าคุณสมบัติบางอย่างจำเป็นต้องมีสถานะเริ่มต้นที่พร้อมใช้งาน ข้อมูลเริ่มต้นดังกล่าวอาจไม่สามารถใช้ได้ในช่วงเวลาสั้นๆ หลังจากเริ่มต้น ทั้งนี้ขึ้นอยู่กับห้องโถงของยานพาหนะ ในกรณีเช่นนี้ set call สามารถส่งกลับ -EAGAIN ได้เหมือนกับการรับสาย สำหรับคุณสมบัติที่มีการควบคุมพลังงานแยกกัน การตั้งค่าอาจล้มเหลวหากคุณสมบัติไม่ได้เปิดอยู่ ในกรณีเช่นนี้ hal ควรส่งคืนข้อผิดพลาด -ESHUTDOWN

คำจำกัดความที่บรรทัด 1706 ของไฟล์ vehicle.h

int (* สมัครสมาชิก) (struct vehicle_hw_device * อุปกรณ์, int32_t prop, float Sample_rate, โซน int32_t)

สมัครสมาชิกกิจกรรม ขึ้นอยู่กับเอาต์พุตของ list_properties หากคุณสมบัติเป็น: ก) การเปลี่ยนแปลง: ควรตั้งค่าตัวอย่างอัตราเป็น 0 b) รองรับความถี่: ควรตั้งค่าตัวอย่างอัตราจาก min_sample_rate ถึง max_sample_rate สำหรับคุณสมบัติประเภทที่เปลี่ยนแปลง บริการเครือข่ายรถยนต์จะโทรอีกครั้งเพื่อตรวจสอบสถานะเริ่มต้น ด้วยเหตุนี้ การใช้งานระบบ Hal ของยานพาหนะจึงไม่จำเป็นต้องส่งสถานะเริ่มต้นสำหรับคุณสมบัติประเภทที่มีการเปลี่ยนแปลง

พารามิเตอร์
อุปกรณ์
ข้อเสนอ
ตัวอย่าง_อัตรา
โซน โซนที่สมัครเป็นสมาชิกทั้งหมดสำหรับคุณสมบัติโซน สามารถละเว้นได้สำหรับคุณสมบัติที่ไม่ใช่โซน 0 หมายถึงทุกโซนได้รับการสนับสนุน แทนที่จะเป็นไม่มีโซน

คำจำกัดความที่บรรทัด 1723 ของไฟล์ vehicle.h

int (* ยกเลิกการสมัคร) (struct vehicle_hw_device * อุปกรณ์, int32_t prop)

ยกเลิกการสมัครสมาชิกในทรัพย์สิน

คำจำกัดความที่บรรทัด 1727 ของไฟล์ vehicle.h


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / vehicle.h