C++#
يشرح مرجع واجهة برمجة تطبيقات VEX IQ (الجيل الأول) C++ الفئات والكائنات والمنشئات ووظائف الأعضاء والمتغيرات المستخدمة في مشاريع VEXcode C++.
استخدم هذا المرجع عندما تريد فهم كيفية إنشاء جهاز أو ميزة، أو التحقق من توقيع الدالة المراد استخدامه، أو مقارنة الدوال الأعضاء ذات الصلة في فئة ما.
تُستخدم أوامر لغة C++ في مشاريع VEXcode IQ C++. تختلف صفحات C++ في تنظيمها عن صفحات Blocks لأن العديد من الأوامر تنتمي إلى فئة. قد تشرح الصفحة أولًا الفئة وكيفية إنشاء كائن منها، ثم تسرد الدوال الأعضاء التي يمكن استدعاؤها على هذا الكائن.
كيفية قراءة صفحة فئة C++#
عادةً ما تتبع صفحة فئة C++ هذا الترتيب:
مقدمة - تشرح ما يمثله هذا الفصل ومتى يكون مفيدًا.
الفئات المشتقة - يسرد أي فئات تستند إلى هذه الفئة، إن وجدت.
منشئ الفئة أو منشئو الفئات - يوضح الصيغة المستخدمة لإنشاء كائن من الفئة.
مدمر الفئة - يعرض الصيغة المستخدمة لتدمير الكائن وتحرير موارده، إن وجدت.
المعلمات - يشرح معلمات المُنشئ المستخدمة عند إنشاء الكائن.
مثال - يوضح كيفية إنشاء الكائن في الكود.
وظائف الأعضاء - تسرد الوظائف التي تنتمي إلى الفئة، وغالبًا ما يتم تجميعها حسب الغرض.
مداخل الدوال - يشرح كل دالة عضو، بما في ذلك الدوال المتاحة، والمعلمات، وقيم الإرجاع، والملاحظات، والأمثلة.
لا تحتوي كل صفحة على جميع الأقسام. على سبيل المثال، لا تتضمن بعض الصفحات فئات مشتقة، ولا تحتوي بعض الدوال على معلمات أو قيم إرجاع.
عناصر واجهة برمجة التطبيقات الشائعة في لغة C++#
عنصر |
ماذا يعني ذلك؟ |
|---|---|
فصل |
نوع C++ لجهاز أو ميزة، مثل |
هدف |
مثيل مسمى تم إنشاؤه من فئة، مثل |
المنشئ |
الكود المستخدم لإنشاء كائن من فئة. |
وظيفة العضو |
أمر يتم استدعاؤه على كائن، مثل |
الوظائف المتاحة |
يمكن استخدام توقيع دالة واحد محدد لدالة عضو. بعض دوال الأعضاء لها أكثر من دالة متاحة. |
المَعْلَمة |
قيمة يتم تمريرها إلى مُنشئ أو دالة للتحكم في ما تفعله. |
القيمة المُعادة |
القيمة التي تُرجعها الدالة، مثل |
مفردات لغة C++ الأساسية#
شرط |
ماذا يعني ذلك؟ |
|---|---|
عامل |
اسم يخزن قيمة، مثل |
يكتب |
نوع البيانات التي يخزنها شيء ما، مثل |
خيط |
النص الموجود داخل علامات الاقتباس، مثل |
داخلي |
نوع عدد صحيح موجب أو سالب، مثل |
مزدوج |
نوع رقمي يمكن أن يتضمن فاصلة عشرية، مثل |
bool |
قيمة إما |
دعوى |
قيمة يتم تمريرها إلى دالة عضو أو استدعاء دالة، مثل |
المُنشئات والكائنات#
قبل استخدام الدوال الأعضاء من العديد من فئات C++، يجب أن يكون الكائن موجودًا. يوضح المُنشئ كيفية إنشاء هذا الكائن.
على سبيل المثال، يمكن إنشاء كائن مفتاح المصد عن طريق إعطاء المُنشئ منفذ Smart Port حيث يتم توصيل المستشعر:
bumper Bumper1 = bumper(PORT1);
بعد إنشاء الكائن، يمكن استدعاء وظائفه الأعضاء:
Bumper1.pressing();
في VEXcode، غالبًا ما يتم إنشاء إعدادات الجهاز تلقائيًا بواسطة قائمة الأجهزة. أما في VS Code، فقد يلزم كتابة الدوال البانية يدويًا.
اختيار الوظيفة المناسبة المتاحة#
تحتوي بعض الدوال الأعضاء على أكثر من دالة متاحة. تستخدم كل دالة مجموعة مختلفة من المعاملات، لذا اختر الدالة التي تتوافق مع القيم التي يحتاجها مشروعك.
على سبيل المثال، قد تحتوي وظيفة نظام نقل الحركة على إصدار يستخدم السرعة الحالية وإصدار آخر يسمح للمشروع باختيار السرعة:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
كلا الإصدارين يسميان drive، لكن الإصدار الثاني يوفر تحكمًا أكبر لأنه يتضمن معلمات السرعة.
مثال على إدخال الدالة#
يقود#
يُحرّك الأمر drive الروبوت للأمام أو للخلف باستمرار. سيستمر الروبوت في الحركة حتى يُعطى أمرًا آخر، مثل الانعطاف أو التوقف.
الوظائف المتاحة
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
اتجاه حركة الروبوت: |
|
|
تتراوح سرعة القيادة من 0% إلى 100% عند استخدام |
|
|
وحدة السرعة: |
القيمة المُعادة
هذه الدالة لا تُرجع قيمة.
ملحوظات
محرك الأقراص
driveغير منتظر. سيقوم المشروع بتشغيل سطر التعليمات البرمجية التالي على الفور.سيستمر الروبوت في الحركة حتى يتم استدعاء الأمر
stopأو حتى يتم تشغيل وظيفة حركة أخرى لنظام الدفع.isDoneوisMovingلا يتم استخدامها معdriveلأنdriveليس لها مسافة هدف.
مثال
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
سلوك الانتظار وعدم الانتظار#
تنتظر بعض دوال نقل البيانات في لغة C++ حتى اكتمال إجراء معين قبل أن ينتقل المشروع إلى السطر التالي من التعليمات البرمجية. بينما تبدأ دوال أخرى إجراءً ما وتسمح بتنفيذ السطر التالي فورًا.
الانتظار - ينتظر المشروع حتى تنتهي الوظيفة.
بدون انتظار - يبدأ المشروع الوظيفة وينتقل فورًا إلى السطر التالي.
تتضمن بعض الدوال مُعاملًا مثل waitForCompletion لاختيار هذا السلوك. بالنسبة لهذه الدوال، عادةً ما تجعل القيم true المشروع ينتظر، بينما تسمح القيم false بتنفيذ السطر التالي فورًا.
الأوامر في الأقسام الفرعية#
تُصنَّف أوامر لغة C++ حسب الجهاز أو الموضوع. على سبيل المثال، تُجمَّع أوامر أجهزة Brain و Controller و Drivetrain و Events و Motion و Smart Port و Threads و Logic في أقسام فرعية خاصة بها.