ബട്ടൺ#

ആമുഖം#

button ക്ലാസ് controller ക്ലാസിന്റെ ഒരു ഡിറൈവ്ഡ് ക്ലാസാണ്. ഇത് കൺട്രോളർ ബട്ടൺ സ്റ്റേറ്റുകളിലേക്കും ബട്ടൺ ഇവന്റ് കോൾബാക്കുകളിലേക്കും ആക്‌സസ് നൽകുന്നു.

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

IQ (ഒന്നാം തലമുറ) കൺട്രോളറിന് എട്ട് പ്രധാന ബട്ടൺ ഒബ്‌ജക്‌റ്റുകൾ ഉണ്ട്. ഒരു IQ (രണ്ടാം തലമുറ) കൺട്രോളർ IQ (ഒന്നാം തലമുറ) ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ, ജോയ്‌സ്റ്റിക്ക് ബട്ടണുകൾ ButtonL3 ഉം ButtonR3 ഉം ഉപയോഗിക്കാം.

എല്ലാ ബട്ടണുകളും ഹൈലൈറ്റ് ചെയ്തിട്ടുള്ള IQ കൺട്രോളർ.

ആക്സസ്#

controller ക്ലാസ് ഇനിപ്പറയുന്ന ബട്ടൺ ഒബ്‌ജക്റ്റുകൾ നൽകുന്നു. ഓരോ ഒബ്‌ജക്റ്റും button ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ്.

വസ്തു

ഉദാഹരണ ഉപയോഗം

വിവരണം

ButtonEDown

Controller.ButtonEDown.pressing()

E ▼ ബട്ടൺ.

ButtonEUp

Controller.ButtonEUp.pressing()

E ▲ ബട്ടൺ.

ButtonFDown

Controller.ButtonFDown.pressing()

F ▼ ബട്ടൺ.

ButtonFUp

Controller.ButtonFUp.pressing()

F ▲ ബട്ടൺ.

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼ ബട്ടൺ.

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲ ബട്ടൺ.

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼ ബട്ടൺ.

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲ ബട്ടൺ.

ButtonL3

Controller.ButtonL3.pressing()

ഇടത് ജോയ്സ്റ്റിക്ക് ബട്ടൺ. IQ (രണ്ടാം തലമുറ) കൺട്രോളർ മാത്രം.

ButtonR3

Controller.ButtonR3.pressing()

വലത് ജോയ്സ്റ്റിക്ക് ബട്ടൺ. IQ (രണ്ടാം തലമുറ) കൺട്രോളർ മാത്രം.

കുറിപ്പുകൾ#

  • button അംഗ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നതിന് മുമ്പ്, ഒരു controller ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുക.

  • ButtonL3 ഉം ButtonR3 ഒരു IQ (രണ്ടാം തലമുറ) കൺട്രോളർ കണക്റ്റ് ചെയ്യുമ്പോൾ മാത്രമേ ലഭ്യമാകൂ.

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

അംഗ പ്രവർത്തനങ്ങൾ#

button ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്‌ഷനുകൾ ഉൾപ്പെടുന്നു:

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

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

  • pressed — ബട്ടൺ അമർത്തുമ്പോൾ പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

  • released — ബട്ടൺ റിലീസ് ചെയ്യുമ്പോൾ പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു ഫംഗ്‌ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

ഗെറ്റർ#

pressing#

pressing അമർത്തുമ്പോൾ ബട്ടൺ നിലവിൽ അമർത്തുന്നുണ്ടോ എന്ന് ലഭിക്കും.

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

bool pressing() const;

പാരാമീറ്ററുകൾ

ഈ ഫംഗ്ഷന് പാരാമീറ്ററുകൾ ഇല്ല.

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

ഒരു ബൂളിയൻ മൂല്യം നൽകുന്നു.

  • true — ബട്ടൺ അമർത്തിക്കൊണ്ടിരിക്കുന്നു.

  • false — ബട്ടൺ അമർത്തുന്നില്ല.

ഉദാഹരണം

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.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 F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released ബട്ടൺ റിലീസ് ചെയ്യുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്‌ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

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

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

പാരാമീറ്റർ

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

വിവരണം

callback

void (*)(void)

ബട്ടൺ റിലീസ് ചെയ്യുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്ഷൻ.

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

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

ഉദാഹരണം

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

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

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

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}