নিয়ন্ত্রক#

ভূমিকা#

controller ক্লাসটি V5 ব্রেইনের সাথে সংযুক্ত একটি VEX V5 কন্ট্রোলারকে প্রতিনিধিত্ব করে। একটি controller অবজেক্ট ব্যবহার করে জয়স্টিক অ্যাক্সিসের মান অ্যাক্সেস করা, বাটনের অবস্থা পড়া, বাটন বা জয়স্টিক কলব্যাক রেজিস্টার করা, কন্ট্রোলারকে রাম্বল করানো, কন্ট্রোলার স্ক্রিনে লেখা এবং কন্ট্রোলারটি সংযুক্ত আছে কিনা তা পরীক্ষা করা যায়।

VEX V5, EXP কন্ট্রোলারের সাথে সামঞ্জস্যপূর্ণ। আরও তথ্যের জন্য EXP কন্ট্রোলার API দেখুন।

যখন ডিভাইসেস উইন্ডোতে এক বা একাধিক কন্ট্রোলার কনফিগার করা থাকে, তখন 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 - মস্তিষ্কের সাথে সংযুক্ত সহযোগী (দ্বিতীয়) কন্ট্রোলার।

নোট#

  • একটি প্রকল্পে কেবল একজন primary এবং একজন (অংশীদার) ( partner নিয়ন্ত্রক থাকতে পারে।

উদাহরণ#

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

সদস্যদের কার্যাবলী#

controller ক্লাসে নিম্নলিখিত মেম্বার ফাংশনগুলো অন্তর্ভুক্ত রয়েছে:

  • rumble - একটি প্যাটার্ন ব্যবহার করে কন্ট্রোলারকে কাঁপায়।

  • installed - কন্ট্রোলারটি মস্তিষ্কের সাথে সংযুক্ত আছে কিনা তা পরীক্ষা করে।

গর্জন#

rumble একটি প্যাটার্ন ব্যবহার করে কন্ট্রোলারকে কাঁপায়। প্যাটার্ন স্ট্রিং-এ, ডটগুলো হলো ছোট কম্পন, ড্যাশগুলো হলো দীর্ঘ কম্পন, এবং স্পেসগুলো হলো বিরতি।

উপলব্ধ ফাংশন

void rumble(const char *str);

প্যারামিটার

প্রকার

বর্ণনা

str

const char *

ডট, ড্যাশ এবং স্পেস দিয়ে গঠিত একটি স্ট্রিং যা রাম্বল প্যাটার্নকে উপস্থাপন করে।

ফেরত মূল্য

এই ফাংশনটি কোনো মান ফেরত দেয় না।

উদাহরণ

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

গেটার#

ইনস্টল করা হয়েছে#

installed রিটার্ন করে কন্ট্রোলারটি ব্রেইনের সাথে সংযুক্ত আছে কিনা।

উপলব্ধ ফাংশন

bool installed();

প্যারামিটারসমূহ

এই ফাংশনটির কোনো প্যারামিটার নেই।

ফেরত মূল্য

একটি বুলিয়ান মান ফেরত দেয়।

  • 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;