കൺട്രോളർ#
ആമുഖം#
controller ക്ലാസ് EXP ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഒരു VEX EXP കൺട്രോളറെ പ്രതിനിധീകരിക്കുന്നു. ജോയ്സ്റ്റിക്ക് ആക്സിസ് മൂല്യങ്ങൾ ആക്സസ് ചെയ്യുന്നതിനും, ബട്ടൺ സ്റ്റേറ്റുകൾ വായിക്കുന്നതിനും, ബട്ടൺ അല്ലെങ്കിൽ ജോയ്സ്റ്റിക്ക് കോൾബാക്കുകൾ രജിസ്റ്റർ ചെയ്യുന്നതിനും, കൺട്രോളർ റംബിൾ ചെയ്യുന്നതിനും, കൺട്രോളർ കണക്റ്റുചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുന്നതിനും ഒരു controller ഒബ്ജക്റ്റ് ഉപയോഗിക്കാം.
V5 കൺട്രോളറുമായി VEX EXP പൊരുത്തപ്പെടുന്നു. കൂടുതൽ വിവരങ്ങൾക്ക് V5 കൺട്രോളർ API കാണുക.
ഡിവൈസസ് വിൻഡോയിൽ ഒന്നോ അതിലധികമോ കൺട്രോളറുകൾ കോൺഫിഗർ ചെയ്യുമ്പോൾ, VEXcode EXP RemoteControlCodeEnabledഉം നൽകുന്നു. ഈ ഗ്ലോബൽ വേരിയബിൾ ഡിവൈസസ് മെനുവിൽ കോൺഫിഗർ ചെയ്തിരിക്കുന്ന കൺട്രോളർ പ്രവർത്തനങ്ങൾ പ്രാപ്തമാക്കുന്നു അല്ലെങ്കിൽ അപ്രാപ്തമാക്കുന്നു.
ഉരുത്തിരിഞ്ഞ ക്ലാസുകൾ#
controller ക്ലാസ് താഴെ പറയുന്ന ഡിറൈവ്ഡ് ക്ലാസുകൾ നൽകുന്നു:
കൺസ്ട്രക്ടർമാർ#
1 - പ്രൈമറി കൺട്രോളർ തരം ഉപയോഗിച്ച് ഒരു കൺട്രോളർ സൃഷ്ടിക്കുന്നു. സാധാരണയായി ഒരു കൺട്രോളർ കണക്റ്റ് ചെയ്യുമ്പോൾ ഉപയോഗിക്കുന്നു.
controller();
2 - നിർദ്ദിഷ്ട കൺട്രോളർ തരത്തിനായി ഒരു കൺട്രോളർ സൃഷ്ടിക്കുന്നു. രണ്ട് കൺട്രോളറുകൾ ബന്ധിപ്പിക്കുമ്പോൾ ഉപയോഗിക്കുന്നു.
controller( controllerType id );
ലഭ്യമായ പ്രവർത്തനങ്ങൾ
controller();
controller(controllerType id);
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഓപ്ഷണൽ. സൃഷ്ടിക്കേണ്ട കൺട്രോളർ തരം: ബ്രെയിനുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന പ്രൈമറി കൺട്രോളറിന് |
കുറിപ്പുകൾ
ഒരു പ്രോജക്റ്റിൽ ഒരു primary കൺട്രോളറും ഒരു partner കൺട്രോളറും മാത്രമേ സൃഷ്ടിക്കാൻ കഴിയൂ.
ഉദാഹരണം
// Create the primary controller
controller Controller1 = controller();
// Create a partner controller
controller Controller2 = controller(partner);
ഡിസ്ട്രക്ടർ#
~കൺട്രോളർ#
~controller controller ഒബ്ജക്റ്റിനെ നശിപ്പിക്കുകയും അനുബന്ധ ഉറവിടങ്ങൾ പുറത്തുവിടുകയും ചെയ്യുന്നു.
ലഭ്യമായ പ്രവർത്തനം
~controller();
പാരാമീറ്ററുകൾ#
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
സൃഷ്ടിക്കപ്പെടുന്ന കൺട്രോളറിന്റെ തരം:
|
കുറിപ്പുകൾ#
ഒരു പ്രോജക്റ്റിൽ ഒരു
primaryകൺട്രോളറും ഒരുpartnerകൺട്രോളറും മാത്രമേ നിലനിൽക്കൂ.
ഉദാഹരണം#
// Create an EXP controller instance
controller Controller = controller();
അംഗ പ്രവർത്തനങ്ങൾ#
controller ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു:
rumble- ഒരു പാറ്റേൺ ഉപയോഗിച്ച് കൺട്രോളർ റംബിൾ ചെയ്യുന്നു.installed- കൺട്രോളർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുന്നു.
മുഴങ്ങുക#
rumble ഒരു പാറ്റേൺ ഉപയോഗിച്ച് കൺട്രോളറിനെ വൈബ്രേറ്റ് ചെയ്യുന്നു. പാറ്റേൺ സ്ട്രിംഗിൽ, ഡോട്ടുകൾ ചെറിയ വൈബ്രേഷനുകളെയാണ് സൂചിപ്പിക്കുന്നത്, ഡാഷുകൾ നീണ്ട വൈബ്രേഷനുകളെയാണ് സൂചിപ്പിക്കുന്നത്, സ്പെയ്സുകൾ താൽക്കാലികമായി നിർത്തുന്നതിനെയാണ് സൂചിപ്പിക്കുന്നത്.
ലഭ്യമായ പ്രവർത്തനം
void rumble(const char *str);
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
റംബിൾ പാറ്റേണിനെ പ്രതിനിധീകരിക്കുന്ന കുത്തുകൾ, ഡാഷുകൾ, ഇടങ്ങൾ എന്നിവയാൽ നിർമ്മിച്ച ഒരു സ്ട്രിംഗ്. |
റിട്ടേൺ മൂല്യം
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
ഉദാഹരണം
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
ഗെറ്റർ#
ഇൻസ്റ്റാൾ ചെയ്തു#
installed കൺട്രോളർ തലച്ചോറുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നൽകുന്നു.
ലഭ്യമായ പ്രവർത്തനം
bool installed();
പാരാമീറ്ററുകൾ
ഈ ഫംഗ്ഷന് പാരാമീറ്ററുകൾ ഇല്ല.
റിട്ടേൺ മൂല്യം
ഒരു ബൂളിയൻ മൂല്യം നൽകുന്നു.
true- The controller is installed/connected.false- The controller is not installed/connected.
ആഗോള വേരിയബിളുകൾ#
റിമോട്ട് കൺട്രോൾ കോഡ് പ്രവർത്തനക്ഷമമാക്കി#
RemoteControlCodeEnabled ഉപകരണ മെനുവിൽ കോൺഫിഗർ ചെയ്തിരിക്കുന്ന കൺട്രോളർ പ്രവർത്തനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുകയോ പ്രവർത്തനരഹിതമാക്കുകയോ ചെയ്യുന്നു. കൺട്രോളർ കോൺഫിഗർ ചെയ്ത പ്രവർത്തനങ്ങൾ സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു.
Usage:
RemoteControlCodeEnabled = state;
വില |
വിവരണം |
|---|---|
|
കൺട്രോളർ കോൺഫിഗർ ചെയ്ത പ്രവർത്തനങ്ങൾ പ്രാപ്തമാക്കുന്നു. |
|
കൺട്രോളർ കോൺഫിഗർ ചെയ്ത പ്രവർത്തനങ്ങൾ പ്രവർത്തനരഹിതമാക്കുന്നു. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
കൺട്രോളർ കോൺഫിഗർ ചെയ്ത പ്രവർത്തനങ്ങൾ ഡിഫോൾട്ടായി പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു.
VEXcode ഉപയോഗിക്കുമ്പോൾ മാത്രമേ ഈ വേരിയബിൾ പ്രവർത്തിക്കൂ.
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;
while (true) {
if (Controller1.Axis3.position() > 0) {
Drivetrain.drive(forward);
}
else if (Controller1.Axis3.position() < 0) {
Drivetrain.drive(reverse);
}
// Press A to use controller configured actions again
else if (Controller1.ButtonA.pressing()) {
break;
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
RemoteControlCodeEnabled = true;