رسالة#

مقدمة#

يمكن ربط روبوتين من نوع VEX AIM Coding Robots للتواصل أثناء تنفيذ مشروع. تتيح وحدات الرسائل لأحد الروبوتين إرسال رسالة إلى الآخر. يمكن أن تتضمن الرسالة نصًا فقط، أو نصًا متبوعًا برقم.

تُخزَّن الرسائل المستلمة في قائمة انتظار وفقًا لأسلوب “الأول في الأول خارج” (FIFO). وهذا يعني أن أول رسالة يتم استلامها هي أول رسالة ستُقرأ.

استخدم كتلة get latest message لتخزين الرسالة التالية المستلمة. ثم استخدم كتلة latest message لقراءة النص المخزن. إذا كانت الرسالة تتضمن رقمًا أيضًا، فاستخدم get latest message with data لتخزين القيمتين، ثم استخدم latest message وlatest data لقراءتهما.

ملاحظة: لكي يتم إرسال واستقبال الرسائل، يجب ربط كلا الروبوتين ويجب أن يقوم كلا الروبوتين بتشغيل مشاريع تستخدم كتل الرسائل.

فيما يلي قائمة بجميع الكتل:

القيم — اقرأ معلومات الرسالة أو تحقق من حالة الرسالة والاتصال.

الإجراءات — إرسال الرسائل المستلمة أو تخزينها.

قيم#

أحدث الرسائل#

يعرض مُعامل آخر رسالة آخر رسالة نصية مُخزّنة. لا يستقبل هذا المُعامل رسالة جديدة تلقائيًا. استخدم أولًا استرجاع آخر رسالة أو استرجاع آخر رسالة مع البيانات، ثم استخدم آخر رسالة لعرض النص المُخزّن أو استخدمه في مُعامل آخر.

آخر الرسائل - حظر الإبلاغ#
(أحدث رسالة)

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

روبوت 1

عند الضغط على الشاشة، يتم إرسال رسالة إلى الروبوت 2.#
عند [مضغوط v] الشاشة
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
أرسل رسالة [Hello, Robot 2!]

روبوت 2

عند بدء التشغيل، يعرض آخر رسالة مخزنة.#
عند البدء
[Code for Robot 2.]
[Display the message Robot 1 sends.]
اطبع [Robot 2] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
احصل على أحدث رسالة
اطبع (أحدث رسالة) على الشاشة ▶

أحدث البيانات#

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

أحدث بيانات تقرير الكتلة#
(أحدث بيانات)

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

روبوت 1

عند بدء التشغيل، يقوم الجهاز بإرسال اتجاه الروبوت 1 باستمرار إلى الروبوت 2.#
عند البدء
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
للأبد
أرسل رسالة [heading] مع بيانات (الاتجاه بالدرجات)
fin

روبوت 2

عند بدء التشغيل، يقوم النظام بمطابقة أحدث البيانات المخزنة.#
عند البدء
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
اطبع [Robot 2] على الشاشة ▶
للأبد
إذا <هل الرسالة متاحة؟> إذن
احصل على أحدث رسالة مع البيانات
استدر نحو الاتجاه (أحدث بيانات) درجة ▶
fin
fin

هل الرسالة متاحة؟#

يُشير مُعامل هل الرسالة مُتاحة؟ المنطقي إلى ما إذا كانت هناك رسالة تنتظر في قائمة انتظار الرسائل. استخدم هذا المُعامل قبل الحصول على أحدث رسالة أو الحصول على أحدث رسالة مع بيانات حتى لا يُحاول الروبوت المُستقبِل تخزين رسالة إلا بعد وصول رسالة.

  • صحيح — هناك رسالة متاحة للقراءة.

  • خطأ — لا توجد رسائل متاحة للقراءة.

هل الرسالة متاحة؟ كتلة منطقية#
<هل الرسالة متاحة؟>

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

روبوت 1

عند الضغط على الشاشة، يتم إرسال رسالة إلى الروبوت 2.#
عند [مضغوط v] الشاشة
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
أرسل رسالة [message]

روبوت 2

عند بدء التشغيل، يعرض رسالة عندما يرسل الروبوت 1 رسالة.#
عند البدء
[Code for Robot 2.]
[Display a message when Robot 1 sends a message.]
اطبع [Robot 2] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
اطبع [Received!] على الشاشة ▶

هل هناك اتصال؟#

يُبلغ مُعامل هل الاتصال؟ المنطقي عما إذا كان الروبوت متصلاً بروبوت آخر. استخدم هذا المُعامل قبل إرسال الرسائل أو انتظارها إذا كان المشروع بحاجة إلى التحقق من جاهزية اتصال الروبوت بالروبوت الآخر.

  • صحيح — الروبوت مرتبط بروبوت آخر.

  • خطأ — الروبوت غير مرتبط بروبوت آخر.

هل هو متصل؟ كتلة منطقية#
<متصل؟>

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

عند بدء التشغيل، يعرض ما إذا كان الروبوت متصلاً أم لا.#
عند البدء
[Turn off one of the linked robots to see the message change.]
للأبد
امسح الشاشة
اطبع <متصل؟> على الشاشة ▶
fin

اسم الروبوت المرتبط#

يُبلغ مُكوّن اسم الروبوت المرتبط عن اسم الروبوت المرتبط. استخدم هذا المُكوّن لعرض الروبوت المتصل قبل إرسال أو استقبال الرسائل. إذا لم يكن هناك روبوت مرتبط، فسيُبلغ هذا المُكوّن عن لا يوجد.

حظر الإبلاغ عن اسم الروبوت المرتبط#
(اسم الروبوت المرتبط)

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

