مسح رمز لوحة المفاتيح في ج. فيما يتعلق بمسألة تقييم إشارات بيمين الرقمية

يحتوي الكتاب على نصائح ويلخصها لحل المشكلات المختلفة التي تنشأ عاجلاً أم آجلاً عند استخدام أجهزة الكمبيوتر المحمولة الاقتصادية ونماذج سطح المكتب الحديثة. تم اختبار جميع الوصفات المقدمة عمليًا وهي مقسمة إلى موضوعات: أجهزة الكمبيوتر الشخصية وشبكات الكمبيوتر واتصالات الإنترنت وتثبيت نظام التشغيل Windows وتكوينه وإصلاحه والعمل على الإنترنت والحماية من الفيروسات. لا يتم النظر في الحلول الجاهزة للمشاكل الناشئة فجأة فحسب، بل يتم أيضًا النظر في الإجابات على العديد من الأسئلة التي تنشأ حتى قبل شراء جهاز كمبيوتر. يتم توفير الحد الأدنى الضروري من المعلومات الفنية للسماح لك باتخاذ قرار مستنير.

يتم تضمين القرص المضغوط فقط مع النسخة المطبوعة من الكتاب.

كتاب:

الأقسام الموجودة في هذه الصفحة:

هناك العديد من المفاتيح الموجودة على لوحة المفاتيح التي لا تستخدمها أبدًا. واحدة من أكثر مزعجة هو المفتاح ، محفوظة من أيام لغات البرمجة مثل فورتران، حيث كان كل شيء يكتب بالأحرف الكبيرة. قليل من الناس يستخدمون مفاتيح نظام Windows (سواء المفتاح الرئيسي أو لاستدعاء قائمة السياق) - وهو أكثر ملاءمة للقيام بذلك باستخدام الماوس. وفي الوقت نفسه، يؤدي الضغط على هذه المفاتيح عن طريق الخطأ إلى إبطاء كل العمل. يمكن لأولئك الذين ينزعجون من ذلك تعطيلها أو إعادة تعيينها لوظائف أخرى - على سبيل المثال، للمفاتيح المجاورة.

دعونا نلقي نظرة على هذه الإجراءات باستخدام الأمثلة، ثم سنخبرك كيف يتم ذلك في الحالة العامة - لأي مفتاح.

أولاً، تحتاج إلى إنشاء معلمة ثنائية جديدة في قسم التسجيل HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlKeyboard Layout (يجب عدم الخلط بينه وبين تخطيطات لوحة المفاتيح!) (ستتم كتابتها في القائمة - المعلمة الثنائية)، وتسميتها Scancode Map (مع مسافة!) ، وقم بتعيين قيمة لها وفقًا للمثال التالي:

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

00 00 5D E0 00 00 00 00

سيؤدي هذا السطر إلى تعطيل مفتاح مربع اختيار Windows ومفتاح القائمة المنبثقة المجاور. دعونا نفهم ما هو مكتوب هنا.

أولاً يجب أن يكون هناك 8 أزواج من الأصفار على التوالي. ثم يأتي رقم (مع صفر بادئ) - في هذه الحالة 03، وهو ما يعني عدد المفاتيح التي يتم تعقبها بالإضافة إلى واحد (أي في هذا المثال نحن نتتبع مفتاحين). ويجب أن يتبعه دائمًا ثلاثة أزواج من الأصفار (مكملة لما يصل إلى 4 أزواج من الأرقام). يجب أن ينتهي الإدخال دائمًا بأربعة أزواج من الأصفار. ولكن يجب علينا أن نكتب فيما بينها أكبر عدد ممكن من أربعة أضعاف الأرقام المزدوجة التي قدمناها مفاتيح التتبع - في هذه الحالة، اثنان. أنها تحتوي على ما يسمى برموز المسح للمفاتيح التي نريد تعطيلها. في الجدول 12.2 يوضح رموز تلك المفاتيح التي ينبغي أخذها في الاعتبار فيما يتعلق بالمرشحين للتعطيل أو الاستبدال (انظر أدناه).

تتم كتابة هذه الرموز في آخر زوجين من كل أربعة أزواج من الأرقام، وأول زوجين هما أصفار مرة أخرى - كما ترى في العينة. لذا فإن سطر المثال سيعطل المفتاح المناسب لنا (مع علامة Windows) (00 00 5C E0) والمفتاح المجاور اتصل بالقائمة المنبثقة (00 00 5D E0).

الجدول 12.2. رموز المسح الرئيسية


ما هي رموز المسح وأين يمكن الحصول عليها

رمز المسح الضوئي هو الرقم الذي تنتجه لوحة المفاتيح عند الضغط على مفتاح معين. لا ينبغي الخلط بين رموز المسح الضوئي ورموز المفاتيح الافتراضية - حيث يتم تشكيل الأخير على مستوى BIOS وWindows ومن ثم تحديد رموز الأحرف، وهي نفس الرموز التي تشكل، على سبيل المثال، محتويات المستندات النصية. وفي معظم الحالات، لا يرتبطون ببعضهم البعض بأي شكل من الأشكال. على سبيل المثال، الرمز الافتراضي لمفتاح المسافة هو 32 (نفس رمز حرف المسافة في ترميزات البايت الواحد)، ورمز المسح الخاص به هو 57 (في شكل HEX سيكون 20 و39، على التوالي). يرجى ملاحظة أن الرموز الافتراضية لا تعادل الرموز الرمزية - لتحويل الرمز الافتراضي إلى رمز رمز، يجب على المرء أيضًا أن يأخذ في الاعتبار تخطيط اللغة وحالة المفاتيح , وبالمناسبة، نظام التشفير المستخدم هو بايت واحد أو Unicode. يتم كل هذا بواسطة برنامج تشغيل لوحة مفاتيح النظام حتى قبل دخول الحدث الصحفي إلى قائمة انتظار رسائل Windows. بعض المفاتيح ( أو ) لا ترتبط بأي رموز على الإطلاق ولا تقع في قائمة الانتظار المحددة. لذلك، لاستبدال وظيفة مفتاح معين بالكامل، فإن استبدال الرموز الافتراضية (والتي يمكن القيام بها بالفعل بواسطة أي شخص لديه مهارات برمجة في دلفي أو Visual C++) لا يكفي - فأنت بحاجة إلى التصرف على مستوى أعمق، ومعالجة رموز المسح الضوئي. هذا هو ما يسمح لك بتنفيذ معلمة Scancode Map في سجل Windows.

لأغراضنا، يجب تقديم رموز المسح الضوئي، كما يمكنك تخمينها من الجدول أعلاه، بالنظام الست عشري (HEX) بدلاً من النموذج العشري. عادةً ما يتم تضمين جداول الرموز الافتراضية ورموز الأحرف في أي دليل برمجة لنظام التشغيل Windows، ولكن ليس من السهل العثور على جدول كامل لرموز المسح الضوئي. يوجد أحد هذه الجداول على موقع "المكتبة الإلكترونية" على الرابط http://ntlib.chat.ru/ware/tables/scan.htm. تم تكوينه بشكل سيء بعض الشيء - يتم عرض ما يسمى بالمفاتيح الموسعة (هذه هي تلك التي يساوي البايت الثاني في جدولنا E0) هناك عن طريق إضافة رقم إضافي يساوي 1. أي عن طريق تحديد رمز المسح من عمود HEX، على سبيل المثال، 11C (مفتاح على لوحة المفاتيح الرقمية)، لأغراضنا، يجب إعادة كتابته كـ 1C E0. يمكن تنزيل المجموعة الكاملة الرسمية لرموز المسح الضوئي، بما في ذلك مفاتيح التحكم في الطاقة (ولكن باستثناء مفاتيح الوسائط الإضافية)، من موقع Microsoft على الويب. رابط المستند طويل جدًا، لذا فقط اكتب الكلمات "مواصفات رمز المسح الضوئي للوحة المفاتيح" في البحث على موقع microsoft.com وستحصل على ما تبحث عنه - وإن كان باللغة الإنجليزية. أثناء دراستك لهذا المستند، ضع في اعتبارك أننا مهتمون فقط بمجموعة واحدة من الرموز: Scan Code Set 1.

بالطبع، يجب عليك إعداد مثل هذه السلسلة من الأرقام مسبقًا وإحصاء جميع الأزواج بعناية قبل إدخالها في السجل. ولكن عند دخولك، سترى أنهم سيساعدونك على تجنب ارتكاب الأخطاء. يتم إدخال قيمة الرقم الثنائي يدويًا (الشكل 12.11)، ولكن على الرغم من المظهر غير المعتاد لهذا المحرر، سترى بسرعة أن العمل معه مريح للغاية. على وجه الخصوص، لا توجد مشاكل عند حساب الأزواج المدخلة - يتم تجميعها تلقائيًا ثمانية في كل سطر. لا تنس إعادة تشغيل جهاز الكمبيوتر الخاص بك بعد إدخال قيم المعلمات أخيرًا.


أرز. 12.11. إدخال قيم المعلمات الثنائية

ليس فقط الإلغاء، ولكن أيضًا إعادة التعيين، سيتعين عليك تعقيد التسجيل قليلاً - استبدل أول زوجين من الأصفار في تلك الأربعة التي تحتوي على رموز المفاتيح المعطلة بتلك الرموز التي، في رأيك، يجب أن تعمل. على سبيل المثال، قيمة معلمة Scancode Map هي

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

1D E0 5D E0 00 00 00 00

سيؤدي إلى تعطيل مفتاح علم Windows الصحيح، و سوف يكرر الصحيح ، أي: المفتاح الأقرب إليه. هذه هي قيمة خريطة Scancode التي تظهر كمثال في الشكل. 12.11.

