অক্ষ#

ভূমিকা#

axis ক্লাসটি controller ক্লাসের একটি ডিরাইভড ক্লাস। এটি কন্ট্রোলার জয়স্টিক অক্ষের মান এবং জয়স্টিক অক্ষ পরিবর্তনের কলব্যাকগুলিতে অ্যাক্সেস প্রদান করে।

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

IQ প্রথম প্রজন্মের কন্ট্রোলার, যার চারটি জয়স্টিক অক্ষ হাইলাইট করা হয়েছে।

অ্যাক্সেস#

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

অক্ষ বস্তু

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

বর্ণনা

Axis1

Controller.Axis1.position()

ডান জয়স্টিকটি অনুভূমিক অক্ষ বরাবর চলে।

Axis2

Controller.Axis2.position()

ডান জয়স্টিকটি উল্লম্ব অক্ষ বরাবর কাজ করে।

Axis3

Controller.Axis3.position()

বাম জয়স্টিক উল্লম্ব অক্ষ।

Axis4

Controller.Axis4.position()

বাম জয়স্টিক অনুভূমিক অক্ষ।

নোট#

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

  • position -100 থেকে 100 পর্যন্ত একটি মান ফেরত দেওয়া হয়।

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

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

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

গেটার — জয়স্টিক অ্যাক্সিসের অবস্থান পড়ুন।

  • position — জয়স্টিক অক্ষের অবস্থান ফেরত দেয়।

কলব্যাক — কোনো অক্ষ বরাবর জয়স্টিকের অবস্থান পরিবর্তিত হলে একটি ফাংশন রান করে।

  • changed — যখন জয়স্টিকের অবস্থান সেই অক্ষ বরাবর পরিবর্তিত হয় তখন একটি ফাংশন রান করে।

গেটার#

position#

position জয়স্টিক অক্ষের অবস্থানকে -100 থেকে 100 পর্যন্ত একটি মান হিসাবে ফেরত দেয়।

উপলব্ধ ফাংশন

int32_t position(percentUnits units = percentUnits::pct) const;

প্যারামিটার

প্রকার

বর্ণনা

units

percentUnits

ঐচ্ছিক। ফেরত আসা অক্ষের মানের জন্য ব্যবহৃত একক। ডিফল্ট হলো percentUnits::pct।

ফেরত মূল্য

-100 থেকে 100 পর্যন্ত একটি int32_t মান রিটার্ন করে।

  • 100 — জয়স্টিকের অক্ষটি সম্পূর্ণরূপে ধনাত্মক দিকে সরানো হয়েছে।

  • 0 — জয়স্টিকের অক্ষটি কেন্দ্রে অবস্থিত।

  • -100 — জয়স্টিকের অক্ষটি সম্পূর্ণরূপে ঋণাত্মক দিকে সরানো হয়েছে।

উদাহরণ

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

কলব্যাক#

changed#

changed একটি ফাংশন চালায় যখন জয়স্টিকের অবস্থান সেই অক্ষ বরাবর পরিবর্তিত হয়।

উপলব্ধ ফাংশন

void changed(void (* callback)(void)) const;

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

একটি ফাংশন যা জয়স্টিকের অবস্থান ঐ অক্ষ বরাবর প্রতিবার পরিবর্তিত হলে চালিত হবে।

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

পূর্বে সংজ্ঞায়িত একটি কলব্যাক ফাংশন যা অক্ষের মান পরিবর্তিত হলে স্বয়ংক্রিয়ভাবে কল করা হয়। ফাংশনটিকে অবশ্যই প্রয়োজনীয় কলব্যাক সিগনেচারের সাথে মিলতে হবে। আরও তথ্যের জন্য কলব্যাক ফাংশন দেখুন।

Return Values

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

উদাহরণ

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

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

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

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

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}