বোতাম#

ভূমিকা#

button ক্লাসটি controller ক্লাসের একটি ডিরাইভড ক্লাস। এটি কন্ট্রোলার বাটনের স্টেট এবং বাটন ইভেন্ট কলব্যাকে অ্যাক্সেস প্রদান করে।

একটি বাটন button অবজেক্টকে একটি কন্ট্রোলার controller অবজেক্টের মাধ্যমে অ্যাক্সেস করা হয়। এটি সরাসরি কনস্ট্রাক্ট করা হয় না।

IQ (১ম জেনারেশন) কন্ট্রোলারে আটটি প্রধান বাটন রয়েছে। যদি একটি IQ (২য় জেনারেশন) কন্ট্রোলার IQ (১ম জেনারেশন) ব্রেইনের সাথে সংযুক্ত করা হয়, তাহলে জয়স্টিকের বাটন ButtonL3 এবং ButtonR3 ও ব্যবহার করা যাবে।

আইকিউ কন্ট্রোলার, যার সব বাটন হাইলাইট করা আছে।

অ্যাক্সেস#

কন্ট্রোলার controller প্রতিটি অবজেক্ট হলো button ক্লাসের একটি ইনস্ট্যান্স।

বস্তু

ব্যবহারের উদাহরণ

বর্ণনা

ButtonEDown

Controller.ButtonEDown.pressing()

E ▼ বোতাম।

ButtonEUp

Controller.ButtonEUp.pressing()

E ▲ বাটন।

ButtonFDown

Controller.ButtonFDown.pressing()

F ▼ বোতাম।

ButtonFUp

Controller.ButtonFUp.pressing()

F ▲ বোতাম।

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼ বোতাম।

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲ বোতাম।

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼ বোতাম।

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲ বাটনটি।

ButtonL3

Controller.ButtonL3.pressing()

বাম জয়স্টিকের বাটন। শুধুমাত্র IQ (২য় জেনারেশন) কন্ট্রোলারের জন্য।

ButtonR3

Controller.ButtonR3.pressing()

ডান জয়স্টিক বাটন। শুধুমাত্র IQ (২য় জেনারেশন) কন্ট্রোলারের জন্য।

নোট#

  • একটি button মেম্বার ফাংশন ব্যবহার করার আগে, একটি controller অবজেক্ট তৈরি করুন।

  • ButtonL3 এবং ButtonR3 শুধুমাত্র তখনই ব্যবহার করা যাবে যখন একটি IQ (২য় প্রজন্ম) কন্ট্রোলার সংযুক্ত থাকবে।

// Create a controller object
controller Controller = controller();

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

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

গেটার — রিড বাটনের অবস্থা।

  • pressing — বাটনটি চাপা হচ্ছে কিনা তা ফেরত দেয়।

কলব্যাক — বাটনের ইভেন্ট ঘটলে ফাংশনগুলো চালায়।

  • pressed — বাটন চাপলে যে ফাংশনটি চলবে তা রেজিস্টার করে।

  • released — বাটনটি ছেড়ে দিলে যে ফাংশনটি চলবে তা রেজিস্টার করে।

গেটার#

pressing#

pressing মাধ্যমে বাটনটি বর্তমানে চাপা আছে কিনা তা জানা যায়।

উপলব্ধ ফাংশন

bool pressing() const;

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

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

ফেরত মূল্য

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

  • true — বাটনটি চাপা হচ্ছে।

  • false — বাটনটি চাপা হচ্ছে না।

উদাহরণ

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

কলব্যাক#

pressed#

pressed এমন একটি ফাংশন রেজিস্টার করে যা বাটন চাপলে চলে।

উপলব্ধ ফাংশন

void pressed(void (* callback)(void)) const;

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

একটি ফাংশন যা বাটন চাপলে চালু হয়।

ফেরত মূল্য

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

উদাহরণ

main এর বাইরে কলব্যাক ফাংশনটি সংজ্ঞায়িত করুন।

// Drive forward when F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

main এর ভিতরে কলব্যাকটি নিবন্ধন করুন।

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released এমন একটি ফাংশন রেজিস্টার করে যা বাটনটি ছেড়ে দিলে চলে।

উপলব্ধ ফাংশন

void released(void (* callback)(void)) const;

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

একটি ফাংশন যা বাটনটি ছেড়ে দিলে চালু হয়।

ফেরত মূল্য

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

উদাহরণ

main এর বাইরে কলব্যাক ফাংশনটি সংজ্ঞায়িত করুন।

// Stop the drivetrain when F Up is released
void stopDriving() {
  Drivetrain.stop();
}

main এর ভিতরে কলব্যাকটি নিবন্ধন করুন।

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}