سنوضح لك كيفية التعامل معها . تظهر التجارب أنه ليس كل شيء واضحًا معه - على وجه الخصوص، قد لا تؤدي محاولة إيقاف تشغيله ببساطة إلى تحقيق نتائج. لكنني سأقدم قيمة معلمة Scancode Map، والتي يتم ضمان تعطيلها – وظيفتها تتغير إلى وظيفة (صحيح، ولكن في الممارسة العملية لا يهم)، و هنا، كما كان من قبل، يكرر الحق :

00 00 00 00 00 00 00 00

03 00 00 00 1D E0 5D E0

2أ 00 3 أ 00 00 00 00 00

يوجد على القرص المضمن في مجلد التسجيل ملف key.reg، عند تشغيله والتأكد من أنك تريد حقًا إجراء تغييرات على السجل، سيتم إنشاء معلمة Scancode Map تلقائيًا بهذه القيمة. إذا كنت لا تريد لمس أي شيء إلا ، ثم قم بتحرير هذه القيمة على النحو التالي: استبدل 03 بـ 02 واستبدل البايتات الأربعة بقيمة غير الصفر في السطر الثاني بالأصفار.

لا ينبغي أن يحدث أي شيء مميت نتيجة لتجاربك هذه - إذا ارتكبت خطأً ما أو قررت ترك كل شيء كما هو، فما عليك سوى حذف معلمة Scancode Map من السجل وإعادة تشغيل جهاز الكمبيوتر الخاص بك. أو إعادة النظام إلى حالته الأصلية باستخدام نقاط الاستعادة.

تعطيل المفتاح كيفية الدخول إلى القائمة

آسف، التعامل مع المفتاح كمفتاح نظام لنظام التشغيل Windows (استدعاء القائمة الرئيسية)، مع الحفاظ على وظائفه كمفتاح تعديل، لن يعمل من خلال التسجيل - سيتوقف عن الاستجابة للضغط تمامًا. لذلك، بما أننا تناولنا المفاتيح بالفعل، سأشير أيضًا إلى طريقة للتعامل معها، على الرغم من أنها لا علاقة لها بالتسجيل. يوجد على قرص الكتاب مجلد AltSpy، الذي يحتوي على برنامج يحمل نفس الاسم. انسخ المجلد بأكمله (يحتوي على ثلاثة ملفات) إلى محرك الأقراص الثابتة لديك وقم بتشغيل ملف js (Java Script). لكي لا يتم تشغيله يدويًا في كل مرة، يجب تضمينه في بدء التشغيل (راجع القسم 10.1.3 "بدء التشغيل"). بعد 10 ثوانٍ من بدء البرنامج النصي، سيقوم AltSpy بإنشاء رمز بني العينين في منطقة الإعلام، والذي سيحتوي على عنصر قائمة سياق واحد - إغلاق. يعد الإيقاف المؤقت ضروريًا حتى يتم ضمان أن يكون AltSpy هو الأخير عند بدء التشغيل ويحظر الخدمات الأخرى. بعد ذلك لن يتصل بالقائمة الرئيسية بعد الآن، لكنه سيحتفظ بوظائفها الأساسية. لا تختفي القدرة على استدعاء القائمة الرئيسية - لا يزال يتم تنفيذ هذه الوظيفة بواسطة المفتاح ، ولكن الآن أصبح من الصعب جدًا الاتصال به عن طريق الخطأ وبالتالي التخلص من تركيز الإدخال من العنصر المطلوب.

تم تجهيز معظم لوحات المفاتيح الحديثة بمفاتيح الوسائط المتعددة، وتحتوي الفئران بالفعل على ثلاثة إلى سبعة أزرار. تتوفر برامج التشغيل وجميع أنواع البرامج المفيدة فقط لنظام التشغيل Windows على القرص المضمن في المجموعة وعلى موقع الشركة المصنعة على الويب. يعلم الجميع أن Linux مشهور بقدرته على تخصيص النظام لنفسك، إذا كنت، بالطبع، تعرف أين وماذا يجب تكوينه. مهمتنا هي تعليم البطريق العمل بأرغفة إضافية.

تحديد رمز المسح الرئيسي

بغض النظر عما تضغطه على لوحة المفاتيح، فإن خادم X والنواة بشكل عام لا يهتمان بما هو مكتوب أو مرسوم عليها. إنهم مهتمون فقط برمز المسح الخاص بالزر، أولاً يقرأ Xs جدول رموز مفتاح kernel، ثم يتم ربط رمز المفتاح بجدول التعليمات البرمجية الخاص به. إذا كانت مشكلة إعداد مفاتيح الوسائط المتعددة في وحدة التحكم في Windows غير موجودة على هذا النحو، فسيتعين عليك في Linux تكوين رد الفعل بشكل منفصل على الضغط على الأزرار في وحدة التحكم وفي X-Window.

لمعرفة رمز المفتاح، يجب عليك استخدام الأداة المساعدة xev المضمنة مع خادم X. بعد تشغيله تظهر نافذة اختبار الحدث، الآن قم بالضغط على المفاتيح بشكل تسلسلي، مع تذكر الكود الصادر:

$xev
...
حدث KeyRelease، المسلسل 31، NO الاصطناعي، النافذة 0x3e00001،
الجذر 0x67، subw 0x0، الوقت 279734676، (311,611)، الجذر:(1104,687)،
الحالة 0x2000، رمز المفتاح 236 (keysym 0x1008ff19، XF86Mail)، نفس الشاشة نعم،

إرجاع XFilterEvent: خطأ
حدث KeyRelease، المسلسل 31، NO الاصطناعي، النافذة 0x2600001،
الجذر 0x67، subw 0x0، الوقت 265877259، (883334)، الجذر:(886358)،
الحالة 0x0، رمز المفتاح 161 (keysym 0x0، NoSymbol)، نفس الشاشة نعم،
يعطي XLookupString 0 بايت:
إرجاع XFilterEvent: خطأ

يمكن أن يكون الإخراج ضخمًا حيث يتم تعقب كل حركة للماوس أثناء مرورها عبر نافذة اختبار الحدث. يتم وصف المفتاح بواسطة كتلة KeyRelease، على وجه الخصوص، قيمة رمز المفتاح هي بالضبط رمز المسح الذي نريد معرفته. في المثال المذكور، يتم الضغط على مفتاحين. يتوافق رمز المفتاح 236 مع رمز المفتاح لخادم X المحدد في keysym، بالإضافة إلى إجراء XF86Mail، الذي يقوم في KDE بتشغيل عميل البريد الافتراضي. بالنسبة للمفتاح رقم 161، لم يتم تعريف الرمز والإجراء.

من الممكن أن يتم الضغط على أحد المفاتيح، ولكن لا يتم إصدار رمز المسح الخاص به. هذا يعني أن النواة لا يمكنها العثور على قيمة مطابقة. يجب أن يحتوي إخراج dmesg على السطر التالي:

استخدم "setkeycodes 0xec "لجعله معروفا.

أي أنه يُعرض عليك تعيين رمز مسح المفتاح بنفسك باستخدام رموز المفاتيح المحددة، كما أن اختيار قيمة رمز المفتاح أمر بسيط للغاية. قم بتحويل الرقم الناتج إلى رقم عشري (معظم الآلات الحاسبة يمكنها القيام بذلك) وأضف 128. في هذا المثال، 0xec = 236، أي أننا نحصل على رمز المسح 364. إذا كان هناك شك، فيمكن إعادة قائمة رموز المسح المستخدمة وغير المستخدمة يتم عرضها عن طريق تشغيل الأداة المساعدة getkeycodes في وحدة التحكم أو مفاتيح التفريغ. على سبيل المثال، إذا كان الإخراج هو "getkeycodes | grep<код клавиши>"لم يقدم أي شيء، لذلك يمكن استخدام هذا الرمز بأمان.

يمكن للأداة المساعدة XKeycaps (www.jwz.org/xkeycaps)، وهي واجهة أمامية رسومية لـ Xmodmap، أن تساعد أيضًا في تحديد رمز المسح الضوئي.

برنامج xev بالطبع لا يعمل في وحدة التحكم. لمعرفة رمز المسح الصادر عن النواة، استخدم الأداة المساعدة showkey أو getkeycodes:

$showkey
كانت لوحة المفاتيح في وضع UNICODE
اضغط على أي مفتاح (سينتهي البرنامج بعد 10 ثواني من آخر ضغطة)...
0xe0 0x6c 0xe0 0xec

أول رقمين يتوافقان مع المفتاح الذي تم الضغط عليه، والثاني - لغياب الضغط.

إعداد ربط رمز المسح الضوئي في X-Window

إذن، لدينا الآن رموز المسح الضوئي، ونحتاج إلى الإشارة إلى خادم X بما يجب عليه فعله فعليًا عند الضغط على هذا المفتاح، أي تعيين اسم رمزي له. يتم تقديم قائمة بأسماء الرموز في ملف الرأس XF86keysym.h. بشكل افتراضي، لا يتم تثبيت ملفات رأس خادم X على التوزيعات الحديثة. لمشاهدته في Ubuntu، تحتاج إلى تثبيت الحزمة x11proto-core-dev، وبعد ذلك سيتم وضع هذا الملف في الدليل /usr/include/X11. وبدلاً من ذلك، يمكنك الاتصال بخادم X.Org CVS. دعونا ننظر:

$ cat /usr/include/X11/XF86keysym.h
/*
* المفاتيح الموجودة على بعض لوحات المفاتيح "الإنترنت".
*/
#define XF86XK_Standby 0x1008FF10
#تعريف XF86XK_AudioLowerVolume 0x1008FF11
#define XF86XK_AudioRaiseVolume 0x1008FF13
#define XF86XK_AudioPlay 0x1008FF14
#define XF86XK_AudioStop 0x1008FF15
#تعريف XF86XK_Mail 0x1008FF19

