C++#
เอกสารอ้างอิง API ของ VEX IQ (รุ่นที่ 2) ในภาษา C++ อธิบายเกี่ยวกับคลาส อ็อบเจ็กต์ คอนสตรัคเตอร์ ฟังก์ชันสมาชิก และตัวแปรที่ใช้ในโปรเจ็กต์ VEXcode IQ ในภาษา C++
ใช้เอกสารอ้างอิงนี้เมื่อคุณต้องการทำความเข้าใจวิธีการสร้างอุปกรณ์หรือฟีเจอร์ ตรวจสอบว่าควรใช้รูปแบบการเรียกใช้ฟังก์ชันใด หรือเปรียบเทียบฟังก์ชันสมาชิกที่เกี่ยวข้องในคลาสเดียวกัน
คำสั่ง C++ ถูกใช้ในโปรเจ็กต์ C++ ของ VEXcode IQ ข้อมูล API ของ C++ ยังสามารถสนับสนุนโปรเจ็กต์ที่เขียนใน Visual Studio Code โดยใช้ส่วนขยาย VEX Visual Studio Code ได้อีกด้วย
วิธีการอ่านหน้าข้อมูลคลาสของภาษา C++#
โดยทั่วไปแล้ว หน้าแสดงโครงสร้างคลาสของภาษา C++ จะมีลำดับดังนี้:
บทนำ - อธิบายว่าคลาสนี้หมายถึงอะไรและมีประโยชน์เมื่อใด
คลาสที่สืบทอด - แสดงรายการคลาสใดๆ ที่อิงตามคลาสนี้ หากมี
ตัวสร้างคลาส - แสดงไวยากรณ์ที่ใช้ในการสร้างอ็อบเจ็กต์จากคลาส
ตัวทำลายคลาส - แสดงไวยากรณ์ที่ใช้ในการทำลายวัตถุและปล่อยทรัพยากรของวัตถุนั้น หากมี
พารามิเตอร์ - อธิบายพารามิเตอร์ของคอนสตรัคเตอร์ที่ใช้ในการสร้างอ็อบเจ็กต์
ตัวอย่าง - แสดงวิธีการสร้างอ็อบเจ็กต์ในโค้ด
ฟังก์ชันสมาชิก - แสดงรายการฟังก์ชันที่อยู่ในคลาส โดยมักจัดกลุ่มตามวัตถุประสงค์
คำอธิบายฟังก์ชัน - อธิบายฟังก์ชันสมาชิกแต่ละตัว รวมถึงฟังก์ชันที่มีให้ใช้งาน พารามิเตอร์ ค่าที่ส่งคืน หมายเหตุ และตัวอย่าง
ไม่ใช่ทุกหน้าจะมีทุกส่วน ตัวอย่างเช่น บางหน้าไม่มีคลาสที่สืบทอดมา และบางฟังก์ชันไม่มีพารามิเตอร์หรือค่าส่งคืน
องค์ประกอบ API ทั่วไปของ C++#
องค์ประกอบ |
มันหมายความว่าอย่างไร |
|---|---|
ระดับ |
ประเภท C++ สำหรับอุปกรณ์หรือคุณลักษณะ เช่น |
วัตถุ |
อินสแตนซ์ที่มีชื่อซึ่งสร้างขึ้นจากคลาส เช่น |
ผู้สร้าง |
โค้ดที่ใช้สร้างอ็อบเจ็กต์จากคลาส |
ฟังก์ชันสมาชิก |
คำสั่งที่เรียกใช้กับวัตถุ เช่น |
ฟังก์ชันที่มีให้ใช้งาน |
รูปแบบฟังก์ชันที่แน่นอนเพียงรูปแบบเดียวที่สามารถใช้สำหรับฟังก์ชันสมาชิกได้ ฟังก์ชันสมาชิกบางฟังก์ชันอาจมีฟังก์ชันให้เลือกใช้มากกว่าหนึ่งแบบ |
พารามิเตอร์ |
ค่าที่ส่งเข้าไปในคอนสตรัคเตอร์หรือฟังก์ชันเพื่อควบคุมการทำงานของมัน |
ค่าที่ส่งคืน |
ค่าที่ฟังก์ชันส่งคืน เช่น |
คำศัพท์พื้นฐานของภาษา C++#
ภาคเรียน |
มันหมายความว่าอย่างไร |
|---|---|
ตัวแปร |
ชื่อที่เก็บค่า เช่น |
พิมพ์ |
ประเภทของข้อมูลที่จัดเก็บ เช่น |
สตริง |
ข้อความภายในเครื่องหมายคำพูด เช่น |
ภายใน |
ประเภทจำนวนเต็มบวกหรือลบ เช่น |
สองเท่า |
ประเภทตัวเลขที่สามารถมีจุดทศนิยมได้ เช่น |
บูล |
ค่าที่เป็น |
การโต้แย้ง |
ค่าที่ส่งผ่านเข้าไปในฟังก์ชันสมาชิกหรือการเรียกฟังก์ชัน เช่น |
ตัวสร้างและวัตถุ#
ก่อนที่จะใช้ฟังก์ชันสมาชิกจากคลาส C++ หลายๆ คลาส จำเป็นต้องมีอ็อบเจ็กต์อยู่ก่อนแล้ว โดยคอนสตรัคเตอร์จะแสดงวิธีการสร้างอ็อบเจ็กต์นั้น
ตัวอย่างเช่น สามารถสร้างอ็อบเจ็กต์อุปกรณ์ได้โดยการระบุพอร์ตหรือข้อมูลการกำหนดค่าที่จำเป็นให้กับคอนสตรัคเตอร์:
motor Motor1 = motor(PORT1, false);
หลังจากสร้างอ็อบเจ็กต์แล้ว สามารถเรียกใช้ฟังก์ชันสมาชิกของอ็อบเจ็กต์นั้นได้:
Motor1.spin(forward);
ใน VEXcode การกำหนดค่าอุปกรณ์มักจะถูกสร้างขึ้นโดยอัตโนมัติโดยเมนูอุปกรณ์ ใน Visual Studio Code ที่ใช้ส่วนขยาย VEX นั้น อาจจำเป็นต้องเขียนคอนสตรัคเตอร์ด้วยตนเอง
การเลือกฟังก์ชันที่เหมาะสมที่มีอยู่#
ฟังก์ชันสมาชิกบางฟังก์ชันมีฟังก์ชันให้เลือกใช้มากกว่าหนึ่งฟังก์ชัน แต่ละฟังก์ชันใช้ชุดพารามิเตอร์ที่แตกต่างกัน ดังนั้นให้เลือกฟังก์ชันที่ตรงกับค่าที่โครงการของคุณต้องการ
ตัวอย่างเช่น ฟังก์ชันระบบขับเคลื่อนอาจมีเวอร์ชันหนึ่งที่ใช้ความเร็วปัจจุบัน และอีกเวอร์ชันหนึ่งที่ให้โปรเจ็กต์เลือกความเร็วได้:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
ทั้งสองฟังก์ชันเรียกใช้คำสั่ง driveกัน แต่ฟังก์ชันที่สองให้การควบคุมมากกว่าเพราะมีพารามิเตอร์ความเร็วรวมอยู่ด้วย
ตัวอย่างการป้อนฟังก์ชัน#
ขับ#
คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด
ฟังก์ชันที่มีให้ใช้งาน
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
|
ความเร็วในการขับเคลื่อนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ค่าที่ส่งคืน
ฟังก์ชันนี้ไม่ส่งค่ากลับ
หมายเหตุ
driveคือคำสั่งที่ไม่รอ โปรเจ็กต์จะรันโค้ดบรรทัดถัดไปทันทีหุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะมีการเรียกใช้คำสั่ง
stopหรือจนกว่าจะมีการทำงานของฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่นๆisDoneและisMovingไม่ได้ใช้กับdriveเพราะdriveไม่มีระยะเป้าหมาย
ตัวอย่าง
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
พฤติกรรมการรอคอยและการไม่รอคอย#
ฟังก์ชันการเคลื่อนที่บางฟังก์ชันใน C++ จะรอจนกว่าการกระทำจะเสร็จสิ้นก่อนที่โปรเจ็กต์จะย้ายไปยังบรรทัดโค้ดถัดไป ในขณะที่ฟังก์ชันอื่นๆ จะเริ่มการกระทำและอนุญาตให้บรรทัดถัดไปทำงานได้ทันที
กำลังรอ - โปรเจ็กต์จะรอจนกว่าฟังก์ชันจะทำงานเสร็จสิ้น
ไม่ต้องรอ - โปรเจ็กต์จะเริ่มฟังก์ชันและดำเนินการต่อในบรรทัดถัดไปทันที
ฟังก์ชันบางฟังก์ชันมีพารามิเตอร์ เช่น waitForCompletion สำหรับฟังก์ชันเหล่านั้น true จะทำให้โปรเจ็กต์รอ ในขณะที่ false จะทำให้บรรทัดถัดไปทำงานทันที
คำสั่งในหัวข้อย่อย#
คำสั่ง C++ ถูกจัดระเบียบตามอุปกรณ์หรือหัวข้อ ตัวอย่างเช่น คำสั่งสำหรับระบบขับเคลื่อน ระบบการเคลื่อนไหว สมอง ตัวควบคุม อุปกรณ์ Smart Port เซ็นเซอร์วัดแรงเฉื่อย คอนโซล และตรรกะ จะถูกจัดกลุ่มไว้ในหมวดหมู่ย่อยของตนเอง