مفتاح الصدمات#

مقدمة#

يتم استخدام فئة bumper مع مفتاح Bumper، وهو مفتاح ميكانيكي يكمل الدائرة عند الضغط عليه، مما يسمح للروبوت باكتشاف عمليات الضغط والإفلات.

مفتاح VEX V5 Bumper Switch هو جهاز ثلاثي الأسلاك بقاعدة سوداء عريضة لتثبيته على الروبوت، وزر أحمر قابل للضغط في الأعلى.

مُنشئ الفئة#

bumper(
  triport::port &port );

مُدمِّر الفئة#

يقوم بتدمير الكائن bumper وتحرير الموارد المرتبطة به.

virtual ~bumper();

حدود#

المعلمة

يكتب

وصف

port

triport::port&

المنفذ ذو الأسلاك الثلاثة الذي يتصل به مفتاح Bumper، مكتوبًا على النحو التالي: Brain.ThreeWirePort.X أو ExpanderName.X، حيث X هو حرف المنفذ (على سبيل المثال، Brain.ThreeWirePort.A أو Expander1.A).

مثال#

// Create a bumper instance in Port A
bumper BumperA = bumper(Brain.ThreeWirePort.A);

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

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

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

  • pressed — يسجل وظيفة ليتم استدعاؤها عند الضغط على مفتاح Bumper.

  • released — يسجل وظيفة ليتم استدعاؤها عند تحرير مفتاح Bumper.

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

/* This constructor is required when using VS Code.
Bumper Switch configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a bumper instance in Port A
bumper BumperA = bumper(Brain.ThreeWirePort.A);

pressing#

تُعيد هذه الدالة ما إذا كان مفتاح الاصطدام مضغوطًا حاليًا. ويمكن استخدامها للتحقق مما إذا كان الروبوت يصطدم بأجسام أخرى.

Available Functions
int32_t pressing();

Parameters

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

Return Values

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

  • 1 — يتم الضغط على زر المصد.

  • 0 — لم يتم الضغط على مفتاح المصد.

pressed#

يسجل وظيفة ليتم استدعاؤها عند الضغط على مفتاح المصد.

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

Parameters

المعلمة

يكتب

وصف

callback

void (*)(void)

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

Return Values

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

Examples

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

// Display a message when bumper is pressed
void BumperPressed() {
  Brain.Screen.print("Bumper pressed");
}

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

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

  // Run BumperPressed when the value of the Bumper Switch is pressed.
  BumperA.pressed(BumperPressed);
}

released#

يسجل وظيفة ليتم استدعاؤها عند تحرير مفتاح المصد.

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

Parameters

المعلمة

يكتب

وصف

callback

void (*)(void)

مؤشر إلى دالة سيتم استدعاؤها عند تحرير المصد.

Return Values

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

Examples

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

// Display a message when bumper is released
void BumperReleased() {
  Brain.Screen.print("Bumper released");
}

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

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

  // Run BumperReleased when the value of the Bumper Switch is released.
  BumperA.released(BumperReleased);
}