إذا قارنا السطر الأخير بمخرجات xev، فسنرى أن القيم تطابق المفتاح مع رمز المفتاح 236 - keysym 0x1008ff19، XF86Mail (بدون لاحقة XK_). يمكنك العثور على قائمة بجميع القيم المتاحة كما ينبغي استخدامها في /usr/share/X11/XKeysymDB.

هناك طريقتان لإنشاء التخطيط الخاص بك: إنشاء وصف للوحة المفاتيح أو استخدام Xmodmap. الطريقة الأخيرة هي الأبسط، لذلك سنتحدث عنها أكثر. في الدليل الرئيسي للمستخدم، قم بإنشاء ملف Xmodmap، حيث نقوم بإدخال القيم المطلوبة:

$ مسيديت ~/. Xmodmap

رمز المفتاح 161 XF86 الحاسبة
رمز المفتاح 174 XF86AudioLowerVolume
رمز المفتاح 176 XF86AudioRaiseVolume
رمز المفتاح 162 XF86AudioPause

وهكذا، أعتقد أن المبدأ واضح. علاوة على ذلك، يمكن إدخال رمز المفتاح في كل من الشكلين العشري والست عشري. وفقا لملاحظاتي، فإن رموز معظم المفاتيح موحدة. لذلك، إذا قمت بإعداد الاستجابة للضغط على المفتاح مرة واحدة ونقل الملف إلى كمبيوتر آخر، فهناك احتمال أن يكون رد الفعل للضغط على المفتاح الموقع أيضًا مشابهًا على لوحة مفاتيح أخرى. يمكن لمستخدمي سطح مكتب Gnome المزود بـ GDM كتابة كل هذه السطور في الملف /etc/X11/Xmodmap على مستوى النظام.

وفي حالات أخرى، مازلنا بحاجة إلى إخبار خادم X باستخدام الملف الذي تم إنشاؤه. يتم تنفيذ ذلك بشكل مختلف في التوزيعات المختلفة، والفكرة الرئيسية هي تشغيل الأمر /usr/bin/xmodmap $HOME/.Xmodmap عندما يقوم المستخدم بتسجيل الدخول أو عندما يبدأ X هنا يرقص الجميع كما يريدون. يقترحون في المنتديات استخدام ملف $HOME/.xsession (في بعض التوزيعات قد يطلق عليه اسم .Xsession) أو .xprofile أو النظام /etc/X11/Xsession. وأخشى أن هذه ليست كل الخيارات الممكنة. دعونا نرى كيف يتم ذلك في كوبونتو:

$ sudo grep -iR xmodmap /etc

ونتيجة لذلك، نجد ملفًا مثيرًا للاهتمام للغاية /etc/X11/Xsession.d/80ubuntu-xmodmap يحتوي على المحتوى التالي:

$ cat /etc/X11/Xsession.d/80ubuntu-xmodmap

/usr/bin/xmodmap /usr/share/apps/kxkb/ubuntu.xmodmap || حقيقي

USRMODMAP = "$HOME/.Xmodmap"

إذا [-x /usr/bin/xmodmap]; ثم
إذا [ -f "$USRMODMAP" ]؛ ثم
/usr/bin/xmodmap "$USRMODMAP" || حقيقي
فاي
فاي

أي أنه يتم تحميل محتويات ملف ubuntu.xmodmap وuser.Xmodmap، إذا كان موجودًا. عندما تفتح ubuntu.xmodmap في المحرر، ستجد قائمة برموز المفاتيح والأسماء الرمزية المرتبطة بها. من هذا يمكننا أن نستنتج: إذا أبلغ المطور أن توزيعه يدعم لوحات مفاتيح الوسائط المتعددة، فمن الممكن العثور على ملف مماثل بدرجة عالية من الاحتمال. التوزيعات الأخرى لديها نظام مماثل لتشغيل ملفات xmodmap المخصصة.

الآن بعد أن تم تعيين الأسماء الرمزية للمفاتيح، يمكنك تعيين الإجراءات المطلوبة لها. يمكن لبعض بيئات النوافذ مثل KDE التعامل مع الإجراءات بناءً على الأسماء الرمزية. لذلك، عندما تضغط على الزر باستخدام XF86AudioPlay (سؤال)، يبدأ المشغل الافتراضي في التشغيل. لتعيين المجموعة المطلوبة، ما عليك سوى الانتقال إلى "مركز التحكم KDE -> الخيارات الإقليمية وخيارات الوصول -> مجموعات لوحة المفاتيح" (في KUbuntu، ابحث في "إعدادات النظام -> لوحة المفاتيح والماوس"). يوجد عنصر قائمة مماثل في كل من Gnome (يمكنك ببساطة الاتصال بـ gnome-keyboard-bindings) وXFce. بالإضافة إلى ذلك، يمكن لبعض البرامج مثل Amarok وKonqueror وMPD أيضًا معالجة ضغطات المفاتيح. في بيئات أخرى دون
من المرجح أن تتطلب أدوات التكوين الرسومية تدخلاً يدويًا في ملفات التكوين. على سبيل المثال، في IceWM، عندما تضغط على مفتاح يحمل الاسم الرمزي XF86AudioPlay، يبدأ تشغيل مشغل XMMS، وعند الضغط عليه مرة أخرى يتوقف مؤقتًا، يجب عليك إضافة السطر إلى ملف ~/.icewm الذي يظهر بعد التشغيل الأول:

$ mcedit ~/.icewm

مفتاح XF86AudioPlay xmms - تشغيل مؤقت

في Fluxbox، سيبدو خط تشغيل المشغل كما يلي:

$ mcedit ~/.fluxbox/keys

لا شيء XF86AudioPlay:ExecCommand xmms --play-pause

عادة ما تكون هناك أمثلة في التكوينات، لذلك أعتقد أنه يمكنك بسهولة معرفة بقية مديري النوافذ بنفسك.

إعداد رد الفعل في وحدة التحكم

في وحدة التحكم، يختلف الإجراء قليلاً. كما تتذكر، أوصى إخراج dmesg بتعيين رموز المفاتيح باستخدام الأمر setkeycodes. ولكن هناك اختلافات هنا - لا يمكن أن يكون هناك أكثر من 128 أمرًا رئيسيًا في وحدة التحكم، يجب عليك تحديد القيم من 0 إلى 127:

$setkeycodes 0xec 118

يمكنك عرض القيم المجانية في ملف تخطيط لوحة المفاتيح الحالي. في Ubuntu وجميع التوزيعات المبنية على Debian، يكون هذا عادةً /etc/console-setup/boottime.kmap.gz. إذا لم تكن هناك مشاكل في المفاتيح بعد بدء التشغيل، فأضف هذا السطر إلى أحد البرامج النصية لبدء التشغيل، على سبيل المثال في /etc/init.d/rc.local.

الآن كل ما تبقى هو ضبط المراسلات بين المفتاح والإجراء الذي يتم تنفيذه. هناك مساحة أكبر للإبداع هنا مما كانت عليه في X. في خرائط المفاتيح (5)، يكون الإجراء الخاص بمطابقة رمز المفتاح كما يلي:

(عادي | ) رقم مفتاح رمز المفتاح = keysym

# قم بتبديل وحدة التحكم مرة أخرى عند الضغط على المفتاح بالرمز 105
رمز المفتاح 105 = Decr_Console
# يقوم بتبديل وحدة التحكم إلى الأمام عند النقر فوقها ومفتاح بالرمز 106
رمز المفتاح البديل 106 = Incr_Console

ولكن يمكنك إنشاء خياراتك الخاصة عن طريق تحديد الأمر في المتغيرات:

رمز المفتاح 120 = F100
السلسلة F100 = "/sbin/shutdown -h now\n"

بمعنى آخر، سيؤدي الضغط على المفتاح الذي يحمل الرمز 120 إلى تنفيذ الإجراء المحدد في المتغير F100؛ في حالتنا، تم ضبط الكمبيوتر على إيقاف التشغيل. بدلا من F100، بالطبع، يمكنك استخدام أي اسم آخر.

الآن جزء لا يقل أهمية هو مكان كتابة كل هذا. تقترح الوثائق والنصائح العديدة استخدام ملف تخطيط وحدة التحكم الحالي (في حالتي، boottime.kmap.gz). بالمناسبة، هذا هو الملف الوحيد الذي يصف التخطيطات المتاحة بعد تثبيت KUbuntu؛ لرؤية الخيارات الأخرى، يجب عليك تثبيت حزمة بيانات وحدة التحكم. بعد ذلك، في /usr/share/keymaps/i386/، يمكنك العثور على عدة أدلة فرعية تحتوي على ملفات بداخلها. ولكن إذا كنت بحاجة إلى التبديل إلى تخطيط آخر (في Ubuntu وبعض التوزيعات الأخرى، يتم استخدام ملف /etc/default/console-setup أو ~/.console-setup لهذا الغرض)، فسوف تحتاج إلى نقل جميع الإعدادات إلى تخطيط آخر. الملف، وهو إلى حد ما
غير مريح. إذا قررت القيام بهذه الخطوة، فاستخدم الإدخالات الموجودة كقالب، دون كتابة أي شيء في الموضع الأول، ولا تنس ترك سطر فارغ في النهاية.

قليلا عن الكمبيوتر المحمول

