নিয়ন্ত্রক#
ভূমিকা#
controller ক্লাসটি EXP ব্রেইনের সাথে সংযুক্ত একটি VEX EXP কন্ট্রোলারকে প্রতিনিধিত্ব করে। একটি controller অবজেক্ট ব্যবহার করে জয়স্টিক অ্যাক্সিসের মান অ্যাক্সেস করা, বাটনের অবস্থা পড়া, বাটন বা জয়স্টিক কলব্যাক রেজিস্টার করা, কন্ট্রোলারকে রাম্বল করানো এবং কন্ট্রোলারটি সংযুক্ত আছে কিনা তা পরীক্ষা করা যায়।
VEX EXP, V5 কন্ট্রোলারের সাথে সামঞ্জস্যপূর্ণ। আরও তথ্যের জন্য V5 কন্ট্রোলার API দেখুন।
যখন ডিভাইসেস উইন্ডোতে এক বা একাধিক কন্ট্রোলার কনফিগার করা থাকে, তখন VEXcode EXP RemoteControlCodeEnabledও প্রদান করে। এই গ্লোবাল ভ্যারিয়েবলটি ডিভাইসেস মেনুতে কনফিগার করা কন্ট্রোলার অ্যাকশনগুলোকে এনাবল বা ডিসেবল করে।
উদ্ভূত শ্রেণী#
controller ক্লাসটি নিম্নলিখিত ডিরাইভড ক্লাসগুলো প্রদান করে:
নির্মাণকারী#
1 - প্রাথমিক কন্ট্রোলার টাইপ ব্যবহার করে একটি কন্ট্রোলার তৈরি করে। সাধারণত যখন একটিমাত্র কন্ট্রোলার সংযুক্ত থাকে তখন এটি ব্যবহৃত হয়।
controller();
2 - নির্দিষ্ট কন্ট্রোলার টাইপের জন্য একটি কন্ট্রোলার তৈরি করে। দুটি কন্ট্রোলার সংযুক্ত থাকলে এটি ব্যবহৃত হয়।
controller( controllerType id );
উপলব্ধ ফাংশনসমূহ
controller();
controller(controllerType id);
প্যারামিটার |
প্রকার |
বর্ণনা |
|---|---|---|
|
|
ঐচ্ছিক। যে কন্ট্রোলার টাইপটি তৈরি করতে চান: ব্রেইনের সাথে সংযুক্ত প্রাথমিক কন্ট্রোলারের জন্য |
টীকা
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();
প্যারামিটার#
প্যারামিটার |
প্রকার |
বর্ণনা |
|---|---|---|
|
|
যে ধরনের কন্ট্রোলার তৈরি করা হচ্ছে:
|
নোট#
একটি প্রকল্পে কেবল একজন
primaryএবং একজন (অংশীদার) (partnerনিয়ন্ত্রক থাকতে পারে।
উদাহরণ#
// Create an EXP controller instance
controller Controller = controller();
সদস্যদের কার্যাবলী#
controller ক্লাসে নিম্নলিখিত মেম্বার ফাংশনগুলো অন্তর্ভুক্ত রয়েছে:
rumble- একটি প্যাটার্ন ব্যবহার করে কন্ট্রোলারকে কাঁপায়।installed- কন্ট্রোলারটি মস্তিষ্কের সাথে সংযুক্ত আছে কিনা তা পরীক্ষা করে।
গর্জন#
rumble একটি প্যাটার্ন ব্যবহার করে কন্ট্রোলারকে কাঁপায়। প্যাটার্ন স্ট্রিং-এ, ডটগুলো হলো ছোট কম্পন, ড্যাশগুলো হলো দীর্ঘ কম্পন, এবং স্পেসগুলো হলো বিরতি।
উপলব্ধ ফাংশন
void rumble(const char *str);
প্যারামিটার |
প্রকার |
বর্ণনা |
|---|---|---|
|
|
ডট, ড্যাশ এবং স্পেস দিয়ে গঠিত একটি স্ট্রিং যা রাম্বল প্যাটার্নকে উপস্থাপন করে। |
ফেরত মূল্য
এই ফাংশনটি কোনো মান ফেরত দেয় না।
উদাহরণ
// 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- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
কন্ট্রোলার-কনফিগার করা অ্যাকশনগুলো ডিফল্টরূপে সক্রিয় থাকে।
এই ভেরিয়েবলটি শুধুমাত্র VEXcode ব্যবহার করার সময় কাজ করবে।
// 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;