زر#
مقدمة#
يُعدّ الصنف button صنفًا مشتقًا من الصنف controller. وهو يوفر إمكانية الوصول إلى حالات أزرار وحدة التحكم ووظائف رد نداء أحداث الأزرار.
يتم الوصول إلى عنصر button من خلال عنصر وحدة التحكم controller مباشر.

وصول#
توفر فئة controller كائنات الأزرار التالية. كل كائن هو نسخة من فئة الزر button
هدف |
مثال على الاستخدام |
وصف |
|---|---|---|
|
|
زر A. |
|
|
زر B. |
|
|
زر X. |
|
|
زر Y. |
|
|
زر الأسفل. |
|
|
زر الأعلى. |
|
|
الزر الأيسر. |
|
|
الزر الصحيح. |
|
|
زر L1. |
|
|
زر L2. |
|
|
زر R1. |
|
|
زر R2. |
ملحوظات#
قبل استخدام دالة العضو
button، قم بإنشاء كائنcontroller.
// Create a Controller object
controller Controller = controller();
الدوال الأعضاء#
تتضمن فئة الزر button الدوال الأعضاء التالية:
دالة الوصول — قراءة حالة الزر.
pressing— تُرجع ما إذا كان الزر قيد الضغط.
الوظائف المستدعاة — تشغيل الوظائف عند وقوع أحداث الزر.
المحصل#
الضغط#
الضغط على pressing يُظهر ما إذا كان الزر مضغوطًا حاليًا أم لا.
الوظائف المتاحة
bool pressing() const;
حدود
هذه الدالة لا تحتوي على معلمات.
القيمة المُعادة
يُرجع قيمة منطقية (Boolean).
true— يتم الضغط على الزر.false— الزر غير مضغوط.
مثال
// Turn right while L1 is pressed
while (true) {
if (Controller.ButtonL1.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
معاودة الاتصال#
طلب#
pressed يسجل وظيفة يتم تشغيلها عند الضغط على الزر.
الوظائف المتاحة
void pressed(void (* callback)(void)) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم تشغيلها عند الضغط على الزر. |
القيمة المُعادة
هذه الدالة لا تُرجع قيمة.
مثال
قم بتعريف دالة الاستدعاء خارج الدالة الرئيسية main.
// Drive forward when A is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
قم بتسجيل رد الاتصال داخل main.
int main() {
vexcodeInit();
// Run driveForward when A is pressed
Controller.ButtonA.pressed(driveForward);
}
مطلق سراحه#
released يسجل وظيفة يتم تشغيلها عند تحرير الزر.
الوظائف المتاحة
void released(void (* callback)(void)) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة يتم تشغيلها عند تحرير الزر. |
القيمة المُعادة
هذه الدالة لا تُرجع قيمة.
مثال
قم بتعريف دالة الاستدعاء خارج الدالة الرئيسية main.
// Stop the drivetrain when A is released
void stopDriving() {
Drivetrain.stop();
}
قم بتسجيل رد الاتصال داخل main.
int main() {
vexcodeInit();
// Run stopDriving when A is released
Controller.ButtonA.released(stopDriving);
}