لم أصادف حتى الآن جهاز كمبيوتر محمولًا لا يمكن تحديد رموز المسح الرئيسية الخاصة به. ولذلك، فإن الإعدادات هنا لا تختلف عن تلك المذكورة أعلاه. على الرغم من أن هناك تقنية واحدة أود التحدث عنها. أجد أن وضع السبات مناسب جدًا للاستخدام، عندما تجد كل شيء في مكانه عند تشغيل الكمبيوتر. كقاعدة عامة، تدعمها التوزيعات الحديثة، على الرغم من أن الإعداد بسيط بشكل عام - ما عليك سوى تثبيت حزمة السبات وتجاوز المعلمات الضرورية في ملف التكوين. الشيء الوحيد هو أنه في كل مرة للتبديل إلى هذا الوضع، تحتاج إلى تشغيل البرنامج النصي /usr/sbin/hibernate، وهو ليس مناسبًا دائمًا. أريد فقط إغلاق غطاء الكمبيوتر المحمول وتشغيله مرة أخرى
الغذاء، واكتشاف كل شيء في مكانه.

من السهل جدًا القيام بذلك باستخدام البرنامج الخفي acpid، وهو نوع من واجهة المستخدم التي تسمح لك بإدارة أي أحداث ACPI متاحة من خلال /proc/acpi/event. في هذه الحالة، يقرأ acpid مجموعة من ملفات التكوين من الدليل /etc/acpi/events/. إذا لم يتم تضمين الحزمة مع البرنامج الخفي في التوزيع، فقم بتثبيتها من المستودع؛ يمكن الحصول على أحدث نسخة من الموقع الإلكتروني phobos.fs.tum.de/acpi. بعد التثبيت، تحتاج إلى إنشاء ملفين في الدليل /etc/acpi/events: الغطاء والطاقة. الأول يصف رد الفعل لإغلاق الغطاء، والثاني للضغط على زر الطاقة.

$ sudo mcedit /etc/acpi/events/lid

الحدث=زر/غطاء.*
action=/usr/sbin/hibernate

$ sudo mcedit /etc/acpi/events/power

الحدث=زر/الطاقة.*
الإجراء=/sbin/shutdown -h الآن

هذه خيارات مبسطة إلى حد ما؛ ستجد في KUbuntu نصوصًا أكثر تعقيدًا. بعد ذلك، تحتاج إلى إعادة تشغيل البرنامج الخفي acpid:

$ Sudo /etc/init.d/acpid إعادة التشغيل

الآن، عندما تغلق غطاء الكمبيوتر المحمول، سوف يدخل النظام في وضع السبات مع إيقاف تشغيل الطاقة، وعندما تضغط على زر الطاقة، سيتم إيقاف تشغيله. بسيطة ومريحة.

برامج الإعداد

إذا كنت لا تحب العبث بملفات التكوين، أقترح عليك العديد من البرامج التي ستساعدك على تكوين تشغيل مفاتيح الوسائط المتعددة. على سبيل المثال، الغرض الأولي لبرنامج Sven (sven.linux.kiev.ua) هو تكوين مفاتيح إضافية على لوحة مفاتيح الوسائط المتعددة، ولكن بدءًا من الإصدار 0.4، يمكنه تصحيح أخطاء الكتابة وتغيير تخطيط لوحة المفاتيح. علاوة على ذلك، حتى لو كان لديك لوحة مفاتيح عادية، فبمساعدتها يمكنك محاكاة مفاتيح الوسائط المتعددة باستخدام اختصارات لوحة المفاتيح بدلاً من ذلك. يمكنك أيضًا تعيين إجراءات لأزرار ماوس معينة. إنها تفهم ما يقرب من 10000 كلمة روسية و9500 كلمة إنجليزية. إذا لم يتحول البرنامج
نفسه، فيمكن تغيير التخطيط يدويًا باستخدام مفتاح مخصص خصيصًا (فاصل افتراضيًا). يمكن لمفتاح منفصل (Scroll Lock) تغيير حالة الكلمات (العلوي، السفلي، الحرف الأول علوي، والباقي أقل). يتذكر مؤشر تبديل تخطيط لوحة المفاتيح حالته لكل نافذة، لذلك إذا كنت تقوم بالتبديل بين التطبيقات بشكل متكرر، فلن تحتاج بعد الآن إلى تغيير التخطيط بشكل إضافي. البرنامج يتمتع بقدرات كبيرة وأنصحك بإلقاء نظرة عليه. يتم إجراء كافة الإعدادات باستخدام برنامج رسومات مبني على مكتبات GTK+. تم اختبار Sven على Linux، ولكن من حيث المبدأ يجب أن يعمل على أنظمة *BSD. يستخدم مدير النوافذ
لا يهم.

تعد إمكانيات KeyTouch (keytouch.sf.net) أكثر تواضعًا إلى حد ما؛ حيث يتم استخدام هذه الأداة المساعدة حصريًا لإعداد مفاتيح الوسائط المتعددة. على الرغم من أنه يمكنك من خلال مساعدته تعيين إجراء مختلف لأي مفتاح يختلف عن الإعدادات الافتراضية. على موقع البرنامج، بالإضافة إلى النصوص والحزم المصدرية لبعض التوزيعات، يمكنك العثور على إعدادات جاهزة للوحات مفاتيح الوسائط المتعددة من معظم الشركات المصنعة المعروفة.

حل آخر مثير للاهتمام - xbindkeys (hocwp.free.fr/xbindkeys/xbindkeys.html) - يسمح لك بتعيين أي أوامر، بما في ذلك أوامر shell، لأي زر لوحة مفاتيح أو ماوس. يتم إجراء جميع الإعدادات في ملف التكوين، والذي يحتوي على تنسيق بسيط ومفهوم.

ما دفعني للعمل على جهاز من هذا النوع هو أن أغلب أجهزة Gamemort سهلة التكرار لم تكن تسمح بتنفيذ عدد كافي من أزرار التحكم. تم تصميم منفذ ألعاب الكمبيوتر في الأصل لأربعة أزرار كحد أقصى. جميع أنواع الامتدادات أيضًا لا تتمتع بالمرونة المطلوبة. على سبيل المثال، يتيح لك ملحق CH Flightstick Pro، الشائع بين محبي الأعمال اليدوية، تنفيذ ما يصل إلى 14 زرًا، ولكن لا يمكنك استخدام أي زرين في نفس الوقت - حول الطيران على مثل هذه الأجهزة في الألعاب التي يتعين عليك فيها "تحويل "الرأس" - في نفس الطيور يمكنك أن تنسى. تستخدم بعض الملحقات واجهة رقمية بحتة - يتم نقل البيانات حول الأزرار المضغوطة وانحراف المقبض عبر خطوط منفذ الألعاب الرقمية، والتي كانت تهدف في الأصل إلى نقل البيانات حول الأزرار الأربعة "القياسية". حتى أنني أعتبر مثل هذه الامتدادات زائدة عن الحاجة إلى حد ما. كما أن تحويل البيانات التناظرية إلى رقمية يؤدي إلى تعقيد تصميم عصا التحكم. بالإضافة إلى ذلك، لا تريد كل لعبة أن تفهم نوع الوحش "المرتبط" بها. ولوحة المفاتيح - ها هي، بكل مجدها المكون من 102 مفتاحًا! بالإضافة إلى ذلك، أضاف المشتركون في RU.GAME.FLIGHT الزيت على النار، ويسألون من وقت لآخر "كيف يمكنني ترويض لوحة المفاتيح وعبورها بالفرح؟" ويغادر بلا شيء.

باختصار، تتمثل مهمة الجهاز في "الجلوس" على الناقل بين لوحة المفاتيح والكمبيوتر ومحاكاة الضغط على المفاتيح على لوحة المفاتيح وفقًا لأزرار الجهاز التي يتم الضغط عليها.

لذلك جلست لتطويره. قبل ذلك، كانت لدي خبرة في العمل مع العديد من المعالجات الدقيقة ووحدات التحكم الدقيقة. بشكل عام - الأصابع من الأذن إلى الأذن. واعتقدت بسذاجة أنني الآن سأتولى الأرصفة وأقوم بـ RTFM وفي غضون أسبوع سأكون على حصان أبيض. كانت المشكلة برمتها هي أنني لم أتمكن من العثور على وثائق حول بروتوكول نقل البيانات بين لوحة المفاتيح ووحدة التحكم سواء على الإنترنت أو في مؤتمرات Fido ذات الصلة. اضطررت إلى أخذ راسم الذبذبات وقضاء عدة أسابيع في تفكيك الهياكل المؤقتة ومحاولة تكرارها. ولذلك، فإن معظم المعلومات الواردة أدناه هي نتيجة لاستنتاجاتي وغير موثقة. إذا كنت مخطئًا بشأن شيء ما، سأكون سعيدًا لسماع تعليقاتك على راشبيلفي المملكة المتحدةنقطة شبكة.

المبادئ الأساسية لنقل البيانات

ينطبق كل ما يلي على لوحات المفاتيح PS/2 وAT، والتي تختلف فقط في تصميم الموصل (يمكن توصيله عبر محول).

يتم تبادل البيانات في اتجاهين بين لوحة المفاتيح ووحدة التحكم الموجودة على اللوحة الأم للكمبيوتر (يشار إليها فيما يلي ببساطة باسم "وحدة التحكم"). ترسل وحدة التحكم أوامر مختلفة (على سبيل المثال، تغيير حالة مصابيح LED أو سرعة التكرار التلقائي). تنقل لوحة المفاتيح رموز المسح للمفاتيح التي تم الضغط عليها (رمز المسح هو رمز للمفتاح، ويجب عدم الخلط بينه وبين رموز ASCII).

رموز المسح

