ബട്ടൺ#

ആമുഖം#

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 ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്‌ഷനുകൾ ഉൾപ്പെടുന്നു:

ഗെറ്റർ — ബട്ടൺ നില വായിക്കുക.

കോൾബാക്കുകൾ — ബട്ടൺ ഇവന്റുകൾ സംഭവിക്കുമ്പോൾ ഫംഗ്‌ഷനുകൾ പ്രവർത്തിപ്പിക്കുക.

  • 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);
}