مسابقة#
مقدمة#
تساعدك فئة المنافسة competition في هيكلة مشروع V5 للتحكم الرسمي في المنافسات. فهي تتيح لك تسجيل وظائف لتشغيلها أثناء التحكم الذاتي والتحكم بواسطة السائق، وتوفر فحوصات حالة بسيطة حتى يتمكن الكود الخاص بك من الاستجابة لحالة المباراة (مفعل/معطل، ذاتي/سائق، تحكم ميداني، إلخ).
مُنشئات الفئات#
competition();
مُدمِّر الفئة#
يقوم بتدمير الكائن competition ويحرر الموارد المرتبطة به.
~competition();
حدود#
لا يقبل هذا المُنشئ أي معلمات.
أمثلة#
// Create the competition instance
competition Competition = competition();
الدوال الأعضاء#
تتضمن فئة المنافسة competition:
autonomous— يسجل دالة ليتم استدعاؤها عند بدء الفترة المستقلة.drivercontrol— يسجل دالة ليتم استدعاؤها عند بدء فترة التحكم في السائق.isEnabled— يعيد حالة الروبوت الخاص بك عندما يكون تحت سيطرة المنافسة.isDriverControl— تُرجع ما إذا كانت حالة الروبوت هي تحكم السائق.isAutonomous— تُرجع ما إذا كانت حالة الروبوت مستقلة أم لا.isCompetitionSwitch— تُرجع ما إذا كان مفتاح المنافسة متصلاً.isFieldControl— تُرجع ما إذا كان عنصر التحكم في الحقل متصلاً.
قبل استدعاء أي من دوال الأعضاء competition ، يجب إنشاء مثيل competition ، كما هو موضح أدناه:
// Create the competition instance
competition Competition = competition();
autonomous#
يسجل وظيفة ليتم استدعاؤها عند بدء الفترة المستقلة.
Available Functionsvoid autonomous( void (* callback)(void) );
اسم |
يكتب |
وصف |
|---|---|---|
|
|
مؤشر إلى دالة لا تأخذ أي معلمات ولا تُرجع أي قيمة. سيتم تشغيل هذه الدالة عند بدء فترة التشغيل الذاتي. |
هذه الدالة لا تُرجع قيمة.
Examplesvoid autonomousControl(void) {
// Place automonous code here.
Brain.Screen.clearScreen();
Brain.Screen.print("autonomous");
}
int main(){
// Create competition instance.
competition Competition;
// Set up callback for the autonomous control period.
Competition.autonomous(autonomousControl);
// Prevent main from exiting with an infinite loop.
while (true) {
wait(100, msec);
}
}
drivercontrol#
يسجل وظيفة ليتم استدعاؤها عند بدء فترة التحكم في السائق.
Available Functionsvoid drivercontrol( void (* callback)(void) );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
مؤشر إلى دالة لا تأخذ أي معلمات ولا تُرجع أي قيمة. سيتم تشغيل هذه الدالة عند بدء فترة التحكم في برنامج التشغيل. |
هذه الدالة لا تُرجع قيمة.
Examplesvoid userControl(void) {
Brain.Screen.clearScreen();
// place driver control in this while loop
while (true) {
wait(20, msec);
}
}
int main(){
// Create competition instance.
competition Competition;
// Set up callback for the driver control period.
Competition.drivercontrol(userControl);
// Prevent main from exiting with an infinite loop.
while (true) {
wait(100, msec);
}
}
isEnabled#
يعرض حالة الروبوت الخاص بك عندما يكون تحت سيطرة المنافسة.
Available Functionsbool isEnabled();
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كانت فترة التحكم الذاتي أو التحكم بواسطة السائق نشطة:
true- فترة التحكم الذاتي أو تحكم السائق نشطة.false– لا توجد فترة تحكم نشطة.
isDriverControl#
يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التحكم بواسطة السائق.
Available Functionsbool isDriverControl();
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التحكم بواسطة السائق:
true- الروبوت في وضع التحكم بواسطة السائق.false– الروبوت ليس في وضع التحكم بالسائق.
isAutonomous#
يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التشغيل الذاتي.
Available Functionsbool isAutonomous();
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التشغيل الذاتي:
true– الروبوت في وضع التشغيل الذاتي.false– الروبوت ليس في وضع التشغيل الذاتي.
isCompetitionSwitch#
يُرجع قيمة منطقية تشير إلى ما إذا كان مفتاح التحكم في المنافسة متصلاً أم لا:
Available Functionsbool isCompetitionSwitch();
لا تقبل هذه الدالة أي معلمات.
Notesتتحقق هذه الوظيفة من توصيل مفتاح التحكم في المنافسة. يُستخدم مفتاح التحكم في المنافسة قبل تثبيت نظام التحكم الميداني V5.
يُرجع قيمة منطقية تشير إلى ما إذا كان مفتاح التحكم في المنافسة متصلاً أم لا:
true- مفتاح التحكم في المنافسة متصل.false- مفتاح التحكم في المنافسة غير متصل.
isFieldControl#
يُرجع قيمة منطقية تشير إلى ما إذا كان جهاز التحكم الميداني متصلاً أم لا.
Available Functionsbool isFieldControl();
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كان جهاز التحكم الميداني متصلاً أم لا:
true- وحدة التحكم الميدانية متصلة.false– وحدة التحكم الميدانية غير متصلة.