| IR-CTL(1) | User Commands | IR-CTL(1) |
نام (NAME)
ir-ctl - ابزاری همهکاره برای کار با IR خام و تنظیم گزینههای lirc
خلاصه دستور (SYNOPSIS)
ir-ctl [گزینه]...
ir-ctl [گزینه]...
--features
ir-ctl [گزینه]...
--send [فایل
برای
ارسال]
ir-ctl [گزینه]...
--scancode [پروتکل
و اسکنکد
برای
ارسال]
ir-ctl [گزینه]...
--keycode [کد کلید
برای
ارسال]
ir-ctl [گزینه]...
--receive
توضیحات (DESCRIPTION)
دستور ir-ctl ابزاری است که امکان فهرست کردن قابلیتهای یک دستگاه lirc، تنظیم گزینههای آن، دریافت IR خام و ارسال IR را فراهم میکند.
سیگنال IR را میتوان به صورت کد کلید (keycode) از یک نگاشت کلید (keymap)، با استفاده از اسکنکد (scancode)، یا با استفاده از IR خام ارسال کرد.
نکته: برای کارکرد گزینهها، باید مجوزهای خواندن یا نوشتن روی دستگاه /dev/lirc را داشته باشید.
گزینهها (OPTIONS)
- -d, --device=DEV
- دستگاه lirc برای کنترل؛ به طور پیشفرض /dev/lirc0 است.
- -f, --features
- فهرست کردن قابلیتهای دستگاه lirc.
- -r, --receive
- دریافت IR و چاپ آن در خروجی استاندارد.
- -s, --send=FILE
- ارسال IR در قالب فایل متنی. قالب فایل باید به شکلی باشد که در ادامه توضیح داده شده است. اگر این گزینه چندین بار مشخص شود، تمام فایلها به ترتیب و با یک فاصلهٔ ۱۲۵ میلیثانیهای بین آنها ارسال میشوند. طول این فاصله با --gap قابل تغییر است.
- -S, --scancode=PROTOCOL:SCANCODE
- ارسال اسکنکد IR با پروتکل مشخصشده. پروتکل باید یکی از پروتکلهای فهرستشده در زیر باشد که به دنبال آن یک دونقطه و سپس شمارهٔ اسکنکد میآید. اگر این گزینه چندین بار مشخص شود، تمام اسکنکدها به ترتیب با فاصلهٔ ۱۲۵ میلیثانیهای بین آنها ارسال میشوند. طول این فاصله با --gap قابل تغییر است.
- -K, --keycode=KEYCODE
- ارسال KEYCODE از نگاشت کلیدی که باید با --keymap مشخص شده باشد. اگر این گزینه چندین بار مشخص شود، تمام کدهای کلید به ترتیب و با یک فاصلهٔ ۱۲۵ میلیثانیهای بین آنها ارسال میشوند. طول این فاصله با --gap قابل تغییر است.
- -k, --keymap=KEYMAP
- فایل نگاشت کلید rc در قالب toml. ساختار قالب در صفحهٔ راهنمای rc_keymap(5) توضیح داده شده است. از این فایل برای انتخاب KEYCODE استفاده میشود.
- -1, --oneshot
- هنگام دریافت، توقف دریافت پس از دریافت اولین پیام؛ یعنی پس از دریافت یک فاصله (space) یا سرآمدن مهلت زمانی (timeout) بیش از ۱۹ میلیثانیه.
- --mode2
- هنگام دریافت، خروجی دادن IR در قالب mode2. یک خط به ازای هر فاصله یا پالس.
- -w, --wideband
- استفاده از گیرندهٔ پهنباند در صورت پشتیبانی سختافزار. این حالت به عنوان حالت یادگیری (learning mode) نیز شناخته میشود. اندازهگیریها دقیقتر خواهند بود و هر بسامد حاملی پذیرفته میشود.
- -n, --narrowband
- بازگشت به گیرندهٔ عادی و باریکباند در صورتی که گیرندهٔ پهنباند فعال شده باشد.
- -R, --carrier-range=RANGE
- تنظیم محدودهٔ حامل پذیرفتهشده برای گیرندهٔ باریکباند. باید به شکل 30000-50000 مشخص شود.
- -m, --measure-carrier
- در صورت پشتیبانی سختافزار، گزارش بسامد حامل هنگام دریافت. کلمهٔ کلیدی carrier را به همراه مقدار بسامد دریافت خواهید کرد. این کار ممکن است از گیرندهٔ پهنباند استفاده کند، هرچند وابسته به سختافزار است.
- -M, --no-measure-carrier
- غیرفعال کردن گزارش بسامد حامل. این کار باید امکان استفاده از گیرندهٔ باریکباند را فراهم کند. این حالت پیشفرض است.
- -t, --timeout=TIMEOUT
- تنظیم طول یک فاصله که در آن گیرنده به حالت بیکار (idle) میرود، به میکروثانیه.
- -c, --carrier=CARRIER
- تنظیم بسامد حامل برای ارسال.
- -D, --duty-cycle=DUTY
- تنظیم چرخهٔ کار (duty cycle) برای ارسال به درصد، در صورت پشتیبانی سختافزار.
- -e, --emitters=EMITTERS
- فهرست جداشده با کاما از فرستندهها برای استفاده در ارسال. فرستندهٔ اول شمارهٔ ۱ است. برخی از دستگاهها تنها از فعالسازی یک فرستنده پشتیبانی میکنند (درایور winbond-cir).
- -g, --gap=GAP
- تنظیم فاصلهٔ بین اسکنکدها یا فاصلهٔ بین فایلها هنگام مشخص شدن چند فایل در خط فرمان. مقدار پیشفرض ۱۲۵۰۰۰ میکروثانیه است.
- -?, --help
- چاپ پیام راهنما.
- --usage
- نمایش پیام کوتاه نحوهٔ استفاده.
- -v, --verbose
- خروجی پرگو؛ چاپ اطلاعات IR پیش از ارسال.
- -V, --version
- چاپ نسخهٔ v4l2-utils.
قالب فایل (Format of file)
هنگام ارسال یا دریافت IR خام، میتوان از دو قالب استفاده کرد. نخست، فهرستی از اعداد صحیح است که مقادیر پالس (pulse) و فاصله (space) را نشان میدهند. مقدار پالس میتواند با + و مقدار فاصله با - پیشوندگذاری شود، اما این اختیاری است. اسکنکد rc-5 مقدار 0x1e01 به این صورت کدگذاری میشود:
+889 -889 +1778 -1778 +889 -889 +889 -889 +889 -889 +1778 -889 +889 -889 +889 -889 +889 -889 +889 -889 +889 -1778 +889
قالب دیگر از ابزار mode2 الگوبرداری میکند. این قالب برای هر فاصله یا پالس یک خط تولید میکند. برای دریافت، میتوان آن را با تعیین --mode2 انتخاب کرد. در اینجا همان پیام بالا آمده است که اکنون در قالب mode2 کدگذاری شده است:
carrier 36000
pulse 940
space 860
pulse 1790
space 1750
pulse 880
space 880
pulse 900
space 890
pulse 870
space 900
pulse 1750
space 900
pulse 890
space 910
pulse 840
space 920
pulse 870
space 920
pulse 840
space 920
pulse 870
space 1810
pulse 840
توجه داشته باشید که در این قالب، بسامد حامل نیز میتواند مشخص شود. در قالب اول، این کار تنها با یک گزینهٔ خط فرمان جداگانه به صورت --carrier=38000 امکانپذیر است.
به جای تعیین صرفاً IR خام، در این قالب میتوانید اسکنکد و پروتکلی را که میخواهید ارسال کنید نیز مشخص نمایید. این کار همچنین به طور خودکار حامل صحیح را تنظیم میکند. مورد بالا میتواند به صورت زیر نوشته شود:
scancode rc5:0x1e01
اگر چندین اسکنکد در یک فایل مشخص شوند، در صورت نبود فاصله میان آنها، یک شکاف زمانی درج میشود (نگاه کنید به --gap). هر فایل فقط میتواند یک بسامد حامل داشته باشد، بنابراین در صورتی که پروتکلهای متفاوتی در یک فایل مشخص شوند و از بسامدهای حامل متفاوتی استفاده کنند، ممکن است مشکلاتی رخ دهد.
توجه داشته باشید که محدودیتهای وابسته به سختافزار برای مقدار IR ارسالی در یک زمان وجود دارد. این محدودیت میتواند هم در طول IR و هم در تعداد طولهای متفاوت پالس و فاصله باشد.
پروتکلهای پشتیبانیشده (Supported Protocols)
یک اسکنکد به همراه پروتکل را میتوان در خط فرمان یا در فایل پالس و فاصله مشخص کرد. پروتکلهای زیر پشتیبانی میشوند: rc5, rc5x_20, rc5_sz, jvc, sony12, sony15, sony20, nec, necx, nec32, sanyo, rc6_0, rc6_6a_20, rc6_6a_24, rc6_6a_32, rc6_mce, sharp, imon, rc_mm_12, rc_mm_24, rc_mm_32. اگر اسکنکد با 0x آغاز شود، به عنوان یک عدد هگزادسیمال و اگر با 0 آغاز شود، به عنوان یک عدد اکتال تفسیر خواهد شد.
گیرندهٔ پهنباند و باریکباند (Wideband and narrowband receiver)
اکثر گیرندههای IR دارای دو نوع گیرندهٔ باریکباند و پهنباند هستند. گیرندهٔ باریکباند میتواند در فواصل طولانیتر (معمولاً حدود ۱۰ متر بدون تداخل) داده را دریافت کند و به بسامدهای حامل خاصی محدود است.
گیرندهٔ پهنباند برای اندازهگیریهای با دقت بالاتر و زمانی که بسامد حامل ناشناخته است استفاده میشود؛ با این حال تنها در فواصل بسیار کوتاه (حدود ۵ سانتیمتر) کار میکند. این قابلیت با نام learning mode (حالت یادگیری) نیز شناخته میشود.
در بیشتر درایورها، فعال کردن گزارشهای حامل با استفاده از -m، گیرندهٔ پهنباند را نیز فعال میکند.
وضعیت سراسری (Global state)
تمام گزینههایی که میتوان برای دستگاههای lirc تنظیم کرد تا زمانی که دستگاه خاموش شود یا گزینهٔ جدیدی تنظیم گردد، حفظ میشوند.
وضعیت خروج (EXIT STATUS)
در صورت موفقیت، مقدار 0 بازگردانده میشود. در غیر این صورت، کد خطا برگردانده خواهد شد.
مثالها (EXAMPLES)
برای
فهرست کردن
همهٔ
قابلیتهای
/dev/lirc2:
ir-ctl -f -d /dev/lirc2
برای
نمایش IR
اولین
فشردن کلید
روی
ریموتکنترل
در حالت
یادگیری:
ir-ctl -r -m -w
برای
بازگرداندن
گیرنده به
حالت عادی
(فاصلهٔ
طولانیتر):
ir-ctl -n -M
برای
ارسال فایل
پالس و
فاصلهٔ play
روی
فرستندهٔ ۳:
ir-ctl -e 3 --send=play
برای
ارسال
اسکنکد rc-5
مربوط به
کلید '1' hauppauge:
ir-ctl -S rc5:0x1e01
برای
ارسال کلید
rc-5 مربوط به '1'
از نگاشت
کلید hauppauge:
ir-ctl -k hauppauge.toml -K KEY_NUMERIC_1
گزارش باگها (BUGS)
گزارش باگها به Linux Media Mailing List <linux-media@vger.kernel.org>
کپیرایت و تکثیر (COPYRIGHT)
حق نشر (c) ۲۰۱۶ متعلق به Sean Young است.
مجوز GPLv2: گنو
GPL نسخهٔ ۲
http://gnu.org/licenses/gpl.html.
این یک
نرمافزار
آزاد است:
شما مجاز به
تغییر و
بازتوزیع
آن هستید.
هیچگونه
ضمانتی
وجود
ندارد، تا
حدی که
قانون
اجازه
میدهد.
همچنین ببینید (SEE ALSO)
برای نمایش IR رمزگشاییشده یا تنظیم گزینههای رمزگشایی IR، به ir-keytable(1) مراجعه کنید.
قالب نگاشت کلید در rc_keymap(5) توضیح داده شده است.
| Tue Jul 5 2016 | v4l-utils 1.32.0 |