അച്ചുതണ്ട്#

ആമുഖം#

axis ക്ലാസ് controller ക്ലാസിൽ നിന്ന് ഉരുത്തിരിഞ്ഞ ഒരു ക്ലാസാണ്. ഇത് കൺട്രോളർ ജോയിസ്റ്റിക്ക് ആക്സിസ് മൂല്യങ്ങളിലേക്കും ജോയിസ്റ്റിക്ക് ആക്സിസ് മാറ്റ കോൾബാക്കുകളിലേക്കും പ്രവേശനം നൽകുന്നു.

ഒരു axis ഒബ്ജക്റ്റ് ഒരു controller ഒബ്ജക്റ്റ് വഴി ആക്സസ് ചെയ്യപ്പെടുന്നു. ഇത് നേരിട്ട് നിർമ്മിച്ചതല്ല.

നാല് ജോയിസ്റ്റിക്ക് അച്ചുതണ്ടുകൾ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന രണ്ടാം തലമുറ ഐക്യു കൺട്രോളർ. ഇടതുവശത്തുള്ള ജോയ്സ്റ്റിക്കിൽ, ആക്സിസ് 3 ലംബമായും ആക്സിസ് 4 തിരശ്ചീനമായും സ്ഥിതിചെയ്യുന്നു. വലതുവശത്തുള്ള ജോയ്സ്റ്റിക്ക്, ആക്സിസ് 1 തിരശ്ചീനമായും ആക്സിസ് 2 ലംബമായും സ്ഥിതിചെയ്യുന്നു.

ആക്സസ്#

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)

ജോയിസ്റ്റിക്കിന്റെ സ്ഥാനം ആ അച്ചുതണ്ടിൽ മാറുമ്പോഴെല്ലാം പ്രവർത്തിപ്പിക്കാനുള്ള ഒരു ഫംഗ്ഷൻ.

റിട്ടേൺ മൂല്യം

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.

ഉദാഹരണം

main ന് പുറത്തുള്ള കോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക.

// Play a sound when the left joystick moves
void playSound() {
  Brain.playSound(siren);
}

main നുള്ളിൽ കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുക.

int main() {
  vexcodeInit();

  // Run playSound when the joystick's position changes along Axis4
  Controller.Axis4.changed(playSound);
}