مفتاح رمز المسح مفتاح رمز المسح مفتاح رمز المسح مفتاح رمز المسح
1 16 2 1E 3 26 4 25
5 2E 6 36 7 3D 8 3E
9 46 0 45 - 4E + 55
مسافة للخلف 66 فاتورة غير مدفوعة 0 د س 15 دبليو
ه 24 ر 2D ت ي 35
ش أنا 43 يا 44 ص 4 د
[ 54 ] 5 ب يدخل 5 أ السيطرة (L) 14
أ 1C س 1 ب د 23 F 2 ب
ز 34 ح 33 ج 3 ب ك 42
ل 4 ب ; " 52 ` 0E
التحول (L) 12 \ 61 ز 1 أ X 22
ج 21 الخامس 2 أ ب 32 ن 31
م 3 أ , 41 . 49 / 4 ا
التحول (ص) 59 البديل (ل) 11 فضاء 29 Caps lock 58
خروج 76 F1 05 F2 06 F3 04
F4 0 درجة مئوية F5 03 F6 F7 83
F8 F9 01 F10 09 F11 78
F12 07 قفل التمرير 7E * قفل الأرقام 77
7 8 75 9 7 د - 7 ب
4 6 ب 5 73 6 74 + 5 أ
1 69 2 72 3 7 أ 0 70
. 71 آلر(ص) إي0-11 السيطرة (ص) E0-14 شاشة الطباعة E0-12-E0-7C
إدراج E0-70 يمسح E0-71 غادر E0-6B بيت E0-6C
نهاية E0-69 أعلى E0-75 تحت E0-72 صفحة لأعلى E0-7D
اسفل الصفحة E0-7A يمين E0-74 يدخل E0-5A / E0-4A

ملحوظة: تحتوي لوحة المفاتيح AT في الواقع على ثلاث مجموعات مختلفة من رموز المسح الضوئي. لقد أعطيت فقط قيم المجموعة رقم 2 - القيمة الافتراضية.

عندما تضغط على أحد المفاتيح، تقوم لوحة المفاتيح بإرسال رمز المسح الخاص بهذا المفتاح إلى وحدة التحكم. عند الإصدار، قم أولاً بالبادئة 0F0h، ثم رمز المسح الضوئي للمفتاح الذي تم إصداره.

يتم إرسال مجموعات المفاتيح مع Shift وAlt وCtrl كسلسلة من رمزي المسح. من وجهة نظر وحدة التحكم، لا تختلف هذه المفاتيح عن أي مفاتيح أخرى. بنفس الطريقة، لا يختلف وضعا Num Lock وCaps Lock على مستوى الأجهزة - بل يختلفان على مستوى البرنامج حسب البرنامج الذي يخدم مقاطعة لوحة المفاتيح.

أود أن أناقش بإيجاز تنفيذ وضع التكرار التلقائي. كقاعدة عامة، يتم تعيين وظائف التكرار التلقائي إلى لوحة المفاتيح نفسها - بعد وقت معين، إذا لم يتم تحرير المفتاح، ترسل لوحة المفاتيح رمز المسح الضوئي نفسه تمامًا. إذا قمت بالضغط على مفتاح آخر في هذا الوقت، فسوف "ينتقل" رمز مسح ضوئي آخر إلى وحدة التحكم وسيتم اعتبار أنه تم الضغط على مفتاح واحد فقط. في الألعاب، يتم حل هذه المشكلة ببساطة - يعتبر المفتاح مضغوطا حتى وصول رمز المسح المقابل مع البادئة 0F0h. لذلك، لم أقم بتنفيذ وظائف التكرار التلقائي من حيث المبدأ.

بالإضافة إلى رموز المسح المذكورة أعلاه، يمكن للوحة المفاتيح إرجاع بعض أوامر الخدمة. لكن هذه الأوامر، وكذلك الأوامر الصادرة عن وحدة التحكم، ليس لها أي قيمة عملية في هذه الحالة. ولذلك، لن أتطرق إليهم.

وصف بروتوكول التبادل

يتم تبادل البيانات بين لوحة المفاتيح ووحدة التحكم بشكل غير متزامن باستخدام بروتوكول تسلسلي. جوهر النقل غير المتزامن هو أن البيانات يتم نقلها فقط عندما يكون هناك شيء يمكن نقله - يتم الضغط على/تحرير مفتاح على لوحة المفاتيح ويجب إصدار رمز المسح المقابل أو تحتاج وحدة التحكم إلى إصدار أمر إلى لوحة المفاتيح.

هناك خطين لتبادل البيانات - KBData وKBSync. عند إرسال رموز المسح، تقوم لوحة المفاتيح بتعيين البت التالي من البيانات على خط KBData وتؤكد الإرسال عن طريق نقل الإشارة من "1" إلى "0" على خط KBSync. عند تلقي البيانات من وحدة التحكم، تقرأ لوحة المفاتيح بت البيانات من خط KBData وتؤكد الاستقبال عن طريق نقل الإشارة على خط KBSync من "1" إلى "0". يمكن لوحدة التحكم الإشارة إلى عدم استعدادها لإرسال/استقبال البيانات بمستوى منخفض على خط KBSync. وفي بقية الأوقات، عندما لا تكون هناك بيانات للإرسال، يكون لدى كلا الخطين مستوى إشارة مرتفع. يبلغ معدل تكرار النبض لخط KBSync حوالي 10-25 كيلو هرتز.

يتم إرسال البيانات بالترتيب التالي: بتة بداية واحدة - "0"، وثمانية بتات بيانات، وبتة تكافؤ (مجموع كل البتات +1)، وبتة توقف واحدة - "1". بعد تلقي كل بايت من البيانات، تقوم وحدة التحكم بتعيين خط KBSync على مستوى منخفض، مما يشير إلى أنها مشغولة بمعالجة البيانات المستلمة وليست جاهزة لاستقبال البيانات التالية. ويمكن اعتبار هذا تأكيدا للقبول. تؤكد لوحة المفاتيح كل بايت من الأمر المستلم عن طريق إصدار الكود 0FAh. في حالة حدوث خطأ أثناء الإرسال، قد تطلب وحدة التحكم تكرار إرسال البايت الأخير عن طريق إصدار الأمر 0FEh. تتصرف لوحة المفاتيح بشكل مختلف - فهي ببساطة تتجاهل الأخطاء. لا أرى أي شيء قاتل في هذا - إذا كان نظامك يتعطل بشكل متكرر، فلا مكان له على سطح المكتب.

على الأرجح، كانت تفسيراتي مربكة للغاية، لذلك سأحاول توضيحها باستخدام مخططات زمنية متعددة.

عرض عام لنقل البيانات من لوحة المفاتيح (S1 - بت البداية؛ S2 - بت التوقف؛ D0-D7 - البيانات؛ P - بت التكافؤ؛ W - معالجة البيانات المستلمة)

مثال على نقل البايت لمدة 74 ساعة - المفتاح "6" الموجود على لوحة الأرقام. في هذا المثال، عندما تبدأ عملية النقل بواسطة لوحة المفاتيح، تشير وحدة التحكم إلى أنها غير جاهزة لتلقي البيانات وتنتظر لوحة المفاتيح حتى يصبح خط KBSync مجانيًا

تنفيذ الأجهزة

الآن سأنتقل مباشرة إلى وصف تنفيذ الجهاز في الأجهزة.

يتم توصيل الجهاز بفاصل إشارات KBSync وKBData ويمرر الإشارات من/إلى لوحة المفاتيح من خلال نفسه، ويستقصي حالة الأزرار الأربعة ويصدر رموز المسح المقابلة، وبالتالي محاكاة تشغيل لوحة المفاتيح.

يعتمد الجهاز على متحكم دقيق أحادي الشريحة AT89C2051. ينتمي متحكم AT89C2051 من Atmel إلى عائلة MCS-51 (نظيره المحلي هو MK-51). والفرق الرئيسي بين AT89C2051 وi8051 هو انخفاض استهلاك الطاقة، وتقليل عدد خطوط الإدخال/الإخراج إلى 15، وعدم القدرة على استخدام الذاكرة الخارجية. يمكن العثور على مزيد من المعلومات حول AT89C2051 وi8051 على www.atmel.com وwww.intel.com. بدلاً من AT89C2051، يمكنك استخدام AT89C51 أو i8051 (KR1816BE51) أو i8031 (KR1816BE31) مع ROM خارجي. لكن الخيارين الأخيرين، بسبب زيادة استهلاكهما للطاقة، يمكن أن يؤديا إلى انفجار فتيل وحدة تحكم لوحة المفاتيح.

في وحدات التحكم الدقيقة Atmel، بعد التعيين الرئيسي، تتم الإشارة إلى الحد الأقصى لتردد مولد الساعة بالميغاهيرتز. أنصحك بتثبيت متحكم مصمم لتردد 24 ميجا هرتز وكوارتز بتردد أعلى - 16-20 ميجا هرتز.

رسم تخطيطى. (R1-R4 - 47K؛ R5 - 10K؛ C1، C2 - 18pF؛ C3 - 1 فائق التوهج؛ D1 - AT89C2051؛ BQ1 - كوارتز 12-24 ميجا هرتز)

يتم استخدام السطر P1.4 كإخراج تمكين استقصاء الزر. يعد هذا أساسًا للتوسعات المستقبلية - سيتم استخدام الأسطر P1.4-P1.7 لإصدار عنوان الخط لاستقصاء الأزرار المضغوطة (ما يصل إلى 16 سطرًا يتكون كل منها من 4 أزرار). "0" على السطر P1.0-P1.3 يعني أنه تم الضغط على الزر المقابل.

يقوم العنصران C3 وR5 بتنفيذ دائرة تولد إشارة إعادة ضبط عند تطبيق الطاقة.

