زر#
مقدمة#
يتم اشتقاق فئة الزر button من الفئة الأساسية brain وتوفر الوصول إلى أزرار IQ (الجيل الثاني) Brain، مما يسمح لروبوتك بمراقبة الضغطات على أزرار الدماغ.
وصول#
يُوفّر الصنف brain اثني عشر كائن زر. كل كائن هو نسخة من الصنف button ويمكن الوصول إليه من خلال نسخة brain.
هدف |
مثال على الاستخدام |
وصف |
|---|---|---|
|
|
زر الاختيار |
|
|
الزر الأيسر |
|
|
الزر الأيمن |
ملحوظات#
يتم توفير عنصر الزر
buttonبواسطة الدماغ. لا يتم إنشاؤه بشكل مباشر.
الدوال الأعضاء#
تتضمن فئة الزر Button الدوال الأعضاء التالية:
pressed— يسجل دالة ليتم استدعاؤها عند الضغط على الزر المحدد.released— يسجل دالة ليتم استدعاؤها عند تحرير الزر المحدد.pressing— تُرجع ما إذا كان يتم الضغط على الزر المحدد.
قبل استدعاء أي من وظائف الأعضاء button ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:
// Create a brain instance
brain();
pressed#
يسجل دالة رد نداء يتم تشغيلها عند الضغط على زر معين في الدماغ.
Available Functionsvoid pressed(
void (* callback)(void) ) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم استدعاؤها عند الضغط على الزر المحدد. |
هذه الدالة لا تُرجع قيمة.
Examplesيمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:
Brain.buttonCheckBrain.buttonLeftBrain.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 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); }
pressing#
يُرجع ما إذا كان يتم الضغط حاليًا على زر معين في الدماغ.
Available Functionsbool pressing() const;
لا تقبل هذه الدالة أي معلمات.
Return Valuesيُرجع قيمة منطقية تشير إلى ما إذا كان الزر المحدد قيد الضغط أم لا:
true— يتم الضغط على الزر.false— الزر غير مضغوط.
يمكن استدعاء هذه الوظيفة على أي كائن زر دماغ، على سبيل المثال:
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
// Turn right while right is pressed
while (true) {
if (Brain.buttonRight.pressing()) {
Drivetrain.turn(right);
} else {
Drivetrain.stop();
}
wait(5, msec);
}