ടൈമർ#

ആമുഖം#

timer ക്ലാസ് brain ബേസ് ക്ലാസിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ്, കൂടാതെ കഴിഞ്ഞുപോയ സമയം അളക്കുന്നതിനുള്ള പ്രവർത്തനക്ഷമത നൽകുന്നു, ഒരു VEX V5 പ്രോഗ്രാമിനുള്ളിൽ ദൈർഘ്യങ്ങൾ ട്രാക്ക് ചെയ്യാനും സമയാധിഷ്ഠിത ഇവന്റുകൾ ഷെഡ്യൂൾ ചെയ്യാനും നിങ്ങളെ അനുവദിക്കുന്നു.

ആക്സസ്#

Brain.Timer

കുറിപ്പുകൾ#

  • Brain.Timer timer ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ്, അതേ പ്രവർത്തനം നൽകുന്നു.

ഉദാഹരണം#

/* 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 Functions
void clear();

Parameters

ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും സ്വീകരിക്കുന്നില്ല.

Return Values

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

Examples
while (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 Functions

1 — കഴിഞ്ഞുപോയ സമയം മില്ലിസെക്കൻഡുകളിൽ തിരികെ നൽകുന്നു.

uint32_t time() const;

2 — നിർദ്ദിഷ്ട സമയ യൂണിറ്റുകളിൽ കഴിഞ്ഞുപോയ സമയം നൽകുന്നു.

double time(
    timeUnits units ) const;

Parameters

പാരാമീറ്റർ

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

വിവരണം

units

timeUnits

കഴിഞ്ഞുപോയ സമയം തിരികെ നൽകാൻ ഉപയോഗിക്കുന്ന യൂണിറ്റുകൾ:

  • seconds / sec — സെക്കൻഡ്
  • msec — മില്ലിസെക്കൻഡ്

Return Values
  • പാരാമീറ്ററില്ലാത്ത ഫംഗ്ഷൻ (1) കഴിഞ്ഞുപോയ സമയത്തെ മില്ലിസെക്കൻഡുകളിൽ പ്രതിനിധീകരിക്കുന്ന uint32_t നൽകുന്നു.

  • timeUnits പാരാമീറ്റർ (2) ഉള്ള ഫംഗ്ഷൻ, നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ കഴിഞ്ഞുപോയ സമയത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

Notes
  • പ്രോജക്റ്റ് ആരംഭിക്കുമ്പോൾ ടൈമർ എണ്ണാൻ തുടങ്ങും.

  • clear വിളിക്കുന്നത് ടൈമർ മൂല്യം പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.

Examples
// 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 Functions

1 — ഒരു നിശ്ചിത കാലതാമസത്തിനുശേഷം റൺ ചെയ്യുന്നതിനായി ഒരു കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുകയും കോൾബാക്കിലേക്ക് ഉപയോക്തൃ നിർവചിച്ച മൂല്യം കൈമാറുകയും ചെയ്യുന്നു.

static void event(
    void (*callback)(void*),
    uint32_t value );

2 — ഒരു നിശ്ചിത കാലതാമസത്തിനുശേഷം പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുന്നു.

static void event(
    void (*callback)(void),
    uint32_t value );

Parameters

പാരാമീറ്റർ

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

വിവരണം

callback

void ()(void)

നിർദ്ദിഷ്ട കാലതാമസത്തിന് ശേഷം വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷൻ, ഉപയോക്തൃ നിർവചിച്ച ആർഗ്യുമെന്റ് സ്വീകരിക്കുന്നു.

callback

void (*)(void)

നിർദ്ദിഷ്ട കാലതാമസത്തിന് ശേഷം വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷൻ.

value

uint32_t

കോൾബാക്ക് ഫംഗ്ഷൻ നടപ്പിലാക്കുന്നതിന് മുമ്പുള്ള കാലതാമസം, മില്ലിസെക്കൻഡുകളിൽ.

Return Values

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

Notes
  • ഈ ഫംഗ്ഷൻ ഒരു തവണ മാത്രം കോൾബാക്ക് ഷെഡ്യൂൾ ചെയ്യുന്നു; ഇത് യാന്ത്രികമായി ആവർത്തിക്കുന്നില്ല.

  • കോൾബാക്ക് ഫംഗ്ഷൻ void നൽകണം.

  • ഒന്നിലധികം പരിപാടികൾ ഒരേ സമയം ഷെഡ്യൂൾ ചെയ്തേക്കാം.

Examples

ഫംഗ്ഷൻ നിർവചിക്കുക ( 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);
}