يتم توفير خطوط KBData من لوحة المفاتيح ووحدة التحكم إلى المدخلات P3.2 (INT0) وP3.3 (INT1). وبالتالي، فإن محاولة بدء نقل البيانات من لوحة المفاتيح أو وحدة التحكم تؤدي إلى حدوث مقاطعة مقابلة. إن الإجراءات الروتينية لخدمة هذه المقاطعات تبث ببساطة إشارات تتوافق مع نقل بايت واحد عبر وحدة التحكم الدقيقة. عندما لا يكون وحدة التحكم الدقيقة مشغولة بإرسال البيانات، يتم استقصاء الخطوط P1.0-P1.4، وتتم معالجة البيانات المستلمة وإصدار رموز المسح المقابلة إلى وحدة التحكم. يعطي هذا الإصدار الأولوية للبيانات المنقولة عن طريق الجهاز نفسه. ولذلك، يمكن في بعض الأحيان فقدان بيانات لوحة المفاتيح.

في ختام هذا القسم، سأقدم دبوسًا لموصلات لوحة المفاتيح AT وPS/2.

إشارة -KBReset هي إشارة اختيارية. قد تستخدم بعض وحدات التحكم هذا لإعادة ضبط لوحة المفاتيح.

نص البرامج الثابتة

أقدم النص المصدر للبرنامج الثابت لوحدة التحكم الدقيقة AT89C2051 على أمل أن يتمكن القارئ الفضولي من تصحيحي أو تكييف البرنامج للعمل مع نوع آخر من وحدات التحكم الدقيقة.

Org 0 sjmp start org 3 jmp from_keyboard ; INT0 org 13h jmp to_keyboard ; INT1 ابدأ الحركة a,#5 ; تحديد نوع المقاطعة mov tcon,a ; INT0 وINT1 في المقدمة - mov a,#0 ; الانتقال من "1" إلى "0" mov ip,a mov a,#85h mov ie,a mov a,#0ffh ; يتم تخزين آخر mov 6,a في العنوان 06h؛ الكود المعالج clr p1.4؛ تمكين حلقة الاستقصاء mov a,p1 ; تتم قراءة حالة الأزرار anl a,#15؛ - البتات الأربعة الأقل أهمية للمنفذ P1؛ د0 - أعلى؛ د1 - صحيح؛ D2 - أسفل؛ D3 - اليسار mov dptr,#hat_table ; قراءة البيانات حول أربعة أزرار movc a,@a+dptr ; ووسعت إلى ثمانية اتجاهات؛ د0 - أعلى؛ د1 - صحيح؛ D2 - أسفل؛ د3 - يسار؛ D4 - إلى اليمين؛ D5 - من اليمين إلى الأسفل؛ D6 - من اليسار إلى الأسفل؛ D7 - الحركة اليسرى للأعلى r2,a ; حفظ البيانات mov r0,a xrl a,6 ; إذا كانت البيانات الجديدة لا تختلف عن حلقة JZ؛ تم استلامه في الدورة السابقة - كرر الاستطلاع mov r1,#8 ; حلقة لثمانية بتات، حلقة 3 jnb acc.7، حلقة 2؛ "1" - كان هناك تغيير في دفع acc mov a,r1 mov dptr,#key_table-1 ; قم باستخراج رمز المسح المقابل movc a,@a+dptr Push acc mov a,r0 ; تسجيل R0 - علامة الضغط/التحرير rlc a ؛ تمت محاكاة المفتاح mov r0,a ؛ "1" - تم إصدار "المفتاح" pop acc mov acc.7,c ; إذا كان D7=1 - سيسبق رمز المسح 0f0h acall send_key ؛ إصدار رمز المسح الضوئي pop ac sjmp حلقة 2a حلقة 2 دفع ac mov a,r0 rlc a mov r0,a pop ac loop2a rl a djnz 1,loop3 mov 6,r2 sjmp حلقة send_key mov ie,#80h ; تعطيل المقاطعات acall send2comp ; إرسال رمز المسح الضوئي mov ie,#85h ; تم تمكين المقاطعات ret send2comp jnb acc.7,send ؛ إذا لزم الأمر، 0f0h دفع acc mov a,#0f0h acall إرسال pop ac clr acc.7 mov b,#200 l9 nop djnz b,l9 إرسال Push 1 Push 0 clr p3.3 ; P3.3 - KBData mov b,#6 ; إصدار بت البداية l10 nop djnz b,l10 clr p3.5 mov b,#15 l2 nop djnz b,l2 setb p3.5 mov b,#6 l3 nop djnz b,l3 mov r0,#8 ; إخراج ثماني بتات بيانات وعد التكافؤ mov r1,#1 byte_loop xrl 1h,a rrc a mov p3.3,c mov b,#6 l6 nop djnz b,l6 clr p3.5 mov b,#15 l4 nop djnz b, l4 setb p3.5 mov b,#6 l5 nop djnz b,l5 djnz r0,byte_loop mov a,r1 mov c,acc.0 mov p3.3,c ; بت التكافؤ الناتج mov b,#6 l8 nop djnz b,l8 clr p3.5 mov b,#15 l12 nop djnz b,l12 setb p3.5 mov b,#6 l13 nop djnz b,l13 setb p3.3 ; بت توقف الإخراج mov b,#6 l7 nop djnz b,l7 clr p3.5 mov b,#15 l11 nop djnz b,l11 setb p3.5 mov b,#200 l14 nop djnz b,l14 setb p3.5 pop 0 البوب ​​1 متراجع from_keyboard ; نقل بايت واحد إلى وحدة التحكم mov ie,#80h Push psw Push acc Push b mov b,#2 in6 jnb p3. 4,in8 djnz b,in6 sjmp in7 in8 mov b,#10 in1 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in1 in2 mov a,p3 rl a orl a,#11010111b mov p3,a jb p3.4,in2 djnz b,in1 in3 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in3 mov p3,#0ffh in4 jb p3.5,in4 in5 jnb p3 .3,in7 clr p3.4 jnb p3.5,in5 in7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov ie,#85h reti to_keyboard ; نقل بايت واحد إلى لوحة المفاتيح mov ie,#80h Push psw Push ac Push b mov b,#5 out61 jb p3.5,out7 djnz b,out61 setb p3.4 setb p3.2 out62 jnb p3.5,out62 out6 mov c ,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out6 out8 mov b,#10 out1 mov c,p3.4 mov p3.5,c mov c , p3.3 mov p3.2,c jnb p3.4,out1 out2 mov c,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out2 djnz b, out1 out3 mov c,p3.4 mov p3.5,c mov c,p3.2 mov p3.3,c jnb p3.2,out3 out7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov على سبيل المثال، #85h reti hat_table؛ جدول لتوسيع البيانات المقروءة من المنفذ P1؛ الفهرس الموجود في الجدول عبارة عن رمز ثنائي مكون من أربعة بتات؛ البيانات - حالة المفاتيح الثمانية التي تمت محاكاتها؛ "0" - تم الضغط على المفتاح db 0ffh؛ left+right+up+down=مجموعة محظورة db 0ffh ; left+right+down=مجموعة محظورة db 0ffh ; left+up+down=مجموعة محظورة db 0bfh ; left+down=left-down db 0ffh ; left+right+up=مجموعة محظورة db 0ffh ; يسار + يمين = تركيبة محظورة db 07fh ; left+up=left-up db 0f7h ; اليسار ديسيبل 0ffh ; right+up+down=مجموعة محظورة db 0dfh ; down+right=down-right db 0ffh ; up+down=مجموعة محظورة db 0fbh ; أسفل ديسيبل 0efh ; right+up=right-up db 0fdh ; الحق ديسيبل 0feh ; ما يصل ديسيبل 0ffh ; لم يتم الضغط على أي أزرار key_table ; جدول كود المسح الضوئي 75 ساعة؛ لوحة رقمية 8 ديسيبل 74 ساعة؛ لوحة رقمية 6 ديسيبل 72 ساعة؛ لوحة رقمية 2 ديسيبل 6bh؛ لوحة رقمية 4 ديسيبل 7dh ؛ لوحة رقمية 9 ديسيبل 7ah ؛ لوحة رقمية 3 ديسيبل 69 ساعة؛ لوحة رقمية 1 ديسيبل 6 قنوات؛ اللوحة الرقمية 7

ستجد في أرشيف Tools.zip برنامجين: a51.exe - مجمع، Hex2bin - محول الملفات السداسية، التي يتم الحصول عليها عند إخراج المجمع، إلى تنسيق ثنائي مناسب لتحديث ذاكرة القراءة فقط لوحدة التحكم الدقيقة باستخدام مبرمج .

التجميع واستكشاف الأخطاء وإصلاحها

يمكنك تجميع الجهاز وفقًا للمخطط أعلاه على اللوح أو اللوح المحفور في المنزل أو المصنع صناعيًا. يجب وضع مقبس تحت الميكروكونترولر. من الأفضل ترك مساحة على اللوحة لـ 2-3 حزم DIP ذات 16 سنًا - سيتم إضافتها في الإصدارات اللاحقة.

بعد ذلك، بعد إجراء التغييرات المطلوبة، يتم تجميع النص المصدر للبرنامج الصغير باستخدام برنامج a51.exe. لفلاش البرنامج الثابت باستخدام المبرمج، يتم تحويل الملف السداسي الناتج إلى صورة ثنائية بواسطة برنامج hex2bin.exe.

