ข้อมูลอ้างอิงข้อความ
ข้อความจะถูกส่งด้วยอุปกรณ์ emitter และรับด้วยอุปกรณ์ receiver ดูตัวอย่างได้ในบทเรียนการสื่อสาร
สตริงรูปแบบด้านล่างเป็นของโมดูล struct ของ Python
ข้อความที่หุ่นยนต์ส่ง
หัวข้อที่มีชื่อว่า “ข้อความที่หุ่นยนต์ส่ง”| ข้อความ | รูปแบบ | ความยาว | วัตถุประสงค์ |
|---|---|---|---|
| รายงานสัญลักษณ์บนผนัง | i i c: x, z, ชนิด |
9 ไบต์ | ตำแหน่งมีหน่วยเป็นเซนติเมตร และชนิดเป็นหนึ่งใน H, S, U, F, P, C, O หุ่นยนต์ต้องหยุดนิ่งอย่างน้อย 1 วินาที |
| ข้อมูลแผนที่ | 2i ตามด้วยข้อความ UTF-8: จำนวนแถว จำนวนคอลัมน์ และเซลล์ที่คั่นด้วยจุลภาค |
ความยาวอื่นใดก็ได้ | จัดเก็บแผนที่ โดยยังไม่ประเมิน |
M |
c |
1 ไบต์ | ประเมินแผนที่ที่จัดเก็บไว้ ทำได้เพียงครั้งเดียว |
L |
c |
1 ไบต์ | เรียกการไม่มีความคืบหน้า (lack of progress) |
G |
c |
1 ไบต์ | ขอข้อมูลของเกม |
E |
c |
1 ไบต์ | จบเกม ได้รับโบนัสออกจากสนาม (exit bonus) หากหุ่นยนต์อยู่บนช่องเริ่มต้นและได้ระบุสัญลักษณ์บนผนังไปแล้ว |
Erebus แยกแยะข้อความเหล่านี้จากความยาว ดังนั้นการรายงานต้องมีขนาด 9 ไบต์พอดี
ข้อความที่หุ่นยนต์ได้รับ
หัวข้อที่มีชื่อว่า “ข้อความที่หุ่นยนต์ได้รับ”| ข้อความ | รูปแบบ | ความยาว | วัตถุประสงค์ |
|---|---|---|---|
L |
c |
1 ไบต์ | เกิดการไม่มีความคืบหน้าขึ้นแล้ว |
G |
c f i i: G, คะแนน, เวลาเกมที่เหลือ, เวลาจริงที่เหลือ |
16 ไบต์ | คำตอบของ G เวลามีหน่วยเป็นวินาที |
โปรดทราบว่าแพ็กเก็ตของ G มีไบต์เติม (padding) เพราะรูปแบบ struct ข้างต้นจัดแนวค่า float: คะแนนเริ่มที่ไบต์ 4 และเวลาเริ่มที่ไบต์ 8 และ 12
ฟังก์ชัน Webots ที่ใช้บ่อย
หัวข้อที่มีชื่อว่า “ฟังก์ชัน Webots ที่ใช้บ่อย”| ฟังก์ชัน | คำอธิบาย |
|---|---|
robot.getDevice(name) |
รับอุปกรณ์ตามชื่อ ใน C++ ให้ใช้ robot->getMotor(name), robot->getCamera(name) เป็นต้น |
robot.step(timeStep) |
ทำให้การจำลองเดินหน้า คืนค่า -1 เมื่อการจำลองสิ้นสุด |
robot.getTime() |
รับเวลาในการจำลอง เป็นวินาที |
device.enable(timeStep) |
เปิดใช้งานเซนเซอร์ |
motor.setPosition(float("inf")) |
ให้มอเตอร์หมุนได้ไม่จำกัด |
motor.setVelocity(speed) |
ตั้งความเร็วของมอเตอร์ เป็นเรเดียนต่อวินาที |
