Zamanlayıcı#
giriiş#
timer sınıfı, brain temel sınıfından türetilmiştir ve geçen zamanı ölçme işlevselliği sağlayarak VEX EXP programı içinde süreleri izlemenize ve zamana dayalı olayları planlamanıza olanak tanır.
Erişim#
Brain.Timer
Notlar#
Brain.Timer,timersınıfının bir örneğidir ve aynı işlevselliği sağlar.
Örnek#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the EXP 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);
}
Ü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 brain örneği oluşturulmalıdır:
// Create the EXP Brain
brain Brain = brain();
clear#
Zamanlayıcının mevcut değerini sıfırlar. Ardından, zamanlayıcı hemen sıfırdan tekrar saymaya başlar.
Available Functionsvoid clear();
Bu fonksiyon herhangi bir parametre kabul etmez.
Return ValuesBu fonksiyon bir değer döndürmez.
Exampleswhile (true) {
// Reset the timer every time the check button is pressed
if (Brain.buttonCheck.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
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.
Proje başladığı anda 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", Brain.Timer.time());
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(); // Call turnOrange after 2 seconds Brain.Timer.event(turnOrange, 2000); }