بعد تجميع الجهاز بالكامل، نقوم بتوصيله بلوحة المفاتيح والكمبيوتر. ثلاثة... اثنان... واحد... هيا بنا!.. الجهاز الذي تم تجميعه بشكل صحيح من مكونات جيدة معروفة يجب أن يعمل على الفور. إذا لم يكن الأمر كذلك، فتحقق من التثبيت الصحيح ووجود الطاقة على وحدة التحكم الدقيقة. باستخدام راسم الذبذبات، تحقق مما إذا كان مولد الساعة قد بدأ وما إذا كانت النبضة عالية المستوى تصل إلى مدخل RST عند تشغيل الطاقة. عند الضغط على المفاتيح الموجودة على لوحة المفاتيح، يجب أن تتكرر النبضات على الخطين P3.3 وP3.5، مع بعض التأخير، النبضات على الخطين P3.2 وP3.4، على التوالي. عندما تضغط/تحرر أزرار الجهاز، يجب أن تظهر النبضات أيضًا على الخطين P3.3 وP3.5. إذا لم يساعد هذا، اكتب لي ( راشبيلفي ميناءنقطة رو) تقرير الأخطاء، مع الإشارة إلى طراز ونوع (AT، PS/2) للوحة المفاتيح واللوحة الأم/البطاقات المتعددة ووحدة التحكم الدقيقة المستخدمة وتردد مرنان الكوارتز المستخدم. حاولت اختبار الجهاز بأقصى عدد متاح لي من اللوحات الأم ولوحات المفاتيح - ولم يتم تحديد أي مشاكل. في حالتي، تم استخدام الكوارتز 14.2 ميغاهيرتز.

الأخطاء المعروفة

يحتوي الإصدار الحالي من البرنامج الثابت على العيوب التالية:

  • لا يتم تعقب رموز المسح مزدوجة البايت. يؤدي هذا إلى حقيقة أنه في بعض الأحيان، عند استخدام الكوخ ولوحة المفاتيح في نفس الوقت، فإن مفاتيح لوحة المفاتيح "تتجمد" عند الضغط عليها أو يُنظر إليها بشكل غير صحيح؛
  • في بعض الأحيان يتم نقل البيانات بشكل غير صحيح من وحدة التحكم إلى لوحة المفاتيح. يمكن التعبير عن ذلك، على سبيل المثال، في حقيقة أن مصابيح LED لا تغير حالتها عند الضغط على مفاتيح Num Lock وCaps Lock وScroll Lock؛
  • قعقعة الاتصالات من أزرار الكوخ. حتى الآن لم يكن هذا قاتلاً بالنسبة لي في الألعاب.

خطط مستقبلية

فيما يلي قائمة قصيرة بما أود تنفيذه في الإصدارات المستقبلية:

  • إصلاحات طفيفة - معالجة أكثر دقة للإشارات؛ تتبع رموز المسح مزدوجة البايت؛
  • اتصال مصفوفة 16x4 - دعم ما يصل إلى 64 زرًا أو كوخين وما يصل إلى 56 زرًا؛
  • يدعم ما يصل إلى 16 تخطيطًا مختلفًا لرمز المسح المخزن في ذاكرة القراءة فقط (ROM) لوحدة التحكم الدقيقة؛
  • توصيل شريحة NVRAM مع إمكانية حفظ وإعادة برمجة ما يصل إلى 32 تخطيطًا لرمز المسح الضوئي "أثناء التنقل".

خاتمة

حاولت تقديم جميع البيانات اللازمة لفهم مبدأ تشغيل جهازي. لا يدعي هذا الوصف أنه دقيق تقنيًا بنسبة 100%. إذا كنت مخطئًا بشأن شيء ما، من فضلك أخبرني بنسختك للأحداث. إذا كان بإمكانك إجراء تحسينات وإضافات على دائرتي و/أو البرامج الثابتة، وإذا كانت لديك أفكار لمزيد من التطوير للدائرة، فيرجى إبلاغي بذلك أيضًا. بالإضافة إلى ذلك، أنا في انتظار معلومات من الحرفيين الذين تمكنوا من تكرار هذا الجهاز أو تكييفه مع أنواع أخرى من وحدات التحكم الدقيقة.

فلاديمير "راسب" كليموس (راشبيلفي المملكة المتحدةنقطة شبكة)

يعتمد رقم المفتاح الذي يرسله معالج لوحة المفاتيح بشكل فريد على تخطيط مصفوفة لوحة المفاتيح، ولكن ليس على التسميات المطبوعة على سطح المفاتيح. ويسمى هذا الرقم رمز المسح الضوئي. تؤكد كلمة المسح الضوئي ("المسح الضوئي") على حقيقة أن كمبيوتر لوحة المفاتيح يقوم بمسح لوحة المفاتيح للعثور على المفتاح المضغوط.

تم الضغط على رمز Ascii للمفتاح

عادةً، لا يحتاج البرنامج إلى الرقم التسلسلي للمفتاح الذي تم الضغط عليه، ولكن إلى الرمز المطابق للتسمية الموجودة على هذا المفتاح (رمز ASCII).

لا يرتبط رمز ASCII مباشرة برمز المسح، حيث يمكن أن يحتوي نفس المفتاح على قيم رمز ASCII متعددة اعتمادًا على حالة المفاتيح الأخرى. على سبيل المثال، يتم أيضًا استخدام المفتاح المسمى "1" لإدخال الحرف "!" (إذا تم الضغط عليه مع المفتاح ).

لذلك، يتم تنفيذ جميع رموز المسح الضوئي لتحويلات ASCII في البرنامج. عادةً، في نظام التشغيل MS-DOS، يتم تنفيذ هذه التحويلات بواسطة وحدات BIOS. لاستخدام الأحرف السيريلية، يتم توسيع هذه الوحدات باستخدام برامج تشغيل لوحة المفاتيح، وكلاهما مضمن في الإصدارات المترجمة من MS-DOS ويتم إنشاؤهما كبرامج منفصلة.

وضع التكرار التلقائي

إذا قمت بالضغط مع الاستمرار على أحد المفاتيح، فستدخل لوحة المفاتيح في وضع التكرار التلقائي. في هذه الحالة، يتم إرسال رمز المفتاح المضغوط تلقائيًا إلى الكمبيوتر بعد فترة زمنية معينة، تسمى فترة التكرار التلقائي. يعمل وضع التكرار التلقائي على تسهيل إدخال عدد كبير من الأحرف المتطابقة من لوحة المفاتيح.

وتجدر الإشارة إلى أن لوحة المفاتيح تحتوي على مخزن داخلي سعة 16 بايت تتواصل من خلاله مع الكمبيوتر.

أنواع لوحات المفاتيح

حتى وقت قريب، كان هناك ثلاثة أنواع مختلفة من لوحات المفاتيح. هذه هي لوحة مفاتيح IBM PC/XT، ولوحة مفاتيح IBM PC/AT ذات 84 مفتاحًا، ولوحة مفاتيح IBMPC/AT ذات 101 مفتاحًا (موسعة). تحتوي بعض لوحات المفاتيح على مفتاح وضع التشغيل (XT/AT) الموجود على الغطاء السفلي. يجب تثبيته في الموضع الصحيح.

بعد انتشار نظام التشغيل Microsoft Windows على نطاق واسع، تم إنشاء نوع جديد من لوحة المفاتيح خصيصًا له. تمت إضافة زرين إلى لوحة مفاتيح IBMPC/AT التقليدية، الأول منهما يكرر الاتصال بقائمة "ابدأ"، ويتم إجراؤه باستخدام زر الماوس الأيسر، والثاني، استدعاء نفس القائمة باستخدام زر الماوس الأيمن.

منافذ لوحة المفاتيح

يعتمد الغرض من المنافذ المخصصة للاستخدام مع لوحة المفاتيح على نوع الكمبيوتر.

كمبيوتر آي بي إم بي سي/إكس تي

للعمل مع لوحة مفاتيح IBM PC/XT، يتم استخدام المنافذ ذات العناوين 60h و61h.

المنفذ 60h للقراءة فقط. بعد اكتمال هذه العملية، فإنه يحتوي على رمز المسح الخاص بآخر مفتاح تم الضغط عليه.

المنفذ 61h متاح للقراءة والكتابة. فهو لا يتحكم في لوحة المفاتيح فحسب، بل يتحكم أيضًا في أجهزة الكمبيوتر الأخرى، على سبيل المثال، مكبر الصوت المدمج. إذا تمت كتابة القيمة 1 على الجزء الأكثر أهمية من المنفذ 61h، فسيتم قفل لوحة المفاتيح؛ وإذا كانت القيمة 0، فسيتم إلغاء قفل لوحة المفاتيح.

نظرًا لأن المنفذ 61h يتحكم في أكثر من مجرد لوحة المفاتيح، فعند تغيير محتويات البت الأكثر أهمية، يجب عليك حفظ حالة البتات المتبقية في هذا المنفذ. للقيام بذلك، يمكنك أولاً قراءة محتويات المنفذ في السجل، وتغيير حالة البت الأكثر أهمية، ثم كتابة القيمة الجديدة إلى المنفذ.

  1. يوجد شريط بحث أعلى نافذة Google Play. وهذا هو بالضبط ما سوف نستخدمه. نقوم بتنشيط وكتابة اسم تطبيقنا. ليس من الضروري إدخاله على طول الطريق. بمجرد ظهور الكائن المشار إليه في لقطة الشاشة في نتائج البحث، ما عليك سوى النقر عليه.
  1. سيتم إعادة توجيهنا إلى الصفحة الرئيسية للبرنامج. يوجد زر أخضر كبير مكتوب عليه "تثبيت". انقر فوقه.
  1. نحن في انتظار انتهاء تنزيل التطبيق. نظرًا لأن وزنه يقل قليلاً عن 5 ميغابايت، فلن تستغرق العملية الكثير من الوقت.
  1. مستعد. بعد اكتمال التثبيت التلقائي يمكننا تشغيل البرنامج مباشرة من هنا.
  1. سيظهر أيضًا اختصار التشغيل على الشاشة الرئيسية (إذا تم تنشيطه في الإعدادات).

