LIRCD.CONF(5) راهنمای قالب‌های فایل LIRCD.CONF(5)
" t

lircd.conf - فایل پیکربندی اصلی lirc

این فایل دارای دو هدف است: ارائه اطلاعات زمان‌بندی به درایور تا بتواند داده‌ها را به فشردن دکمه‌ها رمزگشایی کند، و ارائه نگاشتی از فشردن دکمه‌ها به نمادهای کلیدی مورد استفاده توسط lircd(8).

ساختار پایه شامل فهرستی از بلوک‌های ریموت (کنترل از راه دور) است. از فاصله‌های خالی و شکست‌های خط به عنوان جداکننده استفاده می‌شود.

اگر نویسه توضیح (#) به عنوان نخستین نویسه در یک خط ظاهر شود، باقی آن خط نادیده گرفته خواهد شد.

بلوک‌های ریموت یا معمولی هستند یا خام (raw).

بلوک‌های ریموت معمولی با begin remote آغاز شده و با end remote پایان می‌یابند. بخش اول بلوک ویژگی‌های پایه ریموت را شرح می‌دهد؛ به بخش "بخش توصیف ریموت" مراجعه کنید. به دنبال آن یک بخش کدها قرار دارد که میان begin codes و end codes محصور شده است.

هر خط در بخش کدها شامل نام یک دکمه روی ریموت است که به دنبال آن یک مقدار داده‌ای هگزادسیمال منطبق بر بخش داده فریم IR قرار دارد (به بخش توصیف ریموت مراجعه کنید). شما مجاز نیستید نام یکسانی را به دو دکمه در یک بخش ریموت تخصیص دهید.

بلوک‌های ریموت خام دقیقاً مشابه بلوک‌های معمولی هستند، به جز بخش کدها که فهرستی از توصیفات دکمه‌ها است که میان begin raw_codes و end raw_codes قرار گرفته است.

یک توصیف دکمه خام با پارامتر name آغاز شده و به دنبال آن نام دکمه می‌آید. توصیف دکمه با توصیف دکمه بعدی یا پایان بلوک raw_codes خاتمه می‌یابد. خطوط میانی فهرستی از اعداد اعشاری (ده‌دهی) هستند که سیگنال ارسالی توسط آن دکمه را توصیف می‌کنند. عدد اول مدت‌زمان پالس اولیه بر حسب میکروثانیه را نشان می‌دهد. عدد دوم مدت‌زمان فاصله خالی (space) پس از آن را مشخص می‌کند. مدت‌زمان‌های پالس و فاصله تا هر زمان که لازم باشد به صورت متناوب تکرار می‌شوند. آخرین مدت‌زمان باید نشان‌دهنده یک پالس باشد.

هر خط در این بخش شامل یک پارامتر است که به دنبال آن مقدار یا مقادیر تخصیص‌یافته به آن پارامتر می‌آیند. پارامترها اختیاری هستند مگر آنکه خلاف آن ذکر شده باشد.

تمام مقادیر اعداد صحیح ده‌دهی هستند که بدون بعد بوده یا دارای واحد میکروثانیه می‌باشند، مگر آنکه خلاف آن بیان شده باشد. اعداد هگزادسیمال باید دارای پیشوند 0x باشند. اگر ریموت ویژگی خاصی ندارد، خط مربوطه می‌تواند حذف شود. کد دکمه دقیقاً پس از سیگنال pre و درست پیش از سیگنال post ارسال می‌شود.

برخی پارامترها بیت‌های موجود در پروتکل IR را توصیف می‌کنند. فریم معمولاً به صورت زیر تعریف می‌شود:

|header|plead|pre data|pre|data|post|post data|ptrail|foot|gap|

که در آن بیشتر پارامترها دارای مقدار پیش‌فرض 0 هستند. برخی پارامترها ساختار کلی فریم را تغییر می‌دهند، مانند پارامتر repeat.

گنجاندن مسیر داده‌شده با استفاده از معناشناسی معمول include. اگر مسیر نسبی باشد، نسبت به فایل اصلی lircd.conf تفسیر می‌شود. <path> باید درون گیومه دوتایی محصور شود. می‌تواند شامل الگوی glob(3) باشد که در این صورت تمام فایل‌های منطبق گنجانده می‌شوند.
به‌طور معمول lircd تلاش می‌کند چندین ریموت را مرتب سازد تا آن که سریع‌تر رمزگشایی می‌شود زودتر استفاده گردد. تنظیم manual_sort روی 1 در هر ریموت این رفتار را غیرفعال کرده و ریموت‌ها را به ترتیبی که در lircd.conf یا فایل‌های lircd.conf.d مرتب شده‌اند استفاده می‌کند.
نام یکتای تخصیص‌یافته به کنترل از راه دور (نباید شامل فاصله خالی باشد). درون یک فایل منفرد تمام نام‌ها باید یکتا باشند. این پارامتر الزامی است.
سرکوب تعداد معینی از تکرارها برای تمام دکمه‌ها در این ریموت. پیش‌فرض 0 است که به معنای عدم سرکوب تکرار است.
پرچم‌ها رشته‌های متنی ویژه‌ای هستند که ویژگی‌های گوناگون ریموت را توصیف می‌کنند. پرچم‌های چندگانه باید با علامت (|) جدا شوند. به بخش پرچم‌ها مراجعه کنید.
برای درایورهای lirccode که فاقد اطلاعات زمان‌بندی هستند، ویژگی اختیاری driver نام درایوری را که برای استفاده از این ریموت لازم است مشخص می‌کند.
تعداد بیت‌های داده در کدهای هگزادسیمال که هر دکمه را توصیف می‌کنند (عدد صحیح ده‌دهی).
تلورانس خطای نسبی برای سیگنال‌های دریافتی بر حسب درصد. پیش‌فرض در irrecord برابر 30 است.
تلورانس خطای مطلق برای سیگنال‌های دریافتی (میکروثانیه). پیش‌فرض در irrecord برابر 100 است.
پالس و فاصله اولیه ارسالی (بر حسب میکروثانیه).
تنها توسط ریموت‌های RC-MM استفاده می‌شود.
تنها توسط ریموت‌های RC-MM استفاده می‌شود.
طول پالس و فاصله نشان‌دهنده بیت یک.
طول پالس و فاصله نشان‌دهنده بیت صفر.
پالس دنباله‌دار، بلافاصله پس از post_data.
پالس پیشرو، بلافاصله پس از header.
پالس و فاصله، بلافاصله پس از پالس دنباله‌دار.
پالس و فاصله‌ای که هر زمان سیگنال تکرار شود، جایگزین تمام موارد میان پالس پیشرو و پالس دنباله‌دار می‌گردد. foot ارسال نمی‌شود و header نیز ارسال نمی‌گردد مگر آنکه پرچم REPEAT_HEADER حضور داشته باشد.
تعداد بیت‌ها در کد pre_data.
کد هگزادسیمال نشان‌دهنده توالی یک‌ها و صفرها بلافاصله پس از پالس پیشرو.
تعداد بیت‌ها در کد post_data.
کد هگزادسیمال نشان‌دهنده توالی یک‌ها و صفرها بلافاصله پس از سیگنال post.
پالس و فاصله بلافاصله پس از pre_data، به عنوان جداکننده میان pre data و data.
پالس و فاصله بلافاصله پس از کد دکمه.
یک فاصله (معمولاً طولانی) که به دنبال پالس دنباله‌دار می‌آید.
یک فاصله بلافاصله پس از پالس دنباله‌دار و پیش از تکرار همان کد ناشی از فشرده نگه داشتن دکمه.
حداقل دفعاتی که یک سیگنال هنگام ارسال تکرار می‌شود (0 به معنای ارسال یکباره است).
بیتی از pre_data، کد، یا post_data که هر بار با فشردن دکمه میان یک و صفر تغییر می‌کند. این پارامتر با toggle_bit_mask جایگزین شده است.
بیت‌هایی که با هر بار فشردن دکمه میان یک و صفر تغییر وضعیت می‌دهند.
ماسک مشخص‌کننده بیت‌هایی که برای تکرارها وارونه می‌شوند.
فرکانس حامل ریموت (پیش‌فرض 38000 هرتز).
درصد زمان ارسال نور مادون قرمز در طول یک پالس (عددی صحیح بین 1 تا 100، پیش‌فرض 50).

پرچم‌ها مقادیری هستند که در پارامتر flags تنظیم می‌شوند:

ریموت از پروتکل RC5 استفاده می‌کند.
ریموت از پروتکل RC6 استفاده می‌کند.
ریموت از پروتکل RC-MM استفاده می‌کند.
پرچم منسوخ، مترادفی برای RC5. موقعیت پالس (قبل یا بعد از فاصله) مشخص می‌کند بیت صفر است یا یک.
یک و صفر با طول فاصله‌ها تمایز داده می‌شوند (مورد استفاده در پروتکل NEC و دیگر پروتکل‌ها).
ترتیب بیت‌های pre_data، post_data و کدها را وارونه می‌کند. در صورت حضور این پرچم، کم‌ارزش‌ترین بیت اول ارسال می‌شود.
هنگام تکرار سیگنال، هدر ارسال نمی‌شود حتی اگر کد تکرار خاصی وجود نداشته باشد.
هنگام تکرار سیگنال، foot ارسال نمی‌شود حتی اگر کد تکرار خاصی وجود نداشته باشد.
طول کل سیگنال همواره ثابت است. طول gap اکنون نمایانگر طول کل سیگنال است و gap واقعی انتهای سیگنال متناسب با آن تنظیم می‌شود.
کدها در قالب خام (raw) هستند.
هنگام تکرار سیگنال هدر ارسال می‌شود حتی اگر ریموت کد تکرار ویژه داشته باشد.

پروژه LIRC برای جمع‌آوری داده‌های IR و ذخیره آن‌ها در قالبی اختصاصی، فشرده و در عین حال قابل خواندن توسط انسان طراحی شده است با هدف امکان ارسال یا شناسایی مجدد این سیگنال‌ها. این پروژه با هدف ارائه یک قالب فایل پیکربندی کاملاً مستندسازی‌شده و آزمون‌شده که بتوان از آن مثلاً برای تولید سیگنال‌های دلخواه IR استفاده کرد طراحی نشده بود. بنابراین این فایل پیکربندی نباید یک رابط عمومی برای LIRC تلقی شود.

این صفحه راهنما باید با در نظر داشتن این نکته خوانده شود. این راهنما با مطالعه کدهای LIRC تألیف شده است و مشخصات معتبر و قطعی از رفتار LIRC و فایل پیکربندی آن محسوب نمی‌گردد.

lircd(8)
irrecord(1)
Last change: Feb 2018 lircd.conf 0.10.2