Mesaj başvurusu
Mesajlar emitter cihazıyla gönderilir ve receiver cihazıyla alınır. Örnekler için İletişim eğitimine bak.
Aşağıdaki biçim dizeleri Python’un struct modülüne aittir.
Robotun gönderdikleri
Bölüm başlığı “Robotun gönderdikleri”| Mesaj | Biçim | Uzunluk | Amaç |
|---|---|---|---|
| Duvar işareti bildirme | i i c: x, z, tür |
9 bayt | Konum santimetre cinsindendir ve tür H, S, U, F, P, C, O değerlerinden biridir. Robot en az 1 saniye durmuş olmalıdır. |
| Harita verisi | 2i ardından UTF-8 metin: satırlar, sütunlar, virgülle ayrılmış hücreler |
Diğer herhangi bir uzunluk | Haritayı değerlendirmeden saklar |
M |
c |
1 bayt | Saklanan haritayı değerlendirir. Bu yalnızca bir kez yapılabilir. |
L |
c |
1 bayt | İlerleme eksikliği çağırır |
G |
c |
1 bayt | Oyun bilgilerini ister |
E |
c |
1 bayt | Oyunu bitirir. Robot başlangıç karesindeyse ve bir duvar işaretini tanımladıysa çıkış bonusu verir. |
Erebus bu mesajları uzunluklarına göre ayırt eder, bu yüzden bir bildirim tam olarak 9 bayt olmalıdır.
Robotun aldıkları
Bölüm başlığı “Robotun aldıkları”| Mesaj | Biçim | Uzunluk | Amaç |
|---|---|---|---|
L |
c |
1 bayt | Bir ilerleme eksikliği oldu |
G |
c f i i: G, puan, kalan oyun süresi, kalan gerçek zaman |
16 bayt | G’ye yanıt. Süreler saniye cinsindendir. |
G paketinin dolgu (padding) içerdiğine dikkat et, çünkü yukarıdaki struct biçimi float değeri hizalar: puan 4. bayttan, süreler ise 8. ve 12. baytlardan başlar.
Sık kullanılan Webots fonksiyonları
Bölüm başlığı “Sık kullanılan Webots fonksiyonları”| Fonksiyon | Açıklama |
|---|---|
robot.getDevice(name) |
Bir cihazı adıyla alır. C++’ta robot->getMotor(name), robot->getCamera(name) vb. kullan. |
robot.step(timeStep) |
Simülasyonu ilerletir. Simülasyon bittiğinde -1 döndürür. |
robot.getTime() |
Simülasyon zamanını saniye cinsinden alır |
device.enable(timeStep) |
Bir sensörü etkinleştirir |
motor.setPosition(float("inf")) |
Motorun sınırsız dönmesini sağlar |
motor.setVelocity(speed) |
Bir motorun hızını radyan/saniye cinsinden ayarlar |
