সেন্সরগুলো রিপোর্টিং মোড নামক বিভিন্ন উপায়ে ইভেন্ট তৈরি করতে পারে; প্রতিটি সেন্সর ধরনের সাথে একটি এবং শুধুমাত্র একটি রিপোর্টিং মোড যুক্ত থাকে। মোট চার ধরনের রিপোর্টিং মোড রয়েছে।
ক্রমাগত
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(১০ সেকেন্ড) দিয়ে স্টেপ কাউন্টারটি সক্রিয় করি। - আমরা ৫৫ সেকেন্ড হাঁটি, তারপর এক মিনিট স্থির হয়ে দাঁড়িয়ে থাকি।
- প্রথম মিনিটে প্রায় প্রতি ১০ সেকেন্ড অন্তর ইভেন্টগুলো তৈরি হয় (সেন্সর সক্রিয় হওয়ার কারণে
t=0সময় এবংt=60সেকেন্ড সময় সহ), মোট সাতটি ইভেন্ট। দ্বিতীয় মিনিটে কোনো ইভেন্ট তৈরি হয় না, কারণt=60সেকেন্ডের পরে পদক্ষেপ সংখ্যার মান পরিবর্তিত হয়নি।
এক-শট
কোনো ঘটনা শনাক্ত হলে, সেন্সরটি নিজেকে নিষ্ক্রিয় করে এবং তারপর HAL-এর মাধ্যমে একটিমাত্র ইভেন্ট পাঠায়। রেস কন্ডিশন এড়ানোর জন্য ক্রমটি গুরুত্বপূর্ণ। (HAL-এর মাধ্যমে ইভেন্টটি জানানোর আগে সেন্সরটিকে অবশ্যই নিষ্ক্রিয় করতে হবে)। সেন্সরটি পুনরায় সক্রিয় না হওয়া পর্যন্ত অন্য কোনো ইভেন্ট পাঠানো হয় না। উল্লেখযোগ্য গতি এই ধরনের সেন্সরের একটি উদাহরণ।
ওয়ান-শট সেন্সরগুলোকে কখনও কখনও ট্রিগার সেন্সর বলা হয়।
batch ফাংশনে পাস করা sampling_period_ns এবং max_report_latency_ns প্যারামিটারগুলো উপেক্ষা করা হয়। ওয়ান-শট ইভেন্টগুলো হার্ডওয়্যার FIFO-তে সংরক্ষণ করা যায় না; ইভেন্টগুলো তৈরি হওয়ার সাথে সাথেই রিপোর্ট করতে হবে।
বিশেষ
ইভেন্টগুলো কখন তৈরি হয়, সে সম্পর্কে বিস্তারিত জানতে প্রতিটি সেন্সর টাইপের বিবরণ দেখুন।