زر#

مقدمة#

يتم اشتقاق فئة الزر button من الفئة الأساسية brain وتوفر الوصول إلى أزرار IQ (الجيل الثاني) Brain، مما يسمح لروبوتك بمراقبة الضغطات على أزرار الدماغ.

وصول#

يُوفّر الصنف brain اثني عشر كائن زر. كل كائن هو نسخة من الصنف button ويمكن الوصول إليه من خلال نسخة brain.

هدف

مثال على الاستخدام

وصف

buttonCheck

Brain.buttonCheck.pressing()

زر الاختيار

buttonLeft

Brain.buttonLeft.pressing()

الزر الأيسر

buttonRight

Brain.buttonRight.pressing()

الزر الأيمن

ملحوظات#

  • يتم توفير عنصر الزر button بواسطة الدماغ. لا يتم إنشاؤه بشكل مباشر.

الدوال الأعضاء#

تتضمن فئة الزر Button الدوال الأعضاء التالية:

  • pressed — يسجل دالة ليتم استدعاؤها عند الضغط على الزر المحدد.

  • released — يسجل دالة ليتم استدعاؤها عند تحرير الزر المحدد.

  • pressing — تُرجع ما إذا كان يتم الضغط على الزر المحدد.

قبل استدعاء أي من وظائف الأعضاء button ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:

// Create a brain instance
brain();

pressed#

يسجل دالة رد نداء يتم تشغيلها عند الضغط على زر معين في الدماغ.

Available Functions
void pressed( 
  void (* callback)(void) ) const;

Parameters

المعلمة

يكتب

وصف

callback

void (*)(void)

دالة يتم استدعاؤها عند الضغط على الزر المحدد.

Return Values

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

Examples

يمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

عرّف دالة الاستدعاء (خارج نطاق int main())

// Drive forward when check is pressed
void driveForward() {
    Drivetrain.driveFor(forward, 100, mm);
}

قم بتسجيل دالة الاستدعاء داخل الدالة الرئيسية int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call driveForward when the check button is pressed
  Brain.buttonCheck.pressed(driveForward);
}

released#

يسجل دالة رد نداء يتم تشغيلها عند تحرير زر معين في الدماغ.

Available Functions
void released( 
  void (* callback)(void) ) const;

حدود#

المعلمة

يكتب

وصف

callback

void (*)(void)

دالة يتم استدعاؤها عند تحرير الزر المحدد.

Return Values

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

Examples

يمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

عرّف دالة الاستدعاء (خارج نطاق int main())

// Drive backward when the left button is released
void backUp() {
    Drivetrain.driveFor(reverse, 100, mm);
}

قم بتسجيل دالة الاستدعاء داخل الدالة الرئيسية int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call backUp when the left button is released
  Brain.buttonLeft.released(backUp);
}

pressing#

يُرجع ما إذا كان يتم الضغط حاليًا على زر معين في الدماغ.

Available Functions
bool pressing() const;

Parameters

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

Return Values

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

  • true — يتم الضغط على الزر.

  • false — الزر غير مضغوط.

Examples

يمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight
// Turn right while right is pressed
while (true) {
    if (Brain.buttonRight.pressing()) {
        Drivetrain.turn(right);
    } else {
        Drivetrain.stop();
    }
    wait(5, msec);
}