عند بدء التشغيل، يعرض اسم الروبوت المرتبط.#
عند البدء
[Display the name of the robot that is linked.]
اطبع (اسم الروبوت المرتبط) على الشاشة ▶

الإجراءات#

إرسال الرسائل#

تقوم كتلة إرسال رسالة بإرسال نص إلى الروبوت المرتبط. استخدم هذه الكتلة على أحد الروبوتات عندما يحتاج الروبوت الآخر إلى استقبال أمر أو إشارة أو معلومة قصيرة. على الروبوت المُستقبِل، استخدم هل الرسالة متوفرة؟ للتحقق من وصول رسالة، ثم استخدم الحصول على أحدث رسالة قبل قراءتها باستخدام أحدث رسالة.

إرسال رسائل إلى كتلة المكدس#
أرسل رسالة [message]

المعلمة

وصف

رسالة

النص المراد إرساله إلى الروبوت المرتبط.

مثال

روبوت 1

عند الضغط على الشاشة، يتم إرسال رسالة إلى الروبوت 2.#
عند [مضغوط v] الشاشة
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
أرسل رسالة [Hello, Robot 2!]

روبوت 2

عند بدء التشغيل، يعرض الرسالة المرسلة من الروبوت 1.#
عند البدء
[Code for Robot 2.]
[Display the message Robot 1 sends.]
اطبع [Robot 2] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
احصل على أحدث رسالة
اطبع (أحدث رسالة) على الشاشة ▶

إرسال رسالة تحتوي على البيانات#

تقوم كتلة إرسال رسالة مع بيانات بإرسال نص ورقم إلى الروبوت المرتبط. استخدم هذه الكتلة عندما تتطلب الرسالة تسمية ورقمًا، مثل إرسال عنوان مع قيمة العنوان الحالية للروبوت. على الروبوت المُستقبِل، استخدم هل الرسالة متوفرة؟ للتحقق من وصول رسالة، ثم استخدم الحصول على أحدث رسالة مع بيانات قبل قراءة النص باستخدام أحدث رسالة والرقم باستخدام أحدث بيانات.

إرسال رسالة مع كتلة بيانات مكدسة#
أرسل رسالة [message] مع بيانات [0]

المعلمة

وصف

رسالة

النص المراد إرساله إلى الروبوت المرتبط.

بيانات

الرقم الذي سيتم إرساله مع الرسالة.

مثال

روبوت 1

عند بدء التشغيل، يقوم الجهاز بإرسال اتجاه الروبوت 1 باستمرار إلى الروبوت 2.#
عند البدء
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
للأبد
أرسل رسالة [heading] مع بيانات (الاتجاه بالدرجات)
fin

روبوت 2

عند بدء التشغيل، يدور ليطابق الاتجاه الذي أرسله الروبوت 1.#
عند البدء
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
اطبع [Robot 2] على الشاشة ▶
للأبد
إذا <هل الرسالة متاحة؟> إذن
احصل على أحدث رسالة مع البيانات
استدر نحو الاتجاه (أحدث بيانات) درجة ▶
fin
fin

احصل على أحدث الرسائل#

تقوم كتلة get latest message باستلام الرسالة النصية التالية من قائمة انتظار الرسائل وتخزينها ليتمكن المشروع من استخدامها. استخدم هذه الكتلة بعد أن تُشير الدالة is message available? إلى True وقبل استخدام الدالة latest message. يساعد هذا الروبوت المُستقبِل على حفظ الرسالة قبل محاولة عرضها أو مقارنتها أو استخدامها في كتلة أخرى.

استخدم إرسال رسالة على الروبوت الآخر لإرسال رسالة نصية فقط.

احصل على أحدث الرسائل من كتلة المكدس#
احصل على أحدث رسالة

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

روبوت 1

عند الضغط على الشاشة، يتم إرسال رسالة إلى الروبوت 2.#
عند [مضغوط v] الشاشة
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
أرسل رسالة [Hello, Robot 2!]

روبوت 2

عند بدء التشغيل، يقوم بتخزين وعرض الرسالة التي أرسلها الروبوت 1.#
عند البدء
[Code for Robot 2.]
[Display the message Robot 1 sends.]
اطبع [Robot 2] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
احصل على أحدث رسالة
اطبع (أحدث رسالة) على الشاشة ▶

احصل على آخر رسالة مع البيانات#

تستقبل كتلة get latest message with data الرسالة التالية من قائمة انتظار الرسائل وتخزن جزئيها: نص الرسالة والرقم المرفق بها. استخدم هذه الكتلة بعد أن تُشير الدالة is message available? إلى True وقبل استخدام الدالة latest message أو latest data. يساعد هذا الروبوت المُستقبِل على حفظ القيمتين قبل استخدامهما، مثل الانتقال إلى عنوان أرسله روبوت آخر.

استخدم إرسال رسالة مع بيانات على الروبوت الآخر لإرسال النص والرقم معًا.

احصل على أحدث رسالة باستخدام كتلة بيانات المكدس#
احصل على أحدث رسالة مع البيانات

حدود

وصف

لا يحتوي هذا الجزء على أي معلمات.

مثال

روبوت 1

عند بدء التشغيل، يقوم الجهاز بإرسال اتجاه الروبوت 1 باستمرار إلى الروبوت 2.#
عند البدء
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
للأبد
أرسل رسالة [heading] مع بيانات (الاتجاه بالدرجات)
fin

روبوت 2

عند بدء التشغيل، يقوم بتخزين بيانات الرسالة ويتجه ليطابق اتجاه الروبوت 1.#
عند البدء
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
اطبع [Robot 2] على الشاشة ▶
للأبد
إذا <هل الرسالة متاحة؟> إذن
احصل على أحدث رسالة مع البيانات
استدر نحو الاتجاه (أحدث بيانات) درجة ▶
fin
fin