อินเทอร์เฟซ HAL ของเซ็นเซอร์ซึ่งประกาศใน sensors.h จะแสดงอินเทอร์เฟซระหว่างเฟรมเวิร์ก Android และ ซอฟต์แวร์เฉพาะฮาร์ดแวร์ การใช้งาน HAL ต้องกำหนดแต่ละฟังก์ชัน ที่ประกาศใน Sensor.h ฟังก์ชันหลักมีดังต่อไปนี้
get_sensors_list
- แสดงรายการเซ็นเซอร์ทั้งหมดactivate
- เริ่มหรือหยุดเซ็นเซอร์batch
- ตั้งค่าพารามิเตอร์ของเซ็นเซอร์ เช่น ความถี่ในการสุ่มตัวอย่างและค่าสูงสุด เวลาในการตอบสนองการรายงานsetDelay
- ใช้ใน HAL เวอร์ชัน 1.0 เท่านั้น ตั้งค่าความถี่การสุ่มตัวอย่างสำหรับ เซ็นเซอร์ที่ระบุflush
- ล้าง FIFO ของเซ็นเซอร์ที่ระบุและรายงานว่าการล้างอย่างสมบูรณ์ กิจกรรมเมื่อเสร็จสิ้นpoll
- ส่งคืนเหตุการณ์เซ็นเซอร์ที่มีอยู่
การติดตั้งใช้งานต้องปลอดภัยด้วยชุดข้อความและอนุญาตให้เรียกใช้ฟังก์ชันเหล่านี้ จากชุดข้อความต่างๆ
อินเทอร์เฟซยังกำหนดประเภทต่างๆ ที่ฟังก์ชันเหล่านั้นใช้ด้วย องค์ประกอบหลัก ได้แก่
sensors_module_t
sensors_poll_device_t
sensor_t
sensors_event_t
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทเหล่านั้นได้ที่ sensors.h
get_sensors_list(รายการ)
int (*get_sensors_list)(struct sensors_module_t* module, struct sensor_t const** list);
แสดงรายการเซ็นเซอร์ที่ HAL ใช้งาน ดูรายละเอียดเกี่ยวกับวิธีกำหนดเซ็นเซอร์ได้ที่ sensor_t
ลำดับของเซ็นเซอร์ที่ปรากฏในรายการคือลำดับที่ เซ็นเซอร์จะได้รับการรายงานไปยังแอปพลิเคชัน โดยปกติแล้ว เซ็นเซอร์ที่ฐานจะปรากฏ ตามด้วยเซ็นเซอร์คอมโพสิต
หากมีเซ็นเซอร์หลายตัวที่ใช้ประเภทเซ็นเซอร์และคุณสมบัติการปลุกระบบเดียวกัน เซ็นเซอร์แรก
เซ็นเซอร์ในรายการเรียกว่าเซ็นเซอร์ "เริ่มต้น" แต่เป็นผลิตภัณฑ์ที่แสดงผลโดย
getDefaultSensor(int sensorType, bool wakeUp)
ฟังก์ชันนี้จะแสดงจำนวนเซ็นเซอร์ในรายการ
เปิดใช้งาน(เซ็นเซอร์, จริง/เท็จ)
int (*activate)(struct sensors_poll_device_t *dev, int sensor_handle, int enabled);
เปิดหรือปิดใช้งานเซ็นเซอร์
sensor_handle
คือแฮนเดิลของเซ็นเซอร์สำหรับเปิด/ปิดใช้งาน เซ็นเซอร์
แฮนเดิลกำหนดโดยช่อง handle
ของโครงสร้าง sensor_t
enabled
ตั้งค่าไว้เป็น 1 เพื่อเปิดใช้ หรือ 0 เพื่อปิดเซ็นเซอร์
เซ็นเซอร์แบบครั้งเดียวจะปิดใช้งานตัวเองโดยอัตโนมัติเมื่อได้รับเหตุการณ์
และลูกค้ายังคงต้องยอมรับการปิดใช้งานผ่านการโทรหา activate(...,
enabled=0)
เซ็นเซอร์ที่ไม่ใช่การปลุกระบบจะไม่ป้องกัน SoC ไม่ให้เข้าสู่โหมดระงับ นั่น คือ HAL จะไม่พักการทำงานขณะล็อกบางส่วนในนามของแอปพลิเคชัน
เซ็นเซอร์ปลุกระบบขณะส่งเหตุการณ์อย่างต่อเนื่องสามารถป้องกันไม่ให้ SoC เกิด จะเข้าสู่โหมดระงับ แต่หากไม่จำเป็นต้องส่งเหตุการณ์ใดๆ ต้องปล่อยการทำงานขณะล็อก
หาก enabled
เท่ากับ 1 และเซ็นเซอร์เปิดใช้งานอยู่แล้ว ฟังก์ชันนี้จะไม่มีการดำเนินการ
และประสบความสำเร็จ
หาก enabled
เป็น 0 และปิดใช้งานเซ็นเซอร์อยู่แล้ว ฟังก์ชันนี้จะไม่ดำเนินการเอง
และประสบความสำเร็จ
ฟังก์ชันนี้แสดงผล 0 เมื่อสำเร็จ และตัวเลขข้อผิดพลาดลบ
กลุ่ม(เซ็นเซอร์, การแจ้ง, ระยะเวลาการสุ่มตัวอย่าง, เวลาในการตอบสนองของรายงานสูงสุด)
int (*batch)( struct sensors_poll_device_1* dev, int sensor_handle, int flags, int64_t sampling_period_ns, int64_t max_report_latency_ns);
ตั้งค่าพารามิเตอร์ของเซ็นเซอร์ รวมถึงความถี่ในการสุ่มตัวอย่างและ รายงานสูงสุด เวลาในการตอบสนอง คุณจะเรียกใช้ฟังก์ชันนี้ได้เมื่อเปิดใช้งานเซ็นเซอร์ใน โดยไม่ทำให้การวัดผลเซ็นเซอร์ใดๆ สูญหายไป: การเปลี่ยน จากอัตราการสุ่มตัวอย่างหนึ่งไปยังอีกอัตราการสุ่มตัวอย่างไม่สามารถ ทำให้เหตุการณ์หายไป และ การเปลี่ยนจากเวลาในการตอบสนองการรายงานสูงสุดเป็นรายงานสูงสุดที่ต่ำ เวลาในการตอบสนอง
sensor_handle
เป็นแฮนเดิลของเซ็นเซอร์ที่จะกำหนดค่า
ไม่ได้ใช้งาน flags
ในขณะนี้
sampling_period_ns
คือระยะเวลาสุ่มตัวอย่างที่เซ็นเซอร์
ควรทำงานในหน่วยนาโนวินาที ดู sampling_period_ns เพื่อดู
รายละเอียดเพิ่มเติม
max_report_latency_ns
คือระยะเวลาสูงสุดที่จัดกิจกรรมได้
ล่าช้าก่อนที่จะรายงานผ่าน HAL ในหน่วยนาโนวินาที โปรดดู max_report_latency_ns
ย่อหน้าเพื่อดูรายละเอียดเพิ่มเติม
ฟังก์ชันนี้แสดงผล 0 เมื่อสำเร็จ และตัวเลขข้อผิดพลาดลบ
setDelay(เซ็นเซอร์ ระยะเวลาการสุ่มตัวอย่าง)
int (*setDelay)( struct sensors_poll_device_t *dev, int sensor_handle, int64_t sampling_period_ns);
หลังจาก HAL เวอร์ชัน 1.0 ฟังก์ชันนี้จะถูกเลิกใช้งานและไม่มีการเรียกใช้
แต่จะเรียกใช้ฟังก์ชัน batch
เพื่อตั้งค่าฟังก์ชัน
พารามิเตอร์ sampling_period_ns
ใน HAL เวอร์ชัน 1.0 มีการใช้ setDelay แทนการตั้งค่า sampling_period_ns
Flush(เซ็นเซอร์)
int (*flush)(struct sensors_poll_device_1* dev, int sensor_handle);
เพิ่ม flush เหตุการณ์โดยสมบูรณ์ลงในส่วนท้ายของฮาร์ดแวร์ FIFO สำหรับเซ็นเซอร์ที่ระบุ และล้าง FIFO ระบบจะแสดงเหตุการณ์เหล่านั้นตามปกติ (เช่น เหมือนกับว่าเวลาในการตอบสนองสูงสุดของการรายงาน หมดอายุ) และนำออกจาก FIFO
การล้างจะเกิดขึ้นไม่พร้อมกัน (กล่าวคือ ฟังก์ชันนี้ต้องแสดงผลทันที) หากการใช้งานใช้ FIFO ตัวเดียวสำหรับเซ็นเซอร์หลายตัว FIFO นั้น ล้าง และเพิ่มเหตุการณ์การล้างอย่างสมบูรณ์แล้วสำหรับเซ็นเซอร์ที่ระบุเท่านั้น
หากเซ็นเซอร์ที่ระบุไม่มี FIFO (อาจมีการบัฟเฟอร์) หรือหาก FIFO
ไม่มีข้อมูลในขณะที่โทร flush
ยังคงต้องสำเร็จและ
ส่งเหตุการณ์การล้างออกอย่างสมบูรณ์สำหรับเซ็นเซอร์นั้น ซึ่งมีผลกับเซ็นเซอร์อื่นๆ ทั้งหมด
มากกว่าเซ็นเซอร์แบบ 1 ช็อต
เมื่อมีการเรียก flush
แม้ว่าเหตุการณ์ Flush จะอยู่ใน
FIFO สำหรับเซ็นเซอร์นั้น คุณต้องสร้างตัวใหม่และเพิ่มต่อท้าย
ของ FIFO และ FIFO ต้องถูกล้าง จำนวนของflush
การเรียกต้องเท่ากับจำนวนเหตุการณ์การล้างโดยสมบูรณ์ที่สร้างขึ้น
flush
ใช้ไม่ได้กับครั้งเดียว
เซ็นเซอร์ หาก sensor_handle
หมายถึงเซ็นเซอร์แบบภาพเดียว
flush
ต้องแสดงผล -EINVAL
และไม่สร้างรายการใดๆ
ล้างเหตุการณ์ข้อมูลเมตาที่สมบูรณ์
ฟังก์ชันนี้แสดงผล 0 เมื่อสำเร็จ -EINVAL
ถ้าเซ็นเซอร์ที่ระบุเป็น
เซ็นเซอร์แบบภาพเดียวหรือไม่ได้เปิดใช้ และตัวเลขข้อผิดพลาดเป็นลบ
แบบสำรวจ()
int (*poll)(struct sensors_poll_device_t *dev, sensors_event_t* data, int count);
แสดงผลอาร์เรย์ของข้อมูลเซ็นเซอร์โดยเติมอาร์กิวเมนต์ data
ฟังก์ชันนี้
ต้องบล็อกจนกว่ากิจกรรมจะพร้อมใช้งาน ระบบจะแสดงจำนวนเหตุการณ์ที่อ่านแล้ว
สำเร็จ หรือจำนวนข้อผิดพลาดที่เป็นค่าลบในกรณีที่เกิดข้อผิดพลาด
จำนวนเหตุการณ์ที่แสดงผลใน data
ต้องน้อยกว่าหรือเท่ากับ
อาร์กิวเมนต์ count
ฟังก์ชันนี้จะไม่แสดงผล 0 (ไม่มีเหตุการณ์)
ลำดับการโทร
เมื่ออุปกรณ์เปิดเครื่อง ระบบจะเรียกใช้ get_sensors_list
เมื่อเปิดใช้งานเซ็นเซอร์ ฟังก์ชัน batch
จะถูกเรียกด้วยฟังก์ชัน
พารามิเตอร์ที่ขอ ตามด้วย activate(..., enable=1)
โปรดทราบว่าใน HAL เวอร์ชัน 1_0 ลำดับตรงข้ามกับคือ activate
อันดับแรก ต่อด้วย set_delay
เมื่อลักษณะที่ขอของเซ็นเซอร์เปลี่ยนแปลงขณะ
เปิดใช้งานฟังก์ชัน batch
แล้ว
สามารถโทรหา flush
ได้ทุกเมื่อ แม้แต่ในเซ็นเซอร์ที่ไม่ได้เปิดใช้งาน (ในกรณีนี้)
จะต้องส่งคืน -EINVAL
)
เมื่อปิดใช้งานเซ็นเซอร์ ระบบจะเรียกใช้ activate(..., enable=0)
ควบคู่ไปกับการเรียกเหล่านั้น ฟังก์ชัน poll
จะถูกเรียกซ้ำเพื่อ
คำขอข้อมูล สามารถโทรหา poll
ได้แม้ไม่ได้เปิดใช้งานเซ็นเซอร์
เซ็นเซอร์_โมดูล_t
sensors_module_t
เป็นประเภทที่ใช้สร้างฮาร์ดแวร์ของ Android
สำหรับเซ็นเซอร์ การใช้งาน HAL จะต้องกำหนดออบเจ็กต์
HAL_MODULE_INFO_SYM
ประเภทนี้เพื่อแสดงฟังก์ชัน get_sensors_list โปรดดู
คำจำกัดความของ sensors_module_t
ใน sensors.h และคำจำกัดความของ hw_module_t
เพื่อดูข้อมูลเพิ่มเติม
Sensor_poll_device_t / Sensor_poll_device_1_t
sensors_poll_device_1_t
มีวิธีที่เหลือตามที่กำหนดไว้ข้างต้น:
activate
, batch
, flush
และ
poll
ช่อง common
(ประเภท hw_device_t)
กำหนดหมายเลขเวอร์ชันของ HAL
เซ็นเซอร์ t
sensor_t
แสดงถึงAndroid
เซ็นเซอร์ ต่อไปนี้เป็นช่องสำคัญบางส่วน
name: สตริงที่ผู้ใช้มองเห็นซึ่งแสดงถึงเซ็นเซอร์ สตริงนี้มัก มีชื่อชิ้นส่วนของเซ็นเซอร์ที่ซ่อนอยู่ ประเภทของเซ็นเซอร์ และ ไม่ว่าจะเป็นเซ็นเซอร์ปลุกระบบ ตัวอย่างเช่น “ตัวตรวจวัดความเร่ง LIS2HH12” "เครื่องวัดการหมุนที่ไม่มีการปรับเทียบ MAX21000" "เครื่องวัดการหมุน BMP280 Wake-up Barometer" "เกม MPU6515 เวกเตอร์การหมุน”
แฮนเดิล: จำนวนเต็มที่ใช้อ้างอิงถึงเซ็นเซอร์เมื่อลงทะเบียนเซ็นเซอร์ หรือ การสร้างเหตุการณ์จากแท็ก
type: ประเภทของเซ็นเซอร์ ดูคำอธิบายของเซ็นเซอร์
พิมพ์ในหัวข้อเซ็นเซอร์ Android คืออะไร สำหรับรายละเอียดเพิ่มเติม และดูประเภทเซ็นเซอร์สำหรับประเภทเซ็นเซอร์อย่างเป็นทางการ สำหรับ
ประเภทเซ็นเซอร์ที่ไม่เป็นทางการ type
ต้องขึ้นต้นด้วย SENSOR_TYPE_DEVICE_PRIVATE_BASE
stringType: ประเภทของเซ็นเซอร์เป็นสตริง เมื่อ
เซ็นเซอร์มีประเภททางการ ตั้งค่าเป็น SENSOR_STRING_TYPE_*
วันและเวลา
เซ็นเซอร์มีประเภทผู้ผลิตที่เฉพาะเจาะจง stringType
ต้อง
ขึ้นต้นด้วยชื่อโดเมนของผู้ผลิต ตัวอย่างเช่น เซ็นเซอร์ (เช่น
ตัวตรวจจับยูนิคอร์น) ที่กำหนดโดยทีม Cool-product ที่
สมมติ-ที่บริษัทสามารถใช้ได้
stringType=”com.fictional_company.cool_product.unicorn_detector”
stringType
ใช้เพื่อระบุเซ็นเซอร์ที่ไม่เป็นทางการโดยไม่ซ้ำกัน
ประเภทต่างๆ ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทและสตริงได้ที่ sensors.h
ประเภทต่างๆ
requiredRight: สตริงที่แสดงถึงสิทธิ์
ที่แอปพลิเคชันต้องมีจึงจะดูเซ็นเซอร์ได้ ลงทะเบียนไว้ และรับ
ข้อมูลของแอป สตริงว่างหมายความว่าแอปพลิเคชันไม่ต้องการสิทธิ์ใดๆ
เข้าถึงเซ็นเซอร์นี้ เซ็นเซอร์บางประเภท เช่น เครื่องวัดอัตราการเต้นของหัวใจ
requiredPermission
ที่บังคับ เซ็นเซอร์ทั้งหมดที่มีความไว
ข้อมูลผู้ใช้ (เช่น อัตราการเต้นของหัวใจ) ต้องได้รับการปกป้องโดย
สิทธิ์
flags: การแจ้งสำหรับเซ็นเซอร์นี้ การกำหนดโหมดการรายงานของเซ็นเซอร์ และการระบุสถานะ
เซ็นเซอร์นั้นเป็นแบบปลุกระบบหรือไม่ เช่น เซ็นเซอร์ปลุกระบบแบบช็อตเดียว
จะมี flags = SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP
รายละเอียด
แฟล็กที่ไม่ได้ใช้ใน HAL เวอร์ชันปัจจุบันจะต้องเท่ากับ 0
maxRange: ค่าสูงสุดที่เซ็นเซอร์รายงานได้ในหน่วยเดียวกับ
ค่าที่รายงาน เซ็นเซอร์ต้องรายงานค่าได้โดยไม่อิ่มตัว
ภายใน [-maxRange; maxRange]
โปรดทราบว่าค่านี้หมายถึงช่วงรวมของ
ในความหมายทั่วไปคือ 2*maxRange
เมื่อเซ็นเซอร์รายงานค่าสูงกว่า
หลายแกน ช่วงจะถูกนำไปใช้กับแต่ละแกน ตัวอย่างเช่น "+/- 2g"
ตัวตรวจวัดความเร่งจะรายงาน maxRange = 2*9.81 = 2g
ความละเอียด: ความแตกต่างน้อยที่สุดของค่าที่เซ็นเซอร์วัดได้
โดยปกติจะคำนวณตาม maxRange
และจำนวนบิตในการวัด
พลังงาน: ค่ากำลังไฟของการเปิดใช้เซ็นเซอร์ หน่วยเป็นมิลลิแอมป์
ซึ่งมักจะมากกว่าเกือบตลอดเวลา จากการใช้พลังงานที่รายงานใน
เอกสารข้อมูลของเซ็นเซอร์เบื้องหลัง โปรดดูเซ็นเซอร์ฐาน != ทางกายภาพ
เซ็นเซอร์เพื่อดูรายละเอียดเพิ่มเติม และดูการวัดพลังงาน
กระบวนการเพื่อดูรายละเอียดเกี่ยวกับวิธีวัดการใช้พลังงานของเซ็นเซอร์
หากการใช้พลังงานของเซ็นเซอร์ขึ้นอยู่กับว่าอุปกรณ์มีการเคลื่อนไหว หรือไม่
การใช้พลังงานขณะเคลื่อนที่คือระดับการใช้พลังงานที่รายงานในpower
ด้วย
minDelay: สำหรับเซ็นเซอร์ต่อเนื่อง ระยะเวลาการสุ่มตัวอย่าง เป็น
ไมโครวินาที ซึ่งสอดคล้องกับอัตราที่เร็วที่สุดที่เซ็นเซอร์รองรับ ดู sampling_period_ns เพื่อดู
รายละเอียดเกี่ยวกับวิธีการใช้ค่านี้ โปรดระวังว่า minDelay
นั้น
แสดงในไมโครวินาทีขณะที่ sampling_period_ns
อยู่ใน
นาโนวินาที สำหรับเซ็นเซอร์โหมดการรายงานเมื่อมีการเปลี่ยนแปลงและพิเศษ ยกเว้น
หากระบุไว้เป็นอย่างอื่น minDelay
ต้องเป็น 0 สำหรับเซ็นเซอร์แบบช็อตเดียว
ต้องเป็น -1
maxDelay: สำหรับเซ็นเซอร์แบบต่อเนื่องและเมื่อมีการเปลี่ยนแปลง การสุ่มตัวอย่าง
ระยะเวลาเป็นไมโครวินาที ซึ่งสอดคล้องกับอัตราที่ช้าที่สุดที่เซ็นเซอร์
รองรับ ดู sampling_period_ns เพื่อดู
รายละเอียดเกี่ยวกับวิธีการใช้ค่านี้ โปรดระวังว่า maxDelay
นั้น
แสดงในไมโครวินาทีขณะที่ sampling_period_ns
อยู่ใน
นาโนวินาที สำหรับเซ็นเซอร์พิเศษและเซ็นเซอร์แบบจุดเดียว maxDelay
ต้องเป็น
0.
fifoReserveEventCount: จำนวนเหตุการณ์ที่สงวนไว้สำหรับเซ็นเซอร์นี้ใน
ฮาร์ดแวร์ FIFO หากมี FIFO เฉพาะสำหรับเซ็นเซอร์นี้
fifoReservedEventCount
คือขนาดของ FIFO โดยเฉพาะนี้ หาก FIFO คือ
แชร์กับเซ็นเซอร์อื่นๆ fifoReservedEventCount
คือขนาดของส่วน
FIFO ที่สงวนไว้สำหรับเซ็นเซอร์นั้น ในระบบ FIFO ที่ใช้ร่วมกันส่วนใหญ่
ระบบที่ไม่มีฮาร์ดแวร์ FIFO ค่านี้จะเป็น 0
fifoMaxEventCount: จำนวนเหตุการณ์สูงสุดที่อาจมี
ไว้ใน FIFO สำหรับเซ็นเซอร์นี้ ค่านี้ต้องมากกว่าหรือเท่ากับ
fifoReservedEventCount
ค่านี้จะใช้ในการประมาณ
FIFO จะเต็มเร็วเมื่อลงทะเบียนเซ็นเซอร์ที่
โดยไม่เปิดใช้งานเซ็นเซอร์อื่นๆ ในระบบที่ไม่มี
FIFO ของฮาร์ดแวร์ fifoMaxEventCount
เท่ากับ 0 ดูรายละเอียดเพิ่มเติมได้ที่การรวมกลุ่ม
สำหรับเซ็นเซอร์ที่มีประเภทเซ็นเซอร์อย่างเป็นทางการ ระบบจะเขียนทับช่องบางช่อง
ตามเฟรมเวิร์ก เช่น เซ็นเซอร์ตัวตรวจวัดความเร่ง
ถูกบังคับให้ใช้โหมดการรายงานต่อเนื่อง และการตรวจสอบอัตราการเต้นของหัวใจ
บังคับให้ป้องกันโดยSENSOR_PERMISSION_BODY_SENSORS
สิทธิ์
เซ็นเซอร์_เหตุการณ์_t
เหตุการณ์เซ็นเซอร์ที่เซ็นเซอร์ Android สร้างขึ้นและรายงานผ่านฟังก์ชันโพลมีค่าเท่ากับ type sensors_event_t
นี่คือบางส่วน
ฟิลด์ที่สำคัญของ sensors_event_t
:
version: ต้องเป็น sizeof(struct sensors_event_t)
เซ็นเซอร์: แฮนเดิลของเซ็นเซอร์ที่สร้างเหตุการณ์ ตามที่กำหนดโดย
sensor_t.handle
type: ประเภทเซ็นเซอร์ของเซ็นเซอร์ที่สร้างเหตุการณ์ ตามที่ระบุโดย
sensor_t.type
timestamp: การประทับเวลาของเหตุการณ์ในหน่วยนาโนวินาที นี่เป็นเวลาที่
เหตุการณ์ที่เกิดขึ้น (มีการก้าวไปอีกขั้นหรือมีการวัดความเร่งของตัวตรวจวัดความเร่ง)
ไม่ใช่เวลาที่มีการรายงานเหตุการณ์ timestamp
ต้องซิงค์กับ
นาฬิกา elapsedRealtimeNano
และในกรณีของเซ็นเซอร์ต่อเนื่อง เสียงรบกวน
ต้องมีขนาดเล็ก บางครั้งต้องมีการกรองการประทับเวลาเพื่อให้เป็นไปตามข้อกำหนด CDD
ข้อกำหนด เช่น การใช้เพียงเวลารบกวน SoC ในการตั้งค่าการประทับเวลา
ทำให้เกิดเสียงรบกวนสูงเกินไป และใช้เฉพาะเวลาชิปเซ็นเซอร์ในการตั้งค่า
การประทับเวลาอาจทําให้เกิดการซิงค์จาก
elapsedRealtimeNano
เมื่อนาฬิกาเซ็นเซอร์หลุด
ข้อมูลและช่องที่ทับซ้อนกัน: ค่าที่วัดโดยฟิลด์
เซ็นเซอร์ ความหมายและหน่วยของช่องเหล่านั้นจะเป็นข้อมูลเฉพาะของเซ็นเซอร์แต่ละตัว
ประเภท ดู sensors.h และคำจำกัดความของประเภทเซ็นเซอร์ต่างๆ สำหรับคำอธิบาย
ด้วย สำหรับเซ็นเซอร์บางตัว ระบบจะรายงานความแม่นยำของค่าที่อ่านด้วย
เป็นส่วนหนึ่งของข้อมูลผ่านช่อง status
ช่องนี้มีเพียง
ที่ส่งผ่านสำหรับเซ็นเซอร์ประเภทต่างๆ เหล่านั้น ซึ่งจะปรากฏที่เลเยอร์ SDK เป็น
ค่าความแม่นยำ สำหรับเซ็นเซอร์เหล่านั้น คุณต้องตั้งช่องสถานะ
ได้รับการพูดถึงในประเภทเซ็นเซอร์
ของเรา
เหตุการณ์การล้างข้อมูลเมตาเสร็จสมบูรณ์
เหตุการณ์ของข้อมูลเมตามีประเภทเดียวกับเหตุการณ์เซ็นเซอร์ปกติ ดังนี้
sensors_event_meta_data_t = sensors_event_t
ผลลัพธ์เหล่านั้นจะแสดงพร้อมกับ
เหตุการณ์เซ็นเซอร์อื่นๆ ผ่านแบบสำรวจ โดยมีช่องต่อไปนี้
version: ต้องเป็น META_DATA_VERSION
type: ต้องเป็น SENSOR_TYPE_META_DATA
เซ็นเซอร์ สงวน และการประทับเวลา: ต้องเป็น 0
meta_data.what: มีประเภทข้อมูลเมตาสำหรับเหตุการณ์นี้ ตอนนี้มี
ประเภทข้อมูลเมตาที่ถูกต้องรายการเดียว: META_DATA_FLUSH_COMPLETE
META_DATA_FLUSH_COMPLETE
เหตุการณ์แสดงถึงการล้าง
เซ็นเซอร์ FIFO เมื่อmeta_data.what=META_DATA_FLUSH_COMPLETE
meta_data.sensor
ต้องตั้งค่าเป็นแฮนเดิลของเซ็นเซอร์ที่ถูกล้างออก นั่นคือ
สร้างขึ้นเมื่อและเฉพาะเมื่อเรียกใช้ flush
บนเซ็นเซอร์ ดูหัวข้อนี้ใน
ฟังก์ชัน flush เพื่อดูข้อมูลเพิ่มเติม