زر#
مقدمة#
يتم اشتقاق فئة الزر button من الفئة الأساسية brain وتوفر الوصول إلى أزرار الدماغ EXP، مما يسمح لروبوتك باكتشاف متى يتم الضغط على أزراره وتحريرها.
وصول#
يُوفّر الصنف button ثلاثة كائنات زر. كل كائن هو نسخة من الصنف button ويمكن الوصول إليه من خلال نسخة من الدماغ.
هدف |
مثال على الاستخدام |
وصف |
|---|---|---|
|
|
زر الاختيار |
|
|
الزر الأيسر |
|
|
الزر الأيمن |
الدوال الأعضاء#
تتضمن فئة الزر button الدوال الأعضاء التالية:
pressing— تُرجع ما إذا كان يتم الضغط على الزر المحدد.pressed— يسجل دالة ليتم استدعاؤها عند الضغط على الزر المحدد.released— يسجل دالة ليتم استدعاؤها عند تحرير الزر المحدد.
قبل استدعاء أي من وظائف الأعضاء button ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:
// Create the EXP Brain
brain Brain = brain();
pressing#
يُرجع ما إذا كان يتم الضغط حاليًا على زر معين في الدماغ.
Available Functionsbool pressing() const;
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كان الزر المحدد قيد الضغط أم لا:
true— يتم الضغط على الزر.false— الزر غير مضغوط.
يمكن استدعاء هذه الدالة على أي عنصر زر، على سبيل المثال:
Brain.buttonCheckBrain.buttonLeftBrain.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 Functionsvoid pressed(
void (* callback)(void) ) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم استدعاؤها عند الضغط على الزر المحدد. |
هذه الدالة لا تُرجع قيمة.
Examplesيمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:
Brain.buttonCheckBrain.buttonLeftBrain.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 Functionsvoid released(
void (* callback)(void) ) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم استدعاؤها عند تحرير الزر المحدد. |
هذه الدالة لا تُرجع قيمة.
Examplesيمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:
Brain.buttonCheckBrain.buttonLeftBrain.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); }