বোতাম#

ভূমিকা#

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

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

EXP কন্ট্রোলারের সামনের এবং উপরের দিক, যেখানে জয়স্টিক, অ্যারো বাটন এবং অ্যাকশন বাটনগুলো হলুদ রঙে হাইলাইট করা হয়েছে। কন্ট্রোলারের উপরিভাগে বাম এবং ডান দিকে দুটি জয়স্টিক রয়েছে, বাম দিকে আপ এবং ডাউন অ্যারো বাটন এবং ডান দিকে A এবং B বাটন রয়েছে। কন্ট্রোলারের উপরে বাম দিকে L1 এবং L2 এবং ডান দিকে R1 এবং R2 রয়েছে।

অ্যাক্সেস#

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

বস্তু

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

বর্ণনা

ButtonA

Controller.ButtonA.pressing()

A বোতাম।

ButtonB

Controller.ButtonB.pressing()

B বোতাম।

ButtonDown

Controller.ButtonDown.pressing()

ডাউন বাটন।

ButtonUp

Controller.ButtonUp.pressing()

আপ বাটন।

ButtonL1

Controller.ButtonL1.pressing()

L1 বাটন।

ButtonL2

Controller.ButtonL2.pressing()

L2 বাটন।

ButtonL3

Controller.ButtonL3.pressing()

L3 বাটন।

ButtonR1

Controller.ButtonR1.pressing()

R1 বাটন।

ButtonR2

Controller.ButtonR2.pressing()

R2 বাটন।

ButtonR3

Controller.ButtonR3.pressing()

R3 বাটনটি।

নোট#

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

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

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

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

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

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

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

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

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

গেটার#

pressing#

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

উপলব্ধ ফাংশন

bool pressing() const;

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

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

ফেরত মূল্য

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

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

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

উদাহরণ

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.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 R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

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

উপলব্ধ ফাংশন

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

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

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

ফেরত মূল্য

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

উদাহরণ

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

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

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

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}