রিপোর্টিং মোড

সেন্সরগুলো রিপোর্টিং মোড নামক বিভিন্ন উপায়ে ইভেন্ট তৈরি করতে পারে; প্রতিটি সেন্সর ধরনের সাথে একটি এবং শুধুমাত্র একটি রিপোর্টিং মোড যুক্ত থাকে। মোট চার ধরনের রিপোর্টিং মোড রয়েছে।

ক্রমাগত

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-তে সংরক্ষণ করা যায় না; ইভেন্টগুলো তৈরি হওয়ার সাথে সাথেই রিপোর্ট করতে হবে।

বিশেষ

ইভেন্টগুলো কখন তৈরি হয়, সে সম্পর্কে বিস্তারিত জানতে প্রতিটি সেন্সর টাইপের বিবরণ দেখুন।