رسالة#
مقدمة#
يمكن ربط روبوتين من نوع VEX AIM Coding Robots للتواصل أثناء تنفيذ مشروع. تتيح وحدات الرسائل لأحد الروبوتين إرسال رسالة إلى الآخر. يمكن أن تتضمن الرسالة نصًا فقط، أو نصًا متبوعًا برقم.
تُخزَّن الرسائل المستلمة في قائمة انتظار وفقًا لأسلوب “الأول في الأول خارج” (FIFO). وهذا يعني أن أول رسالة يتم استلامها هي أول رسالة ستُقرأ.
استخدم كتلة get latest message لتخزين الرسالة التالية المستلمة. ثم استخدم كتلة latest message لقراءة النص المخزن. إذا كانت الرسالة تتضمن رقمًا أيضًا، فاستخدم get latest message with data لتخزين القيمتين، ثم استخدم latest message وlatest data لقراءتهما.
ملاحظة: لكي يتم إرسال واستقبال الرسائل، يجب ربط كلا الروبوتين ويجب أن يقوم كلا الروبوتين بتشغيل مشاريع تستخدم كتل الرسائل.
فيما يلي قائمة بجميع الكتل:
القيم — اقرأ معلومات الرسالة أو تحقق من حالة الرسالة والاتصال.
آخر رسالة — يعرض آخر رسالة نصية مخزنة.
آخر البيانات — يعرض الرقم المخزن مؤخرًا.
هل الرسالة متاحة؟ — يُبلغ عما إذا كانت الرسالة متاحة للقراءة.
متصل؟ — يُبلغ عما إذا كان الروبوت مرتبطًا بروبوت آخر.
اسم الروبوت المرتبط — يعرض اسم الروبوت المرتبط.
الإجراءات — إرسال الرسائل المستلمة أو تخزينها.
إرسال رسالة — يرسل نصًا إلى الروبوت المرتبط.
إرسال رسالة مع بيانات — يرسل نصًا ورقمًا إلى الروبوت المرتبط.
get latest message — يخزن الرسالة النصية التالية التي تم استلامها.
get latest message with data — يخزن الرسالة النصية التالية المستلمة ورقمها.
قيم#
أحدث الرسائل#
يعرض مُعامل آخر رسالة آخر رسالة نصية مُخزّنة. لا يستقبل هذا المُعامل رسالة جديدة تلقائيًا. استخدم أولًا استرجاع آخر رسالة أو استرجاع آخر رسالة مع البيانات، ثم استخدم آخر رسالة لعرض النص المُخزّن أو استخدمه في مُعامل آخر.
(أحدث رسالة)
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
روبوت 1
عند [مضغوط 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
عند البدء
[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
عند [مضغوط v] الشاشة
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
اطبع [Robot 1] على الشاشة ▶
أرسل رسالة [message]
روبوت 2
عند البدء
[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
عند [مضغوط 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] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
احصل على أحدث رسالة
اطبع (أحدث رسالة) على الشاشة ▶
إرسال رسالة تحتوي على البيانات#
تقوم كتلة إرسال رسالة مع بيانات بإرسال نص ورقم إلى الروبوت المرتبط. استخدم هذه الكتلة عندما تتطلب الرسالة تسمية ورقمًا، مثل إرسال عنوان مع قيمة العنوان الحالية للروبوت. على الروبوت المُستقبِل، استخدم هل الرسالة متوفرة؟ للتحقق من وصول رسالة، ثم استخدم الحصول على أحدث رسالة مع بيانات قبل قراءة النص باستخدام أحدث رسالة والرقم باستخدام أحدث بيانات.
أرسل رسالة [message] مع بيانات [0]
المعلمة |
وصف |
|---|---|
رسالة |
النص المراد إرساله إلى الروبوت المرتبط. |
بيانات |
الرقم الذي سيتم إرساله مع الرسالة. |
مثال
روبوت 1
عند البدء
[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
احصل على أحدث الرسائل#
تقوم كتلة get latest message باستلام الرسالة النصية التالية من قائمة انتظار الرسائل وتخزينها ليتمكن المشروع من استخدامها. استخدم هذه الكتلة بعد أن تُشير الدالة is message available? إلى True وقبل استخدام الدالة latest message. يساعد هذا الروبوت المُستقبِل على حفظ الرسالة قبل محاولة عرضها أو مقارنتها أو استخدامها في كتلة أخرى.
استخدم إرسال رسالة على الروبوت الآخر لإرسال رسالة نصية فقط.
احصل على أحدث رسالة
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
روبوت 1
عند [مضغوط 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] على الشاشة ▶
انتقل للصف التالي على الشاشة
انتظر حتى <هل الرسالة متاحة؟>
احصل على أحدث رسالة
اطبع (أحدث رسالة) على الشاشة ▶
احصل على آخر رسالة مع البيانات#
تستقبل كتلة get latest message with data الرسالة التالية من قائمة انتظار الرسائل وتخزن جزئيها: نص الرسالة والرقم المرفق بها. استخدم هذه الكتلة بعد أن تُشير الدالة is message available? إلى True وقبل استخدام الدالة latest message أو latest data. يساعد هذا الروبوت المُستقبِل على حفظ القيمتين قبل استخدامهما، مثل الانتقال إلى عنوان أرسله روبوت آخر.
استخدم إرسال رسالة مع بيانات على الروبوت الآخر لإرسال النص والرقم معًا.
احصل على أحدث رسالة مع البيانات
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
روبوت 1
عند البدء
[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