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

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

निरंतर

इवेंट, एक तय दर पर जनरेट होते हैं. यह दर, 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 पैरामीटर को अनदेखा कर दिया जाता है. एक बार होने वाले इवेंट के इवेंट, हार्डवेयर FIFOs में सेव नहीं किए जा सकते. इवेंट जनरेट होने के तुरंत बाद, उन्हें रिपोर्ट किया जाना चाहिए.

स्पेशल

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