مسابقة#

مقدمة#

تساعدك فئة المنافسة 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 Functions
void autonomous( void (* callback)(void) );

Parameters

اسم

يكتب

وصف

callback

void (*)(void)

مؤشر إلى دالة لا تأخذ أي معلمات ولا تُرجع أي قيمة. سيتم تشغيل هذه الدالة عند بدء فترة التشغيل الذاتي.

Return Values

هذه الدالة لا تُرجع قيمة.

Examples
void 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 Functions
void drivercontrol( void (* callback)(void) );

Parameters

المعلمة

يكتب

وصف

callback

void (*)(void)

مؤشر إلى دالة لا تأخذ أي معلمات ولا تُرجع أي قيمة. سيتم تشغيل هذه الدالة عند بدء فترة التحكم في برنامج التشغيل.

Return Values

هذه الدالة لا تُرجع قيمة.

Examples
void 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 Functions
bool isEnabled();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

يُرجع قيمة منطقية تشير إلى ما إذا كانت فترة التحكم الذاتي أو التحكم بواسطة السائق نشطة:

  • true - فترة التحكم الذاتي أو تحكم السائق نشطة.

  • false – لا توجد فترة تحكم نشطة.

isDriverControl#

يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التحكم بواسطة السائق.

Available Functions
bool isDriverControl();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التحكم بواسطة السائق:

  • true - الروبوت في وضع التحكم بواسطة السائق.

  • false – الروبوت ليس في وضع التحكم بالسائق.

isAutonomous#

يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التشغيل الذاتي.

Available Functions
bool isAutonomous();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

يُرجع قيمة منطقية تشير إلى ما إذا كان الروبوت في وضع التشغيل الذاتي:

  • true – الروبوت في وضع التشغيل الذاتي.

  • false – الروبوت ليس في وضع التشغيل الذاتي.

isCompetitionSwitch#

يُرجع قيمة منطقية تشير إلى ما إذا كان مفتاح التحكم في المنافسة متصلاً أم لا:

Available Functions
bool isCompetitionSwitch();

Parameters

لا تقبل هذه الدالة أي معلمات.

Notes
  • تتحقق هذه الوظيفة من توصيل مفتاح التحكم في المنافسة. يُستخدم مفتاح التحكم في المنافسة قبل تثبيت نظام التحكم الميداني V5.

Return Values

يُرجع قيمة منطقية تشير إلى ما إذا كان مفتاح التحكم في المنافسة متصلاً أم لا:

  • true - مفتاح التحكم في المنافسة متصل.

  • false - مفتاح التحكم في المنافسة غير متصل.

isFieldControl#

يُرجع قيمة منطقية تشير إلى ما إذا كان جهاز التحكم الميداني متصلاً أم لا.

Available Functions
bool isFieldControl();

Parameters

لا تقبل هذه الدالة أي معلمات.

Return Values

يُرجع قيمة منطقية تشير إلى ما إذا كان جهاز التحكم الميداني متصلاً أم لا:

  • true - وحدة التحكم الميدانية متصلة.

  • false – وحدة التحكم الميدانية غير متصلة.