അച്ചുതണ്ട്#

ആമുഖം#

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

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

ജോയ്‌സ്റ്റിക്കുകൾക്ക് ചുറ്റും അച്ചുതണ്ടുകൾ ലേബൽ ചെയ്‌തിരിക്കുന്ന ഒരു VEX V5 കൺട്രോളർ. അച്ചുതണ്ട് 1 ഉം 2 ഉം വലതു ജോയ്‌സ്റ്റിക്കിന് ചുറ്റുമാണ്, അച്ചുതണ്ട് 3 ഉം 4 ഉം ഇടതുവശത്താണ്.

ആക്സസ്#

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 ജോയിസ്റ്റിക്ക് അച്ചുതണ്ടിന്റെ സ്ഥാനം -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 ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.

ലഭ്യമായ പ്രവർത്തനം

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

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

callback

void (*)(void)

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

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

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

ഉദാഹരണം

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

// Rumble when the left joystick moves
void controllerRumble() {
  Controller.rumble(".");
}

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

int main() {
  vexcodeInit();

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