ടൈമർ#
ആമുഖം#
timer ക്ലാസ് brain ബേസ് ക്ലാസിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ്, കൂടാതെ കഴിഞ്ഞുപോയ സമയം അളക്കുന്നതിനുള്ള പ്രവർത്തനക്ഷമത നൽകുന്നു, ഒരു VEX V5 പ്രോഗ്രാമിനുള്ളിൽ ദൈർഘ്യങ്ങൾ ട്രാക്ക് ചെയ്യാനും സമയാധിഷ്ഠിത ഇവന്റുകൾ ഷെഡ്യൂൾ ചെയ്യാനും നിങ്ങളെ അനുവദിക്കുന്നു.
ആക്സസ്#
Brain.Timer
കുറിപ്പുകൾ#
Brain.Timertimerക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ്, അതേ പ്രവർത്തനം നൽകുന്നു.
ഉദാഹരണം#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the V5 Brain
brain Brain = brain();
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
അംഗ പ്രവർത്തനങ്ങൾ#
timer ക്ലാസിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു:
clear— ടൈമർ പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.time— ടൈമർ ആരംഭിച്ചതിനുശേഷം കഴിഞ്ഞുപോയ സമയം തിരികെ നൽകുന്നു.event— ഓപ്ഷണൽ ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ച്, ഒരു നിശ്ചിത എണ്ണം മില്ലിസെക്കൻഡുകൾക്ക് ശേഷം ഒരു ഫംഗ്ഷൻ വിളിക്കുന്നു.
ഏതെങ്കിലും timer അംഗ ഫംഗ്ഷനുകൾ വിളിക്കുന്നതിന് മുമ്പ്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു brain ഇൻസ്റ്റൻസ് സൃഷ്ടിക്കണം:
// Create the V5 Brain
brain Brain = brain();
clear#
ടൈമറിന്റെ നിലവിലെ മൂല്യം പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നു. അതിനുശേഷം, ടൈമർ ഉടൻ തന്നെ പൂജ്യത്തിൽ നിന്ന് വീണ്ടും എണ്ണാൻ തുടങ്ങും.
Available Functionsvoid clear();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും സ്വീകരിക്കുന്നില്ല.
Return Valuesഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Exampleswhile (true) {
// Reset the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
wait(50, msec);
}
time#
ടൈമറിന്റെ നിലവിലെ മൂല്യം നൽകുന്നു.
Available Functions1 — കഴിഞ്ഞുപോയ സമയം മില്ലിസെക്കൻഡുകളിൽ തിരികെ നൽകുന്നു.
uint32_t time() const;
Parameters2 — നിർദ്ദിഷ്ട സമയ യൂണിറ്റുകളിൽ കഴിഞ്ഞുപോയ സമയം നൽകുന്നു.
double time( timeUnits units ) const;
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
കഴിഞ്ഞുപോയ സമയം തിരികെ നൽകാൻ ഉപയോഗിക്കുന്ന യൂണിറ്റുകൾ:
|
പാരാമീറ്ററില്ലാത്ത ഫംഗ്ഷൻ (1) കഴിഞ്ഞുപോയ സമയത്തെ മില്ലിസെക്കൻഡുകളിൽ പ്രതിനിധീകരിക്കുന്ന
uint32_tനൽകുന്നു.timeUnitsപാരാമീറ്റർ (2) ഉള്ള ഫംഗ്ഷൻ, നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ കഴിഞ്ഞുപോയ സമയത്തെ പ്രതിനിധീകരിക്കുന്നdoubleനൽകുന്നു.
പ്രോജക്റ്റ് ആരംഭിക്കുമ്പോൾ ടൈമർ എണ്ണാൻ തുടങ്ങും.
clearവിളിക്കുന്നത് ടൈമർ മൂല്യം പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
event#
ഒരു നിശ്ചിത കാലതാമസത്തിനുശേഷം നടപ്പിലാക്കേണ്ട ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.
Available Functions1 — ഒരു നിശ്ചിത കാലതാമസത്തിനുശേഷം റൺ ചെയ്യുന്നതിനായി ഒരു കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുകയും കോൾബാക്കിലേക്ക് ഉപയോക്തൃ നിർവചിച്ച മൂല്യം കൈമാറുകയും ചെയ്യുന്നു.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — ഒരു നിശ്ചിത കാലതാമസത്തിനുശേഷം പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുന്നു.
static void event( void (*callback)(void), uint32_t value );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
നിർദ്ദിഷ്ട കാലതാമസത്തിന് ശേഷം വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷൻ, ഉപയോക്തൃ നിർവചിച്ച ആർഗ്യുമെന്റ് സ്വീകരിക്കുന്നു. |
|
|
നിർദ്ദിഷ്ട കാലതാമസത്തിന് ശേഷം വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷൻ. |
|
|
കോൾബാക്ക് ഫംഗ്ഷൻ നടപ്പിലാക്കുന്നതിന് മുമ്പുള്ള കാലതാമസം, മില്ലിസെക്കൻഡുകളിൽ. |
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Notesഈ ഫംഗ്ഷൻ ഒരു തവണ മാത്രം കോൾബാക്ക് ഷെഡ്യൂൾ ചെയ്യുന്നു; ഇത് യാന്ത്രികമായി ആവർത്തിക്കുന്നില്ല.
കോൾബാക്ക് ഫംഗ്ഷൻ
voidനൽകണം.ഒന്നിലധികം പരിപാടികൾ ഒരേ സമയം ഷെഡ്യൂൾ ചെയ്തേക്കാം.
ഫംഗ്ഷൻ നിർവചിക്കുക (
int main()ന് പുറത്ത്)// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }
int main()നുള്ളിൽ ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുക.int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Call turnOrange after 2 seconds Brain.Timer.event(turnOrange, 2000); }