.TH "RC_KEYMAP" "5" "Thu Mar 7 2019" "v4l-utils 1.32.0" "File Formats" .SH "نام (NAME)" rc_keymap \- پرونده toml توصیف‌کننده نگاشت کلیدهای کنترل از راه دور .SH "توضیحات (DESCRIPTION)" یک پرونده rc_keymap یک کنترل از راه دور را توصیف می‌کند. این پرونده پروتکل‌های مورد استفاده و نگاشت از مادون قرمز (IR) رمزگشایی‌شده به کدهای کلید ورودی لینوکس را فهرست می‌کند. این پرونده توسط ir\-keytable(1) برای رمزگشایی IR، و توسط ir-ctl(1) برای ارسال IR استفاده می‌شود. .PP قالب پرونده toml است. از آنجا که یک کنترل از راه دور می‌تواند از چندین پروتکل استفاده کند، سطح بالا آرایه‌ای از پروتکل‌ها است. اکثریت قریب به اتفاق کنترل‌ها تنها از یک پروتکل استفاده می‌کنند. .PP .SH "ورودی پروتکل نگاشت کلید (KEYMAP PROTOCOL ENTRY)" برای هر پروتکلی که کنترل از راه دور استفاده می‌کند، باید یک ورودی در آرایه سطح بالای \fBprotocols\fR وجود داشته باشد. .SS "فیلد Name (Name Field)" هر ورودی protocols دارای یک فیلد \fBname\fR است. نام توسط ir\-keytable یا ir\-ctl استفاده نمی‌شود، اما می‌توان از آن برای دادن نامی توصیفی‌تر از نام پرونده (مانند شماره مدل) به کنترل از راه دور استفاده کرد. .SS "فیلد Protocol (Protocol Field)" فیلد \fBprotocol\fR پروتکل را مشخص می‌کند. این می‌تواند یکی از رمزگشاهای هسته لینوکس باشد، که در این صورت شامل \fBnec\fR، \fBrc\-5\fR، \fBrc\-6\fR، \fBjvc\fR، \fBsony\fR، \fBsanyo\fR، \fBrc\-5\-sz\fR، \fBsharp\fR، \fBmce\-kbd\fR، \fBxmp\fR، \fBimon\fR، \fBrc\-mm\fR، \fBother\fR یا \fBunknown\fR است. اگر با هیچ‌یک از این ورودی‌ها مطابقت نداشته باشد، فرض می‌شود که یک رمزگشای مبتنی بر BPF است. مقادیر \fBunknown\fR و \fBother\fR پروتکل‌هایی هستند که توسط دستگاه‌های خاص RC رمزگشایی می‌شوند که در آن‌ها پروتکل به ترتیب ناشناخته یا اختصاصی است. .PP برخی رمزگشاهای پروتکل BPF از پیش تعریف‌شده وجود دارند که در زیر فهرست شده‌اند. برای نحوه نوشتن رمزگشای خود به .UR https://lwn.net/Articles/759188 .UE مراجعه کنید. .SS "فیلد Variant (Variant Field)" فیلد \fBvariant\fR مشخص می‌کند که یک پروتکل خاص از کدام گونه استفاده می‌کند. برای مثال پروتکل‌های \fBsony\fR، \fBrc-5\fR و \fBrc-6\fR گونه‌هایی با طول بیت متفاوت دارند. این فیلد توسط ir\-ctl هنگام ارسال IR استفاده می‌شود. .PP گونه‌های زیر در حال حاضر تعریف شده‌اند: .PP پروتکل \fBrc-5\fR دارای گونه‌های \fBrc-5\fR، \fBrc-5x-20\fR و \fBrc-5-sz\fR است. .PP پروتکل \fBnec\fR دارای گونه‌های \fBnec\fR، \fBnec-x\fR و \fBnec-32\fR است. .PP پروتکل \fBsony\fR دارای گونه‌های \fBsony-12\fR، \fBsony-15\fR و \fBsony-20\fR است. .PP پروتکل \fBrc\-6\fR دارای گونه‌های \fBrc-6-0\fR، \fBrc-6-6a-20\fR، \fBrc-6-6a-24\fR، \fBrc-6-6a-32\fR و \fBrc-6-mce\fR است. .PP پروتکل \fBrc\-mm\fR دارای گونه‌های \fBrc-mm-12\fR، \fBrc-mm-24\fR و \fBrc-mm-32\fR است. .SS "فیلد Scancodes (Scancodes field)" جدول \fBscancodes\fR کدهای اسکن و نگاشت آن‌ها به کد کلید ورودی لینوکس را فهرست می‌کند. چندین کد اسکن می‌توانند به یک کد کلید نگاشت شوند. فیلد scancodes برای پروتکل‌های \fBraw\fR وجود ندارد. .PP اگر کد اسکن با 0x شروع شود، به عنوان یک عدد هگزادسیمال تفسیر می‌شود. اگر با 0 شروع شود، به عنوان یک عدد هشت‌هشتی تفسیر می‌شود. .PP کدهای کلید معتبر در پرونده هدر \fBinput-event-codes.h\fR فهرست شده‌اند. به عنوان مثال می‌توان به \fBKEY_ENTER\fR، \fBKEY_ESC\fR یا \fBBTN_LEFT\fR برای دکمه چپ ماوس اشاره کرد. توجه داشته باشید که اگر نگاشت کلید تنها برای ارسال IR استفاده شود، کلید نیازی به یک کد کلید معتبر لینوکس ندارد؛ می‌تواند هر رشته‌ای بدون فاصله باشد. .SS "فیلد Raw (Raw field)" اگر پروتکل \fBraw\fR باشد، فیلد \fBraw\fR آرایه‌ای از نگاشت کد کلید به داده‌های خام است. برای هر ورودی، یک فیلد \fBkeycode\fR و یک فیلد \fBraw\fR وجود دارد. فیلد \fBkeycode\fR یک کد کلید ورودی لینوکس است، همان‌طور که در فیلد scancodes در بالا توضیح داده شد. .PP فیلد \fBraw\fR یک رشته است که مقادیر پالس و فاصله را که با فاصله از هم جدا شده‌اند فهرست می‌کند. مقدار اول پالس برحسب میکروثانیه است، دومی فاصله، سومی پالس و غیره. مقادیر فاصله می‌توانند با علامت - و مقادیر پالس با علامت + همراه باشند. باید تعداد فردی از مقادیر وجود داشته باشد تا آخرین ورودی یک پالس باشد. .SS "فیلدهای باقی‌مانده (پارامترهای BPF)" اگر پروتکل یک رمزگشای مبتنی بر BPF باشد، ممکن است هر تعداد پارامتر عددی داشته باشد. این پارامترها برای پشتیبانی از پروتکل‌هایی با طول سیگنال غیر استاندارد برای پروتکل‌های استاندارد IR استفاده می‌شوند. هر فیلد دیگری که در اینجا مشخص شده و توسط رمزگشای BPF انتخاب‌شده مورد نیاز باشد استفاده خواهد شد. تمام فیلدهای دیگر نادیده گرفته می‌شوند. رمزگشاهای پروتکل غیر BPF مبتنی بر هسته هیچ پارامتری ندارند. .PP .SH "پروتکل‌های BPF (BPF PROTOCOLS)" .PP برخی از رمزگشاهای پروتکل BPF عمومی هستند و برای کار کردن به پارامتر نیاز دارند. سایر موارد برای کنترل‌های خاص هستند و باید بدون هیچ پارامتری کار کنند. پارامترهای زمان‌بندی همگی برحسب میکروثانیه (µs) هستند. .SS raw این رمزگشا باید زمانی استفاده شود که نگاشت کلید خام است؛ برای هر کلید، یک ورودی در آرایه raw با مقادیر پالس و فاصله برای آن کلید وجود دارد. هیچ رمزگشایی انجام نمی‌شود، IR ورودی صرفاً با مقادیر مختلف پالس و فاصله مطابقت داده می‌شود. .SS imon_rsc این رمزگشا به‌طور خاص برای کنترل iMON RSC است که همراه با iMON Station (از جمله دیگر موارد) بسته‌بندی شده بود. این رمزگشا برای اهرم جهت‌دار در وسط است؛ آن‌ها را به حرکات ماوس رمزگشایی می‌کند. دکمه‌ها همگی با استفاده از nec-x کدگذاری شده‌اند، بنابراین نگاشت کلید برای عملکرد صحیح به دو پروتکل نیاز دارد. این به پروتکل \fBimon\fR ارتباطی ندارد. .TP \fBmargin\fR تعیین میزان رواداری برای طول پیام. پیش‌فرض 200. .PP .SS grundig این رمزگشا به‌طور خاص برای کنترل‌های قدیمی grundig است. .TP \fBheader_pulse\fR طول پالس اول، پیش‌فرض 900. .TP \fBheader_space\fR طول فاصله پس از آن، پیش‌فرض 2900. .TP \fBleader_pulse\fR طول پالس دوم، پیش‌فرض 1300. .PP .SS xbox این رمزگشا به‌طور خاص برای XBox Remote DVD است که برای نسل اول XBox است. .TP \fBmargin\fR تعیین میزان رواداری برای طول پیام. پیش‌فرض 200. .SS manchester بیشتر کنترل‌های از راه دور کدگذاری‌شده با منچستر یا rc\-5، rc\-6، یا rc\-mm هستند. برخی کنترل‌ها از گونه متفاوتی استفاده می‌کنند (مثلاً ممکن است پالس هدر داشته باشند) و این رمزگشا برای همین است. برخی پارامترها باید مشخص شوند، به‌طور پیش‌فرض برای rc\-5 تنظیم شده است. .TP \fBmargin\fR تعیین میزان رواداری برای طول پیام. پیش‌فرض 200. .TP \fBheader_pulse\fR تعیین طول پالس آغازین. همیشه وجود ندارد. پیش‌فرض 0. .TP \fBheader_space\fR تعیین طول فاصله پس از پالس آغازین. در صورت تنظیم \fBheader_pulse\fR باید تنظیم شود. .TP \fBzero_pulse\fR, \fBzero_space\fR, \fBone_pulse\fR, \fBone_space\fR طول سیگنال‌دهی برای بیت‌ها. برای نحوه تعریف این موارد به .UR https://clearwater.com.au/code/rc5 .UE مراجعه کنید. .TP \fBbits\fR تعداد بیت‌ها. پیش‌فرض 14. .TP \fBscancode_mask\fR بیت‌هایی که باید از کد اسکن حاصل ماسک شوند. .TP \fBtoggle_bit\fR بیتی که ضامن (toggle) را مشخص می‌کند. اگر این مقدار بیشتر از تعداد بیت‌ها باشد، هیچ ضامنی تعریف نشده است. .SS pulse_distance این یک رمزگشای عمومی برای پروتکل‌هایی است که بیت‌ها را بر اساس فاصله بین پالس‌ها تعریف می‌کنند و پالس‌ها همیشه دارای طول یکسان هستند. شناخته‌شده‌ترین پروتکل از این نوع \fBnec\fR است. این رمزگشا برای مواردی است که از \fBnec\fR استفاده نمی‌شود. پارامترها باید تنظیم شوند. .TP \fBmargin\fR تعیین میزان رواداری برای طول پیام. پیش‌فرض 200. .TP \fBheader_pulse\fR طول نخستین پالس آغازین. پیش‌فرض 2125. .TP \fBheader_space\fR طول فاصله پس از پالس آغازین. پیش‌فرض 1875. .TP \fBrepeat_pulse\fR طول پالس آغازین برای تکرار کلید. پیش‌فرض 0. .TP \fBrepeat_space\fR طول فاصله پس از پالس آغازین برای تکرار کلید. پیش‌فرض 0. .TP \fBbit_pulse\fR طول پالس برای هر بیت. پیش‌فرض 625. .TP \fBbit_0_space\fR طول فاصله برای بیت صفر. پیش‌فرض 375. .TP \fBbit_1_space\fR طول فاصله برای بیت یک. پیش‌فرض 1625. .TP \fBtrailer_pulse\fR طول پالس پس از آخرین بیت. برای تکمیل آخرین بیت لازم است. پیش‌فرض 625. .TP \fBbits\fR تعداد بیت‌ها. پیش‌فرض 4. .TP \fBreverse\fR آیا بیت‌ها باید با کم‌ارزش‌ترین بیت در ابتدا خوانده شوند. برای فعال‌سازی روی غیر صفر تنظیم کنید. پیش‌فرض 0. .TP \fBheader_optional\fR برخی کنترل‌ها پالس و فاصله هدر را برای تکرار کلید ارسال نمی‌کنند، بنابراین برای اختیاری کردن هدر این گزینه را روی غیر صفر قرار دهید. پیش‌فرض 0. یک پیاده‌سازی جایگزین ممکن است فقط به پیام‌های تکراری اجازه حذف هدر را بدهد، اما در صورتی که نخستین پیام حاوی هدر به دلیل تداخل به درستی رمزگشایی نشود، رمزگشایی فشردن کلیدها با شکست مواجه خواهد شد. .SS pulse_length این یک رمزگشای عمومی برای پروتکل‌هایی است که بیت‌ها را بر اساس طول پالس‌ها تعریف می‌کنند و فاصله‌ها همیشه یکسان هستند. پروتکل \fBsony\fR شناخته‌شده‌ترین پروتکل است، اما این رمزگشا برای پروتکل‌هایی است که \fBsony\fR نیستند. .TP \fBmargin\fR تعیین میزان رواداری برای طول پیام. پیش‌فرض 200. .TP \fBheader_pulse\fR طول نخستین پالس آغازین. پیش‌فرض 2125. .TP \fBheader_space\fR طول فاصله پس از پالس آغازین. پیش‌فرض 1875. .TP \fBrepeat_pulse\fR طول پالس آغازین برای تکرار کلید. پیش‌فرض 0. .TP \fBrepeat_space\fR طول فاصله پس از پالس آغازین برای تکرار کلید. پیش‌فرض 0. .TP \fBbit_space\fR طول فاصله برای هر بیت. پیش‌فرض 625. .TP \fBbit_0_pulse\fR طول پالس برای بیت صفر. پیش‌فرض 375. .TP \fBbit_1_pulse\fR طول پالس برای بیت یک. پیش‌فرض 1625. .TP \fBtrailer_pulse\fR طول پالس پس از آخرین بیت. اختیاری. پیش‌فرض 0. .TP \fBbits\fR تعداد بیت‌ها. پیش‌فرض 4. .TP \fBreverse\fR آیا بیت‌ها باید با کم‌ارزش‌ترین بیت در ابتدا خوانده شوند. برای فعال‌سازی روی غیر صفر تنظیم کنید. پیش‌فرض 0. .TP \fBheader_optional\fR برخی کنترل‌ها پالس و فاصله هدر را برای تکرار کلید ارسال نمی‌کنند، بنابراین برای اختیاری کردن هدر این گزینه را روی غیر صفر قرار دهید. پیش‌فرض 0. یک پیاده‌سازی جایگزین ممکن است فقط به پیام‌های تکراری اجازه حذف هدر را بدهد، اما در صورتی که تنها اولین پیام به دلیل تداخل به درستی رمزگشایی نشود، رمزگشایی فشردن کلیدها با شکست مواجه خواهد شد. .SH "مثال (EXAMPLE)" .EX [[protocols]] name = "iMON Station RSC" protocol = "nec" variant = "necx" [protocols.scancodes] 0x801010 = "KEY_EXIT" 0x80102f = "KEY_POWER" 0x80104a = "KEY_SCREENSAVER" 0x801049 = "KEY_TIME" 0x801054 = "KEY_NUMERIC_1" 0x801055 = "KEY_NUMERIC_2" 0x801056 = "KEY_NUMERIC_3" 0x801057 = "KEY_NUMERIC_4" 0x801058 = "KEY_NUMERIC_5" 0x801059 = "KEY_NUMERIC_6" 0x80105a = "KEY_NUMERIC_7" 0x80105b = "KEY_NUMERIC_8" 0x80105c = "KEY_NUMERIC_9" 0x801081 = "KEY_SCREEN" 0x80105d = "KEY_NUMERIC_0" 0x801082 = "KEY_MAX" 0x801048 = "KEY_ESC" 0x80104b = "KEY_MEDIA" 0x801083 = "KEY_MENU" 0x801045 = "KEY_APPSELECT" 0x801084 = "KEY_STOP" 0x801046 = "KEY_CYCLEWINDOWS" 0x801085 = "KEY_BACKSPACE" 0x801086 = "KEY_KEYBOARD" 0x801087 = "KEY_SPACE" 0x80101e = "KEY_RESERVED" 0x801098 = "BTN_0" 0x80101f = "KEY_TAB" 0x80101b = "BTN_LEFT" 0x80101d = "BTN_RIGHT" 0x801016 = "BTN_MIDDLE" 0x801088 = "KEY_MUTE" 0x80105e = "KEY_VOLUMEDOWN" 0x80105f = "KEY_VOLUMEUP" 0x80104c = "KEY_PLAY" 0x80104d = "KEY_PAUSE" 0x80104f = "KEY_EJECTCD" 0x801050 = "KEY_PREVIOUS" 0x801051 = "KEY_NEXT" 0x80104e = "KEY_STOP" 0x801052 = "KEY_REWIND" 0x801053 = "KEY_FASTFORWARD" 0x801089 = "KEY_ZOOM" [[protocols]] protocol = "imon_rsc" .EE .SH "اشکالات (BUGS)" گزارش باگ‌ها به \fBLinux Media Mailing List \fR .SH "حق نشر (COPYRIGHT)" Copyright (C) 2019 by Sean Young .PP License GPLv2: GNU GPL version 2 . .br This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "همچنین ببینید (SEE ALSO)" ir\-keytable(1) and ir\-ctl(1) .PP .PP