C++#

Referensi API C++ VEX IQ (generasi ke-1) menjelaskan kelas, objek, konstruktor, fungsi anggota, dan variabel yang digunakan dalam proyek C++ VEXcode.

Gunakan referensi ini ketika Anda ingin memahami bagaimana suatu perangkat atau fitur dibuat, memeriksa tanda tangan fungsi mana yang harus digunakan, atau membandingkan fungsi anggota terkait dalam suatu kelas.

Perintah C++ digunakan dalam proyek C++ VEXcode IQ. Halaman C++ diatur secara berbeda dari halaman Blok karena banyak perintah termasuk dalam sebuah kelas. Sebuah halaman mungkin pertama-tama menjelaskan kelas dan cara membuat objek, kemudian mencantumkan fungsi anggota yang dapat dipanggil pada objek tersebut.

Cara Membaca Halaman Kelas C++#

Halaman kelas C++ biasanya mengikuti urutan ini:

  1. Pendahuluan - Menjelaskan apa yang diwakili oleh kelas ini dan kapan kelas ini berguna.

  2. Kelas Turunan - Mencantumkan kelas-kelas yang didasarkan pada kelas ini, jika ada.

  3. Konstruktor Kelas - Menunjukkan sintaks yang digunakan untuk membuat objek dari kelas.

  4. Destructor Kelas - Menunjukkan sintaks yang digunakan untuk menghancurkan objek dan melepaskan sumber dayanya, jika berlaku.

  5. Parameter - Menjelaskan parameter konstruktor yang digunakan saat membuat objek.

  6. Contoh - Menunjukkan cara membuat objek dalam kode.

  7. Fungsi Anggota - Mencantumkan fungsi-fungsi yang dimiliki oleh kelas, seringkali dikelompokkan berdasarkan tujuannya.

  8. Entri Fungsi - Menjelaskan setiap fungsi anggota, termasuk fungsi yang tersedia, parameter, nilai kembalian, catatan, dan contoh.

Tidak setiap halaman memiliki setiap bagian. Misalnya, beberapa halaman tidak menyertakan kelas turunan, dan beberapa fungsi tidak memiliki parameter atau nilai kembalian.

Elemen API C++ Umum#

Elemen

Apa artinya

Kelas

Tipe C++ untuk perangkat atau fitur, seperti bumper atau drivetrain.

Obyek

Instance bernama yang dibuat dari sebuah kelas, seperti bumper Bumper1 atau drivetrain myDrivetrain.

Konstruktor

Kode yang digunakan untuk membuat objek dari suatu kelas.

Fungsi Anggota

Perintah yang dipanggil pada suatu objek, seperti myDrivetrain.drive(…).

Fungsi yang Tersedia

Satu tanda tangan fungsi yang tepat yang dapat digunakan untuk fungsi anggota. Beberapa fungsi anggota memiliki lebih dari satu fungsi yang tersedia.

Parameter

Nilai yang diteruskan ke konstruktor atau fungsi untuk mengontrol apa yang dilakukannya.

Nilai Kembalian

Nilai yang dikembalikan oleh suatu fungsi, seperti bool, int32_t, atau double.

Kosakata Dasar C++#

Ketentuan

Apa artinya

Variabel

Nama yang menyimpan nilai, seperti int speed = 50;.

Jenis

Jenis data yang disimpan oleh sesuatu, seperti int, double, atau bool.

Rangkaian

Teks di dalam tanda kutip, seperti “Hello”.

int

Jenis bilangan bulat positif atau negatif, seperti 90.

dobel

Tipe angka yang dapat mencakup desimal, seperti 25.5.

bool

Nilai yang berupa true atau false.

Argumen

Nilai yang diteruskan ke fungsi anggota atau panggilan fungsi, seperti forward in myDrivetrain.drive(forward).

Konstruktor dan Objek#

Sebelum menggunakan fungsi anggota dari banyak kelas C++, sebuah objek harus ada terlebih dahulu. Konstruktor menunjukkan cara membuat objek tersebut.

Sebagai contoh, objek Bumper Switch dapat dibuat dengan memberikan konstruktor Smart Port tempat sensor terhubung:

bumper Bumper1 = bumper(PORT1);

Setelah objek dibuat, fungsi anggotanya dapat dipanggil:

Bumper1.pressing();

Di VEXcode, konfigurasi perangkat sering kali dihasilkan secara otomatis oleh Menu Perangkat. Di VS Code, konstruktor mungkin perlu ditulis secara manual.

Memilih Fungsi yang Tersedia dengan Tepat#

Beberapa fungsi anggota memiliki lebih dari satu fungsi yang tersedia. Setiap fungsi menggunakan serangkaian parameter yang berbeda, jadi pilihlah fungsi yang sesuai dengan nilai yang perlu disediakan oleh proyek Anda.

Sebagai contoh, sebuah fungsi penggerak mungkin memiliki satu versi yang menggunakan kecepatan saat ini dan versi lain yang memungkinkan proyek untuk memilih kecepatan:

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Kedua versi tersebut menyebut drive, tetapi versi kedua memberikan kontrol lebih karena menyertakan parameter kecepatan.

Contoh Entri Fungsi#

menyetir#

Perintah drive menggerakkan robot maju atau mundur tanpa henti. Robot akan terus bergerak hingga diberi perintah lain, seperti berbelok atau berhenti.

Fungsi yang Tersedia

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Parameter

Jenis

Keterangan

dir

directionType

Arah pergerakan robot: forward atau reverse.

velocity

double

Kecepatan penggerak berkisar dari 0% hingga 100% saat menggunakan velocityUnits::pct, dari 0 hingga 120 rpm saat menggunakan rpm, atau dari 0 hingga 720 derajat per detik saat menggunakan dpsJika tidak ada kecepatan yang diberikan, robot akan bergerak dengan kecepatan penggerak saat ini.

units

velocityUnits

Satuan kecepatan: velocityUnits::pct (persen), rpm (putaran per menit), atau dps (derajat per detik).

Nilai Kembalian

Fungsi ini tidak mengembalikan nilai.

Catatan

  • drive tidak menunggu. Proyek akan menjalankan baris kode berikutnya segera.

  • Robot akan terus bergerak hingga perintah stop dipanggil atau fungsi pergerakan penggerak lainnya dijalankan.

  • isDone dan isMoving tidak digunakan dengan drive karena drive tidak memiliki jarak target.

Contoh

// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

Perilaku Menunggu dan Tidak Menunggu#

Beberapa fungsi perpindahan dalam C++ menunggu hingga suatu tindakan selesai sebelum proyek beralih ke baris kode berikutnya. Fungsi lain memulai suatu tindakan dan memungkinkan baris berikutnya untuk dijalankan segera.

  • Menunggu - Proyek menunggu hingga fungsi selesai.

  • Tanpa Menunggu - Proyek memulai fungsi dan langsung melanjutkan ke baris berikutnya.

Beberapa fungsi menyertakan parameter seperti waitForCompletion untuk memilih perilaku ini. Untuk fungsi-fungsi tersebut, true biasanya membuat proyek menunggu, sedangkan false memungkinkan baris berikutnya berjalan segera.

Perintah dalam Subbagian#

Perintah C++ diorganisir berdasarkan perangkat atau topik. Misalnya, perintah untuk Brain, Controller, Drivetrain, Events, Motion, perangkat Smart Port, Threads, dan Logic dikelompokkan ke dalam subbagiannya masing-masing.