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

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

कंटिन्युअस

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

बदले जाने पर

इवेंट सिर्फ़ तब जनरेट होते हैं, जब मेज़र की गई वैल्यू में बदलाव होता है. 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 सेकंड के बाद भी कदमों की संख्या में कोई बदलाव नहीं हुआ.

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

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

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

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

स्पेशल

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