عند هذه النقطة، يكون تثبيت البرنامج قد اكتمل، ويمكننا الانتقال إلى نظرة عامة حول العمل معه.

في لقطة الشاشة أدناه يمكنك رؤية واجهة البرنامج. هنا يتم تقسيمها إلى 3 علامات تبويب رئيسية. يوجد أيضًا رمز إعدادات مصنوع على شكل ترس. يوجد في علامة التبويب "SCAN" الرئيسية 4 أدوات رئيسية:

  • مسح الرمز الشريطى. هذا ماسح ضوئي QR يعمل من خلال الكاميرا؛
  • الدخول اليدوي. وظيفة إدخال بيانات الكود يدويًا؛
  • فك التشفير من الملف. فك التشفير من ملف. من هنا يمكنك فتح رمز QR الذي تم تنزيله مسبقًا وقراءته؛
  • فك التشفير من URL. المسح عن طريق الرابط.

يوجد في الأسفل العديد من الأزرار التي لا توفر وظائف مفيدة. لا يجب أن تنتبه لهم.

دعونا نلقي نظرة على إعدادات البرنامج. هناك الكثير منهم هنا. ستكون هناك لقطات شاشة لمناطق مختلفة من التكوين على شاشتك، ولكننا سنعرض ببساطة بعض النقاط الأكثر إثارة للاهتمام.

على سبيل المثال، في الشاشة الأولى يمكنك تمكين أو تعطيل صوت البرنامج. ويمكن فعل الشيء نفسه مع استجابة الاهتزاز. يمكنك ضبط وضع التشغيل عندما يبدأ تشغيل البرنامج فورًا من الماسح الضوئي، متجاوزًا القائمة الرئيسية. ميزة أخرى مهمة هي النسخ التلقائي للبيانات إلى الحافظة.

بمجرد أن نرغب في بدء المسح وتشغيل الماسح الضوئي نفسه، سيطلب البرنامج الوصول إلى موارد النظام الضرورية. وبطبيعة الحال، لا بد من حلها. انقر فوق الزر المحدد في لقطة الشاشة.

بعد ذلك، نقوم بوضع إطار الماسح الضوئي بحيث يقع الشريط الأفقي مباشرة على QR. حاول ألا تدع يديك تهتز وفي نفس الوقت راقب تركيزك. بدون الحدة العادية، لن ينجح المسح.

لتمكين QR BARCODE SCANNER من العمل في ظروف الإضاءة المنخفضة، توجد إضاءة خلفية.

بمجرد التعرف على الرمز، سترى المعلومات الموضحة في لقطة الشاشة أدناه.

بالإضافة إلى مسح QRs ضوئيًا، يمكنك أيضًا إنشاؤها هنا. للقيام بذلك، انتقل إلى علامة التبويب الثالثة. لقد وضعنا علامة عليها في لقطة الشاشة. تعرض القائمة جميع أنواع البيانات التي يمكن تشفيرها. يتم دعم ما يلي:

  • دليل الهاتف الاتصال؛
  • رقم التليفون؛
  • عنوان URL؛
  • بريد إلكتروني؛
  • طلب؛
  • موقع؛
  • أي نص؛
  • إشارة مرجعية؛
  • حدث التقويم.

كل شيء يبدو مثل هذا:

بمجرد تحديد نوع البيانات وتحديده، كل ما علينا فعله هو النقر فوق الزر "تشفير". في هذه الحالة، قمنا بتشفير الرابط.

دعونا نحاول تشفير النص التعسفي أيضًا. للقيام بذلك، حدد العنصر المطلوب.

أدخل العبارة في الحقل المخصص ثم اضغط على زر "تشفير".

النتيجة تبدو رائعة. دعونا أيضا تغيير لونه. انقر فوق الزر المخصص لذلك.

حدد الظل المطلوب من اللوحة.

ونحن معجبون بـ QR المستلم.

دعنا ننتقل إلى البرنامج التالي، والذي يحتوي أيضًا على وظائف رائعة.

QR الروبوت رمز الماسح الضوئي

تطبيق آخر يمكن العثور عليه على Google Play. كما يمكنك تحميله من رابط مباشر على موقع جوجل. في الوقت الحالي، سوف ننظر إلى البرنامج نفسه.

هذا هو ما يبدو عليه اختصار تشغيل QR Droid Code Scanner - انقر عليه.

هذا التطبيق، على عكس التطبيق السابق، مصنوع باللغة الروسية، وبمجرد أن يبدأ، سنحتاج إلى النقر على الزر الذي يقول: "ابدأ".

الماسح الضوئي مرئي على الفور، ولكن أولا دعونا نلقي نظرة على إعداداته. اضغط على الزر الموجود في الزاوية اليمنى العليا.

في القائمة الرئيسية، تظهر 6 مربعات أزرار تعيد توجيه المستخدم إلى القسم المطلوب. ها هم:

لذلك، من أجل استخدام الماسح الضوئي، تحتاج إلى تنشيطه في القائمة الرئيسية، وبالإشارة إلى رمز الاستجابة السريعة، اضغط على زر "قراءة".

هنا يمكنك تحديد شاشة البداية وتعيين عنوان النسخ الاحتياطي وتكوين لغة واجهة البرنامج.

بعد ذلك يمكننا تثبيت آلية المسح. يتم استخدام إحدى الخوارزميات الخاصة: Zapper أو ZXing. يمكنك أدناه تمكين علامة التقاطع أو تعطيلها، وإعداد إجراء تلقائي بعد المسح، وتمكين عرض تلميحات الأدوات أو نسخ الرابط إلى الحافظة.

في هذا القسم، يمكنك تكوين الصوت وتشغيل الاهتزاز وإيقافه. تم أيضًا تكوين عملية تسجيل الإجراءات في السجل والتفاعل مع ساعات Android Wear الذكية.

بعد ذلك سنكون قادرين على تصدير أو استيراد النسخة الاحتياطية أو تحديد التاريخ.

السماح بإرسال بيانات مجهولة المصدر (من الأفضل تعطيلها)، أو تنشيط التحقق من رابط الأمان الذي تم استلامه أثناء المسح، أو تكوين المسح الدفعي. تتوفر أدناه ميزات مثل التكبير/التصغير أو التمييز.

لكن إعداداتنا لا تنتهي عند هذا الحد. بالإضافة إلى الوظائف المذكورة أعلاه، لدينا ما يلي:

  • ضبط اتجاه الشاشة؛
  • العمل مع الكاميرا الأمامية.
  • تحليل الارتباط؛
  • عرض المتاجر.
  • وظيفة الخطأ المطبعي الموسعة؛
  • حظر بعض الأحرف الخاصة؛
  • تفعيل معاينة الويب.
  • البحث عن الصور المحفوظة.

تحتوي شاشة الإعدادات الأخيرة على ميزات مثيرة للاهتمام مثل تحديد الحد الأقصى لعدد المواضع، وتكوين ملفات CSV المخصصة، وهز الساعة الذكية، وحفظ المواضع المكررة.

بالإضافة إلى الإعدادات، يوجد في قائمة QR Droid Code Scanner عنصر يسمى "المزيد". دعونا نفكر في وظيفتها.

إليك الاحتمالات التالية:

دعونا نلقي نظرة على التطبيق الأخير، ولكن ليس أقل وظيفية، في قائمتنا.

NeoReader QR وماسح الباركود

هذا البرنامج كغيره يمكنك تحميله وتثبيته عبر جوجل بلاي أو عبر رابط مباشر. عندما يتم ذلك، يمكنك البدء مباشرة في العمل معه.

في المرة الأولى التي نطلق فيها الخدمة، سنحتاج إلى تلبية طلب الوصول. انقر فوق "السماح".

ثم ستظهر نافذة الإعدادات. هنا يمكنك اختيار اللغة وتحديد بلدك وجنسك وعمرك. يتيح لك مربعا الاختيار أدناه تمكين أو تعطيل وصول البرنامج إلى البيانات الجغرافية.

يمكنك بالفعل بدء المسح. قم بتوجيه الكاميرا نحو رمز الاستجابة السريعة وسوف يتعرف NeoReader QR & Barcode Scanner على محتواه تلقائيًا.

نعتقد أن هذه البرامج الثلاثة كافية تمامًا لأي شخص. اختر الخيار الأكثر ملاءمة لك واستخدمه وفقًا لتقديرك. سنتحدث عن بعض مميزات الأجهزة الصينية.

الوظيفة القياسية

تحتوي بعض الهواتف الذكية والأجهزة اللوحية (حسب العلامة التجارية) على وظيفة مسح رمز الاستجابة السريعة بشكل قياسي، ويمكن القيام بكل شيء بدون تطبيق. لن نقوم بإدراجهم جميعًا، بل سنتطرق فقط إلى الطراز من Xiaomi.

دعونا نلخص ذلك

ونتيجة لذلك، تعلمنا كيفية مسح رمز الاستجابة السريعة ضوئيًا على نظام Android بطرق مختلفة. نأمل أن تكون المقالة مفيدة لك. إذا كان لا يزال لديك أسئلة، اطرحها في التعليقات. سنحاول مساعدة الجميع.

حتى لو لم يحدث ذلك، سيخبرك أحد مستخدمي الموقع بالتأكيد بكيفية الخروج من الموقف وسيقدم لك نصائح عملية. كل ما عليك فعله هو إعادته إلى الحياة.

تعليمات الفيديو

 

قد يكون من المفيد أن تقرأ: