19 Eylül 2019 Perşembe

HLA Frame Akışı

Giriş
HLA kullanırken RTI thread'ine bağımlı olmak yerine ayrı bir thread açmak en mantıklısı.

1. Frame Başında
Bir önceki frame'de gelen ve biriktirilen mesajlar işlenir. Örneği araba federesi en son konumunu göndermiştir ve bu mesaj işlenerek araba nesnesi güncellenir.

2. Hesaplamalar Yapılır
Gelen mesajlara göre yeni hesaplamalar yapılır. Örneğin arabanın kalan yakıtıyle gidebileceği menzil hesaplanır.

3. Frame Sonunda
Command Örüntüsü kullanılarak Management Command'ler çalıştırılır.

2.1 Save Synchronization
HLASaveFederationCommand  emri varsa HLA thread'i bloke olmadan kendi thread'im save işlemini yerine getirir. Emrin tüm federeler tarafından başarıyla çalıştırması beklenir.

2.2 Restore Synchronization
HLARestoreFederationCommand emri varsa HLA thread'i bloke olmadan kendi thread'im restore işlemini yerine getirir. Emrin tüm federeler tarafından başarıyla çalıştırması beklenir.

2.3 Time Synchronization
Önce bir sonraki time frame'e geçmek için RTIAmbassador.timeAdvanceRequest() çağrısı yapılır.
Daha sonra GrantTimeCommand emri beklenir.  Bu komutun gelmesi tüm federelerin zamanlarını başrayla ilerlettikleri anlamına gelir.

Bu komutun gelmesi ile içinde bulunduğumuz frame sonlanır ve bir sonraki frame'e geçmek için döngünün en başına gidilir.

Hiç yorum yok:

Yorum Gönder