ബട്ടൺ#

ആമുഖം#

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

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

മഞ്ഞ നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന ബട്ടണുകളുള്ള V5 കൺട്രോളറിന്റെ മുൻവശത്തും പിൻവശത്തും. കൺട്രോളറിന്റെ ഉപരിതലത്തിൽ ഇടതുവശത്ത് മുകളിലേക്കും താഴേക്കും ഇടത്തേക്കും വലത്തേക്കും അമ്പടയാള ബട്ടണുകളും വലതുവശത്ത് 12 മണി മുതൽ ഘടികാരദിശയിൽ X, A, B, Y ബട്ടണുകളും ഉണ്ട്. കൺട്രോളറിന്റെ പിൻവശത്ത് ഇടത്തും വലത്തും യഥാക്രമം L1, L2, R1, R2 എന്നിവയുണ്ട്.

ആക്സസ്#

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

വസ്തു

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

വിവരണം

ButtonA

Controller.ButtonA.pressing()

A ബട്ടൺ.

ButtonB

Controller.ButtonB.pressing()

B ബട്ടൺ.

ButtonX

Controller.ButtonX.pressing()

X ബട്ടൺ.

ButtonY

Controller.ButtonY.pressing()

Y ബട്ടൺ.

ButtonDown

Controller.ButtonDown.pressing()

താഴേക്ക് ബട്ടൺ.

ButtonUp

Controller.ButtonUp.pressing()

മുകളിലേക്കുള്ള ബട്ടൺ.

ButtonLeft

Controller.ButtonLeft.pressing()

ഇടത് ബട്ടൺ.

ButtonRight

Controller.ButtonRight.pressing()

വലത് ബട്ടൺ.

ButtonL1

Controller.ButtonL1.pressing()

L1 ബട്ടൺ.

ButtonL2

Controller.ButtonL2.pressing()

L2 ബട്ടൺ.

ButtonR1

Controller.ButtonR1.pressing()

R1 ബട്ടൺ.

ButtonR2

Controller.ButtonR2.pressing()

R2 ബട്ടൺ.

കുറിപ്പുകൾ#

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

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

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

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

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

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

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

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

ഗെറ്റർ#

അമർത്തുന്നു#

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

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

void pressed(void (* callback)(void)) const;

പാരാമീറ്റർ

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

വിവരണം

callback

void (*)(void)

ബട്ടൺ അമർത്തുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു ഫംഗ്ഷൻ.

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

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

ഉദാഹരണം

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

// Drive forward when A is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

പുറത്തിറങ്ങി#

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

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

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

പാരാമീറ്റർ

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

വിവരണം

callback

void (*)(void)

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

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

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

ഉദാഹരണം

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

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

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

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}