| IRRECORD(1) | User Commands | IRRECORD(1) |
نام (NAME)
irrecord - ابزار ضبط کدهای فروسرخ (IR) جهت استفاده با LIRC
خلاصه دستور (SYNOPSIS)
irrecord [-f] [-n] [-H driver] [-d device] [file]
irrecord -a <file>
irrecord -l
irrecord --help | --version
توضیحات (DESCRIPTION)
این برنامه سیگنالهای دریافتی از کنترل از راه دور شما را ضبط کرده و یک فایل پیکربندی برای lircd ایجاد میکند. با وجود تلاشهای بسیاری که برای این برنامه صورت گرفته، اغلب شناسایی خودکار تمام ویژگیهای یک کنترل از راه دور امکانپذیر نیست. بخش «نکات استفاده» در ادامه را ببینید.
اگر file مشخص نشده باشد، مقدار پیشفرض آن "irrecord.lircd.conf" خواهد بود.
اگر file از قبل وجود داشته باشد و حاوی یک پیکربندی معتبر باشد، irrecord از توضیحات پروتکل موجود در آن استفاده خواهد کرد و تنها برای ضبط دکمهها تلاش میکند.
گزینهها (OPTIONS)
- -a --analyse
- تحلیل یک فایل پیکربندی raw_codes و تلاش برای تبدیل آن به یک پیکربندی عادی.
- -u --update
- افزودن دکمههای جدید به یک فایل پیکربندی موجود. هیچیک از اطلاعات پروتکل بهروزرسانی نمیشود.
- -f --force
- اجبار به استفاده از حالت خام (raw). در صورتی که ضبط در حالت عادی با شکست مواجه شد، از این گزینه استفاده کنید. این کار یک فایل پیکربندی کدهای خام ایجاد میکند که میتواند به همان شکل استفاده شود یا با استفاده از گزینه -a تبدیل گردد.
- -n --disable-namespace
- غیرفعال کردن بررسیهای فضای نام (namespace).
- -l --list-namespace
- فهرست کردن نامهای معتبر برای دکمهها.
- -H --driver=driver
- استفاده از راهانداز مشخصشده. دستور -H help راهاندازهای موجود را فهرست میکند.
- -d --device=device
- خواندن از دستگاه دادهشده. برای دیدن فهرست دستگاههای موجود برای یک راهانداز از mode2(1) --list-devices استفاده کنید.
- -U --plugindir=directory
- بارگذاری راهاندازها از دایرکتوری مشخصشده. بخش «مسیر بارگذاری راهانداز» را ببینید.
- -k --keep-root
- عدم رهاسازی امتیازات کاربر ریشه (root) پس از باز کردن دستگاه. بخش «اجرا به عنوان ریشه» را ببینید.
- -A, --driver-options key:value[|key:value...]
- تنظیم یک یا چند گزینه برای راهانداز. این آرگومان فهرستی از جفتهای کلید:مقدار (key:value) است که با '|' از یکدیگر جدا شدهاند. کلید نمیتواند شامل فاصله باشد، اما استفاده از فاصله در بخش مقدار مجاز است. برخی نویسهها از جمله '#' و ';' به عنوان نشانگر کامنت در فایل پیکربندی استفاده میشوند و استفاده از آنها در هیچ بخشی مجاز نیست.
- -D --loglevel=level
- تعیین میزان اطلاعات گزارشگیری (logging). مقدار [level] میتواند یکی از سطوح نمادین syslog باشد: 'error'، 'warning'، 'info'، 'notice' یا 'debug'. برنامه lirc همچنین سه سطح اضافی 'trace'، 'trace1' و 'trace2' را تعریف میکند که پیامهای بیشتری تولید میکنند ('trace2' بیشترین پیام را تولید میکند). با این حال، در فایل گزارش این پیامها با عنوان 'debug' علامتگذاری میشوند. سطح گزارش میتواند یک عدد صحیح در بازهٔ ۳ (تقریباً بدون پیام) تا ۱۰ نیز باشد.
- -O, --options-file <path>
- فایل حاوی مقادیر پیشفرض برای تمامی گزینهها. مسیر نسبی نسبت به دایرکتوری جاری تفسیر میشود. بخش [فایلها] در ادامه را ببینید.
- -h --help
- نمایش این پیام راهنما.
- -v --version
- نمایش نسخه.
نکات استفاده (USAGE NOTES)
گزینههای اصلی --driver و معمولاً همچنین --device هستند (برخی راهاندازها نیازی به --device ندارند). در صورتی که irrecord با مشکل مواجه شود، میتوان این موارد را با استفاده از mode2(1) بررسی کرد.
هنگامی که راهانداز و دستگاه مشخص شدند، بهروزرسانی lirc_options.conf با مقادیر جدید موجب صرفهجویی در کار خواهد شد. برنامه irrecord از بخش [lircd] به عنوان پشتیبان استفاده میکند، بنابراین با یک فایل lirc_options.conf مناسب، irrecord میتواند بدون گزینههای خط فرمان اجرا شود.
گاهی اوقات استفاده از یک فایل موجود به عنوان الگو برای کارکرد صحیح irrecord الزامی است. استفاده از یکی از الگوهای عمومی (generic) میتواند زمانبندی دقیقتری را نیز فراهم کند. بخش «پارامترهای پروتکل و الگوها» را ببینید.
اگر برنامه نتواند پروتکل کنترل از راه دور را شناسایی کند، میتوانید از گزینه --force استفاده کنید تا حداقل یک فایل پیکربندی در حالت خام (raw) ایجاد شود.
ماسکهای تکرار (REPEAT MASKS)
پس از ضبط چند دکمه با irrecord، باید ماسکهای تکرار را بررسی کنید. این موارد برای مدیریت فشردنهای مکرر دکمهها، که بسیار رایج هستند، مورد نیاز میباشند.
با استفاده از فایل پیکربندی، lircd و irw را اجرا کنید. با پایین نگه داشتن یک دکمه، باید چیزی شبیه به این را مشاهده کنید:
0000000000f40bf0 00 KEY_1 ANIMAX 0000000000f40bf0 01 KEY_1 ANIMAX 0000000000f40bf0 02 KEY_1 ANIMAX 0000000000f40bf0 03 KEY_1 ANIMAX 0000000000f40bf0 04 KEY_1 ANIMAX 0000000000f40bf0 05 KEY_1 ANIMAX
توجه کنید که چگونه فیلد دوم افزایش مییابد. این سازوکار برای عملکرد صحیح دستگاه باید به درستی کار کند.
پارامترهای پروتکل و الگوها (PROTOCOL PARAMETERS AND TEMPLATES)
در واقع irrecord در دو مرحله کار میکند. در مرحله اول، سعی میکند پروتکل مورد استفاده توسط ریموت را شناسایی کند. اگرچه این روند اغلب به خوبی انجام میشود، اما استفاده از یک فایل موجود به عنوان الگو مزایایی به همراه دارد.
یک دلیل برای استفاده از الگو زمانی است که irrecord در ابتدا موفق به تشخیص پروتکل نمیشود. در چنین مواردی، سعی کنید با دستوری شبیه به این، یک پیکربندی موجود از همان سازنده پیدا کنید:
$ irdb-get find motorola # lots of remotes listed... $ irdb-get download motorola/VIP_1200.lircd.conf # Pick any $ cp VIP_1200.lircd.conf my_remote.lircd.conf $ irrecord my_remote.lircd.conf
فراخوانی irrecord به این شیوه، پروتکل موجود را دوباره مورد استفاده قرار میدهد که معمولاً مؤثر است (سازندگان به ندرت پارامترهای پروتکل را تغییر میدهند).
دلیل دیگر برای استفاده از یک فایل موجود، دستیابی به زمانبندی دقیقتر است که در صورت تمایل به ارسال سیگنال (blast) اهمیت بالایی دارد. در چنین مواردی، استفاده از یک الگوی عمومی که از طریق irdb-get find generic یافت میشود مزیت دارد، زیرا مقادیر زمانبندی در این الگوها بر اساس مشخصات فنی بهصورت دستی تنظیم شدهاند. با این حال، برای استفاده از این الگوها باید بدانید کنترل از راه دور شما از چه پروتکلی استفاده میکند.
اگر رمزگشایی دستورات IR به صورت قابل اطمینان کار نمیکند، میتوانید مقادیر eps و aeps را در فایل پیکربندی lircd تغییر دهید تا میزان تحمل (tolerance) طول سیگنالها تنظیم شود. مقدار aeps یک مقدار مطلق است، در حالی که eps یک مقدار نسبی است که بر حسب درصد بیان میشود. lircd.conf(5) را ببینید.
عیبیابی (TROUBLESHOOTING)
ریموتهای چندحالته (Multiple-personalities remotes)
برخی ریموتها در واقع دو یا چند کنترل از راه دور را شبیهسازی میکنند. در صورتی که دکمههای مربوط به کنترلهای منطقی مختلف در یک نوبت اجرا مخلوط شوند، بهویژه در شناسایی اولیه پروتکل، irrecord دچار مشکل میشود. برای چنین دستگاههایی، irrecord باید برای هر دستگاه منطقی به طور جداگانه اجرا شود و در طول اجرا فقط دکمههای مربوط به همان دستگاه فشرده شوند.
نویسههای نامفهوم هنگام استفاده از راهانداز پیشفرض
اگر هنگام اجرای irrecord با استفاده از راهانداز پیشفرض، نویسههای نامفهوم و غیرقابل چاپ روی صفحه ظاهر شود، پروتکل rc باید تنظیم گردد. با وجود یک دستگاه، میتوان پروتکل را با دستورات زیر تنظیم و بررسی کرد:
sudo sh -c "echo 'lirc' > /sys/class/rc/rc0/protocol" cat /sys/class/rc/rc0/protocol
اختلالات فیزیکی
در خصوص اختلالات فیزیکی، منبع اصلی نور مهتابی (فلورسنت) است. هنگام استفاده از irrecord نباید چنین نوری در محیط وجود داشته باشد. همچنین رعایت فاصله مناسب بین کنترل از راه دور و دستگاه گیرنده مهم است، که معمولاً کمتر از فاصله معمول در استفاده عادی است. با این حال، نزدیک کردن بیش از حد نیز ممکن است مشکلات دیگری ایجاد کند. در اولین تلاش، فاصلهای در حدود یک یا دو فوت (۳۰ تا ۶۰ سانتیمتر) را امتحان کنید.
مسیر بارگذاری راهانداز (DRIVER LOAD PATH)
راهاندازها به صورت پویا بارگذاری میشوند. این کار از یک مسیر سنتی *ux جداشده با نویسهٔ ´:´ انجام میشود که در آن تمام بخشهای مسیر مورد جستجو قرار میگیرند (ابتدا بخشهای ابتدایی، در آخر بخشهای انتهایی).
مسیر مورد استفاده برای این منظور با اولویتهای زیر (به ترتیب از بالا به پایین) تعیین میشود:
- گزینه --plugindir.
- مدخل 'plugindir' در بخش [lircd] از فایل lirc_options.conf.
- متغیر محیطی LIRC_PLUGINDIR.
- مقدار پیشفرض تعبیهشده در برنامه (/usr/lib/lirc/plugins).
اجرا به عنوان ریشه (RUNNING AS ROOT)
در بسیاری از موارد irrecord برای دسترسی به دستگاههایی که برای کاربران عادی در دسترس نیستند نیاز به اجرا به عنوان کاربر ریشه (root) دارد. از طرف دیگر، اجرا به عنوان root مسائلی مانند ایجاد فایلهای گزارش با مالکیت root، نگرانیهای امنیتی و غیره را در پی دارد.
برای رفع این مشکل، irrecord به طور پیشفرض پس از باز کردن دستگاه ورودی، امتیازات کاربر ریشه را رها میکند. این سازوکار مبتنی بر این است که مجوزهای root با استفاده از sudo(1) به دست آمده باشند؛ برای نمونه با استفاده از:
$ sudo irrecord --device /dev/lirc0 --driver defaultدر صورت عدم استفاده از sudo، همین رفتار را میتوان با استفاده از متغیر محیطی SUDO_USER پیاده کرد؛ به عنوان مثال:
# SUDO_USER=$LOGNAME irrecord --device /dev/lirc0 --driver defaultگزینه --keep-root باعث میشود که irrecord امتیازات کاربر ریشه را در تمام طول اجرای برنامه حفظ کند.
فایلها (FILES)
- /etc/lirc/lirc_options.conf
- فایل گزینهها شامل مقادیر پیشفرض برای گزینههای خط فرمان در بخش [irrecord]. برای برخی مقادیر از جمله debug، plugindir، driver و device، در صورتی که در بخش [irrecord] یافت نشوند، irrecord به بخش [lircd] رجوع میکند.
- -
- مکان این فایل را میتوان با استفاده از گزینه خط فرمان -O/--options-file یا متغیر محیطی LIRC_OPTIONS_PATH تغییر داد.
- ~/.cache/irrecord.log
- خروجی اشکالزدایی. تنظیم متغیر محیطی XDG_CACHE_HOME مکان این فایل را به $XDG_CACHE_HOME/irrecord.log منتقل میکند.
همچنین ببینید (SEE ALSO)
https://sourceforge.net/p/lirc-remotes/wiki
irdb-get(1)
mode2(1)
lircd.conf(5)
| Last change: May 2017 | irrecord 0.10.2 |