وحدة التحكم#

مقدمة#

يمثل الكائن controller وحدة تحكم VEX V5 متصلة بوحدة V5 Brain. ويمكن استخدام الكائن controller للوصول إلى قيم محاور عصا التحكم، وقراءة حالات الأزرار، وتسجيل وظائف الاستدعاء للأزرار أو عصا التحكم، وجعل وحدة التحكم تهتز، والكتابة على شاشة وحدة التحكم، والتحقق من اتصال وحدة التحكم.

يتوافق VEX V5 مع وحدة التحكم EXP. راجع واجهة برمجة تطبيقات وحدة التحكم EXP لمزيد من المعلومات.

عند تكوين وحدة تحكم واحدة أو أكثر في نافذة الأجهزة، يوفر VEXcode V5 أيضًا المتغير RemoteControlCodeEnabledيقوم هذا المتغير العام بتمكين أو تعطيل إجراءات وحدة التحكم التي تم تكوينها في قائمة الأجهزة.

الفئات المشتقة#

توفر فئة وحدة التحكم controller:

  • Axis - يوفر الوصول إلى قيم إدخال محور عصا التحكم وأحداث التغيير.

  • Button - يوفر الوصول إلى حالة الزر واستدعاءات أحداث الزر.

  • Screen - يوفر وظائف لكتابة النص على شاشة التحكم.

المُنشئون#

1 - يُنشئ وحدة تحكم باستخدام نوع وحدة التحكم الأساسية. يُستخدم عادةً عند توصيل وحدة تحكم واحدة.

controller();

2 - يُنشئ وحدة تحكم لنوع وحدة التحكم المحدد. يُستخدم عند توصيل وحدتي تحكم.

controller(
    controllerType id );

الوظائف المتاحة

controller();

controller(controllerType id);

المعلمة

يكتب

وصف

id

controllerType

اختياري. نوع وحدة التحكم المراد إنشاؤها: primary لوحدة التحكم الأساسية المتصلة بالدماغ أو partner لوحدة التحكم الثانية المتصلة بالدماغ.

ملحوظات

Only one primary Controller and one partner Controller can be created in a single project.

مثال

// Create the primary Controller
controller Controller1 = controller();

// Create a partner Controller
controller Controller2 = controller(partner);

مدمر#

~وحدة التحكم#

~controller تدمر الكائن controller وتحرر الموارد المرتبطة به.

الوظائف المتاحة

~controller();

حدود#

المعلمة

يكتب

وصف

id

controllerType

نوع وحدة التحكم التي يتم إنشاؤها:

  • primary - وحدة التحكم الأساسية المتصلة بالدماغ.
  • partner - وحدة التحكم الشريكة (الثانية) المتصلة بالدماغ.

ملحوظات#

  • Only one primary and one partner controller may exist in a single project.

مثال#

// Create a V5 controller instance
controller Controller = controller();

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

The controller class includes the following member functions:

  • rumble - يهز وحدة التحكم باستخدام نمط معين.

  • installed - يتحقق مما إذا كان جهاز التحكم متصلاً بالدماغ.

ترعد#

يؤدي الضغط على زر rumble إلى اهتزاز الجهاز وفق نمط معين. في سلسلة النمط، تمثل النقاط اهتزازات قصيرة، والشرطات اهتزازات طويلة، والمسافات فترات توقف.

الوظائف المتاحة

void rumble(const char *str);

المعلمة

يكتب

وصف

str

const char *

سلسلة مكونة من نقاط وشرطات ومسافات تمثل نمط الرنين.

القيمة المُعادة

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

مثال

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

المحصل#

تم التثبيت#

installed يُرجع ما إذا كان جهاز التحكم متصلاً بالدماغ.

الوظائف المتاحة

bool installed();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

المتغيرات العالمية#

تم تمكين رمز التحكم عن بعد#

يُمكّن الخيار RemoteControlCodeEnabled أو يُعطّل إجراءات وحدة التحكم المُكوّنة في قائمة الأجهزة. وتكون إجراءات وحدة التحكم المُكوّنة مُفعّلة افتراضيًا.

Usage:
RemoteControlCodeEnabled = state;

قيمة

وصف

true

يُمكّن هذا الخيار الإجراءات المُكوّنة بواسطة وحدة التحكم.

false

يعطل الإجراءات المُكوّنة في وحدة التحكم.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • يتم تمكين الإجراءات التي تم تكوينها بواسطة وحدة التحكم بشكل افتراضي.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use Controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;