Özel Zamanlayıcı#
giriiş#
timer sınıfı, zamanı tutmak ve Beynin zamanlayıcısından bağımsız bir zamanlayıcıyla etkileşim kurmak için kullanılır.
Sınıf Oluşturucu#
timer();
Sınıf Yıkıcısı#
timer nesnesini yok eder ve ilgili kaynakları serbest bırakır.
~timer();
Parametreler#
Bu yapıcı fonksiyon herhangi bir parametre kabul etmez.
Örnekler#
// Create a timer instance
timer myTimer = timer();
Üye Fonksiyonları#
timer sınıfı aşağıdaki üye fonksiyonlarını içerir:
clear— Zamanlayıcıyı sıfıra sıfırlar.time— Zamanlayıcının başlatılmasından bu yana geçen süreyi döndürür.event— Belirtilen milisaniye sayısından sonra, isteğe bağlı argümanlarla bir fonksiyonu çağırır.
Herhangi bir timer üye fonksiyonunu çağırmadan önce, aşağıda gösterildiği gibi bir timer örneği oluşturulmalıdır:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
Zamanlayıcıyı sıfıra ayarlar.
Available Functionsvoid clear();
Bu fonksiyon herhangi bir parametre kabul etmez.
Return ValuesBu fonksiyon bir değer döndürmez.
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#
Zamanlayıcının mevcut değerini döndürür.
Available Functions1 — Geçen süreyi milisaniye cinsinden döndürür.
uint32_t time() const;
Parameters2 — Belirtilen zaman birimlerinde geçen süreyi döndürür.
double time( timeUnits units ) const;
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
Geçen süreyi döndürmek için kullanılan birimler:
|
Parametresiz fonksiyon (1), geçen süreyi milisaniye cinsinden temsil eden
uint32_tdeğerini döndürür.timeUnitsparametresine sahip fonksiyon (2), belirtilen birimlerde geçen zamanı temsil edendoubledeğerini döndürür.
Özel zamanlayıcı oluşturulduğunda zamanlayıcı saymaya başlar.
clearçağrısı zamanlayıcı değerini sıfıra sıfırlar.
// 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#
Belirtilen gecikmeden sonra çalıştırılacak bir geri çağırma fonksiyonunu kaydeder.
Available Functions1 — Belirtilen bir gecikmeden sonra çalıştırılacak bir geri çağırma işlevi kaydeder ve geri çağırma işlevine kullanıcı tanımlı bir değer iletir.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Belirtilen gecikmeden sonra çalıştırılacak bir geri çağırma işlevi kaydeder.
static void event( void (*callback)(void), uint32_t value );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
Belirtilen gecikmeden sonra çağrılacak ve kullanıcı tanımlı bir argüman alacak bir fonksiyon. |
|
|
Belirtilen gecikmeden sonra çağrılacak fonksiyon. |
|
|
Geri çağrı fonksiyonunun yürütülmesinden önce geçmesi gereken gecikme süresi (milisaniye cinsinden). |
Bu fonksiyon bir değer döndürmez.
NotesBu fonksiyon tek seferlik bir geri çağırma işlemi planlar; otomatik olarak tekrarlanmaz.
Geri çağrı fonksiyonu
voiddeğerini döndürmelidir.Aynı anda birden fazla etkinlik planlanabilir.
Fonksiyonu tanımlayın (
int main()dışında)// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Fonksiyonu
int main()içinde kaydedin.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); }