कस्टम टाइमर#
परिचय#
timer क्लास का उपयोग समय रखने और ब्रेन के टाइमर से स्वतंत्र टाइमर के साथ बातचीत करने के लिए किया जाता है।
क्लास कंस्ट्रक्टर#
timer();
क्लास डिस्ट्रक्टर#
timer ऑब्जेक्ट को नष्ट करता है और उससे जुड़े संसाधनों को मुक्त करता है।
~timer();
पैरामीटर#
यह कंस्ट्रक्टर कोई पैरामीटर स्वीकार नहीं करता है।
उदाहरण#
// Create a timer instance
timer myTimer = timer();
सदस्य कार्य#
timer क्लास में निम्नलिखित सदस्य फ़ंक्शन शामिल हैं:
clear— टाइमर को शून्य पर रीसेट करता है।time— टाइमर शुरू होने के बाद से बीता हुआ समय लौटाता है।event— निर्दिष्ट मिलीसेकंड की संख्या के बाद एक फ़ंक्शन को कॉल करता है, वैकल्पिक तर्कों के साथ।
किसी भी timer सदस्य फ़ंक्शन को कॉल करने से पहले, एक timer इंस्टेंस बनाना आवश्यक है, जैसा कि नीचे दिखाया गया है:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
टाइमर को शून्य पर सेट करता है।
Available Functionsvoid clear();
यह फ़ंक्शन कोई पैरामीटर स्वीकार नहीं करता है।
Return Valuesइस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।
Exampleswhile (true) {
// Clear the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
myTimer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.time(msec));
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", myTimer.time(sec));
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(); timer myTimer = timer(); // Call turnOrange after 2 seconds myTimer.event(turnOrange, 2000); }