زر#

مقدمة#

يتم اشتقاق فئة الزر button من الفئة الأساسية brain وتوفر الوصول إلى أزرار الدماغ EXP، مما يسمح لروبوتك باكتشاف متى يتم الضغط على أزراره وتحريرها.

وصول#

يُوفّر الصنف button ثلاثة كائنات زر. كل كائن هو نسخة من الصنف button ويمكن الوصول إليه من خلال نسخة من الدماغ.

هدف

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

وصف

buttonCheck

Brain.buttonCheck.pressing()

زر الاختيار

buttonLeft

Brain.buttonLeft.pressing()

الزر الأيسر

buttonRight

Brain.buttonRight.pressing()

الزر الأيمن

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

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

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

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

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

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

// Create the EXP Brain
brain Brain = brain();

pressing#

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

Available Functions
bool pressing() const;

Parameters

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

Return Values

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

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

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

Examples

يمكن استدعاء هذه الدالة على أي عنصر زر، على سبيل المثال:

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

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 the right button 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 right button is pressed
  Brain.buttonRight.pressed(driveForward);
}

released#

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

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

Parameters

المعلمة

يكتب

وصف

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);
}