रिपोर्टिंग मोड

सेंसर, अलग-अलग तरीकों से इवेंट जनरेट कर सकते हैं. इन्हें रिपोर्टिंग मोड कहा जाता है; हर सेंसर टाइप के साथ सिर्फ़ एक रिपोर्टिंग मोड जुड़ा होता है. रिपोर्टिंग के चार मोड होते हैं.

निरंतर

इवेंट, batch फ़ंक्शन को पास किए गए sampling_period_ns पैरामीटर से तय की गई एक तय दर पर जनरेट होते हैं. लगातार रिपोर्टिंग मोड का इस्तेमाल करने वाले सेंसर के उदाहरण ये हैं: ऐक्सलरोमीटर और जायरोस्कोप.

बदलाव होने पर

इवेंट सिर्फ़ तब जनरेट होते हैं, जब मेज़र की गई वैल्यू में बदलाव होता है. HAL लेवल पर सेंसर को चालू करने (उस पर activate(..., enable=1) को कॉल करने) से भी एक इवेंट ट्रिगर होता है. इसका मतलब है कि जब बदलाव होने पर सेंसर चालू होता है, तो HAL को तुरंत एक इवेंट भेजना होगा. बदलाव होने पर रिपोर्टिंग मोड का इस्तेमाल करने वाले सेंसर के उदाहरणों में, स्टेप काउंटर, प्रॉक्सिमिटी, और धड़कन की दर का पता लगाने वाले सेंसर शामिल हैं.

batch फ़ंक्शन को पास किया गया sampling_period_ns पैरामीटर, लगातार होने वाले इवेंट के बीच कम से कम समय सेट करने के लिए इस्तेमाल किया जाता है. इसका मतलब है कि जब तक पिछले इवेंट के बाद sampling_period_ns नैनोसेकंड नहीं बीत जाते, तब तक कोई इवेंट जनरेट नहीं होना चाहिए. भले ही, इस दौरान वैल्यू बदल गई हो. अगर वैल्यू बदलती है, तो पिछले इवेंट के बाद sampling_period_ns के बीतते ही एक इवेंट जनरेट होना चाहिए.

उदाहरण के लिए, मान लें कि:

  • हम sampling_period_ns = 10 * 10^9 (10 सेकंड) के साथ स्टेप काउंटर चालू करते हैं.
  • हम 55 सेकंड तक चलते हैं. इसके बाद, एक मिनट तक खड़े रहते हैं.
  • पहले मिनट में, हर 10 सेकंड में इवेंट जनरेट होते हैं. इनमें t=0 सेकंड पर सेंसर के चालू होने की वजह से जनरेट हुआ इवेंट और t=60 सेकंड पर जनरेट हुआ इवेंट शामिल है. इस तरह, कुल सात इवेंट जनरेट होते हैं. दूसरे मिनट में कोई इवेंट जनरेट नहीं हुआ, क्योंकि t=60 सेकंड के बाद भी कदमों की संख्या में कोई बदलाव नहीं हुआ.

एक उदाहरण वाला प्रॉम्प्ट

किसी इवेंट का पता चलने पर, सेंसर अपने-आप बंद हो जाता है. इसके बाद, यह एचएएल के ज़रिए एक इवेंट भेजता है. रेस कंडीशन से बचने के लिए, ऑर्डर का ध्यान रखें. (सेंसर को HAL के ज़रिए इवेंट की जानकारी देने से पहले बंद करना होगा). जब तक सेंसर फिर से चालू नहीं हो जाता, तब तक कोई दूसरा इवेंट नहीं भेजा जाता. मोशन सेंसर इस तरह के सेंसर का एक उदाहरण है.

वन-शॉट सेंसर को कभी-कभी ट्रिगर सेंसर भी कहा जाता है.

batch फ़ंक्शन को पास किए गए sampling_period_ns और max_report_latency_ns पैरामीटर को अनदेखा कर दिया जाता है. एक बार होने वाले इवेंट से मिले इवेंट को हार्डवेयर FIFO में सेव नहीं किया जा सकता. इवेंट जनरेट होते ही उनकी सूचना देनी होगी.

स्पेशल

इवेंट कब जनरेट होते हैं, इस बारे में जानकारी के लिए सेंसर टाइप के हिसाब से ब्यौरे देखें.