ബട്ടൺ#

ആമുഖം#

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

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

മഞ്ഞ നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന, രണ്ടാം തലമുറ IQ കൺട്രോളറിന്റെ മുൻവശത്തും പിൻവശത്തുമുള്ള കാഴ്ച. കൺട്രോളറിന്റെ ഉപരിതലത്തിൽ മുകളിൽ ഇടത്, വലത് കോണുകളിൽ രണ്ട് ജോയിസ്റ്റിക്ക് ബട്ടണുകൾ അടങ്ങിയിരിക്കുന്നു, ഇടത് ജോയ്സ്റ്റിക്കിന് താഴെ E മുകളിലേക്കും താഴേക്കും, വലതുവശത്ത് താഴെ F മുകളിലേക്കും താഴേക്കും ഉണ്ട്. കൺട്രോളറിന്റെ പിൻഭാഗത്ത് യഥാക്രമം ഇടത്, വലത് വശങ്ങളിൽ L മുകളിലേക്കും താഴേക്കും, R മുകളിലേക്കും താഴേക്കും ഉണ്ട്.

ആക്സസ്#

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

വസ്തു

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

വിവരണം

ButtonEDown

Controller.ButtonEDown.pressing()

E ▼ ബട്ടൺ.

ButtonEUp

Controller.ButtonEUp.pressing()

E ▲ ബട്ടൺ.

ButtonFDown

Controller.ButtonFDown.pressing()

F ▼ ബട്ടൺ.

ButtonFUp

Controller.ButtonFUp.pressing()

F ▲ ബട്ടൺ.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼ ബട്ടൺ.

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲ ബട്ടൺ.

ButtonR3

Controller.ButtonR3.pressing()

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

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼ ബട്ടൺ.

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲ ബട്ടൺ.

കുറിപ്പുകൾ#

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