C++#

VEX V5 C++ API Referansı, VEXcode V5 C++ projelerinde kullanılan sınıfları, nesneleri, kurucuları, üye fonksiyonlarını ve değişkenleri açıklamaktadır.

Bir cihazın veya özelliğin nasıl oluşturulduğunu anlamak, hangi fonksiyon imzasını kullanacağınızı kontrol etmek veya bir sınıftaki ilgili üye fonksiyonlarını karşılaştırmak istediğinizde bu referansı kullanın.

VEXcode V5 C++ projelerinde C++ komutları kullanılır. C++ API bilgileri, VEX Visual Studio Code uzantısı ile Visual Studio Code’da yazılan projeleri de destekleyebilir.

C++ Sınıf Sayfasını Nasıl Okuyabilirsiniz?#

Bir C++ sınıf sayfası genellikle şu sırayı izler:

  1. Giriş - Bu dersin neyi temsil ettiğini ve ne zaman faydalı olduğunu açıklar.

  2. Türetilmiş Sınıflar - Varsa, bu sınıfa dayalı olan tüm sınıfları listeler.

  3. Sınıf Yapıcı Fonksiyonu veya Fonksiyonları - Sınıftan bir nesne oluşturmak için kullanılan sözdizimini gösterir.

  4. Sınıf Yıkıcı Fonksiyonu - Nesneyi yok etmek ve varsa kaynaklarını serbest bırakmak için kullanılan sözdizimini gösterir.

  5. Parametreler - Nesne oluşturulurken kullanılan yapıcı parametrelerini açıklar.

  6. Örnek - Nesnenin kodda nasıl oluşturulacağını gösterir.

  7. Üye Fonksiyonları - Sınıfa ait fonksiyonları listeler, genellikle amaçlarına göre gruplandırılırlar.

  8. Fonksiyon Açıklamaları - Her bir üye fonksiyonunu, mevcut fonksiyonları, parametreleri, dönüş değerlerini, notları ve örnekleri de içerecek şekilde açıklar.

Her sayfada her bölüm bulunmaz. Örneğin, bazı sayfalarda türetilmiş sınıflar yer almaz ve bazı fonksiyonların parametreleri veya dönüş değerleri yoktur.

Ortak C++ API Öğeleri#

Element

Anlamı

Sınıf

Bir aygıt veya özellik için C++ türü, örneğin motor veya drivetrain.

Nesne

Bir sınıftan oluşturulan adlandırılmış bir örnek, örneğin motor Motor1 veya drivetrain myDrivetrain.

Yapıcı

Bir sınıftan nesne oluşturmak için kullanılan kod.

Üye Fonksiyonu

Bir nesne üzerinde çağrılan komut, örneğin myDrivetrain.drive(…).

Mevcut Fonksiyon

Üye fonksiyon için kullanılabilecek tek bir fonksiyon imzası. Bazı üye fonksiyonların birden fazla kullanılabilir fonksiyonu vardır.

Parametre

Bir yapıcıya veya fonksiyona, ne yapacağını kontrol etmek için iletilen bir değer.

Dönüş Değeri

Bir fonksiyonun döndürdüğü değer, örneğin bool, int32_tveya double.

Temel C++ Sözlüğü#

Terim

Anlamı

Değişken

Bir değer saklayan isim, örneğin int speed = 50;.

Tip

Bir şeyin depoladığı veri türü, örneğin int, doubleveya bool gibi.

Sicim

Tırnak içindeki metin, örneğin “Hello”.

int

90 gibi pozitif veya negatif tam sayı türü.

çift

Ondalık sayı içerebilen bir sayı türü, örneğin 25.5.

bool

true veya false değerlerinden birini alan bir değer.

Argüman

Bir üye fonksiyonuna veya fonksiyon çağrısına geçirilen değer, örneğin forward in myDrivetrain.drive(forward).

Yapıcılar ve Nesneler#

Birçok C++ sınıfının üye fonksiyonlarını kullanmadan önce bir nesnenin var olması gerekir. Yapıcı fonksiyon, bu nesnenin nasıl oluşturulacağını gösterir.

Örneğin, bir motor nesnesi, yapıcıya ihtiyaç duyduğu port veya yapılandırma bilgilerini vererek oluşturulabilir:

motor Motor1 = motor(PORT1, false);

Nesne oluşturulduktan sonra, üye fonksiyonları çağrılabilir:

Motor1.spin(forward);

VEXcode’da aygıt yapılandırması genellikle Aygıt Menüsü tarafından otomatik olarak oluşturulur. VEX eklentisine sahip Visual Studio Code’da ise yapıcı fonksiyonların manuel olarak yazılması gerekebilir.

Doğru Kullanılabilir Fonksiyonu Seçmek#

Bazı üye fonksiyonlarının birden fazla kullanılabilir işlevi vardır. Her fonksiyon farklı bir parametre kümesi kullanır, bu nedenle projenizin sağlaması gereken değerlerle eşleşen fonksiyonu seçin.

Örneğin, bir aktarma organı fonksiyonunun, mevcut hızı kullanan bir sürümü ve projenin bir hız seçmesine olanak tanıyan başka bir sürümü olabilir:

void drive(directionType dir);

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

Her iki fonksiyon da drivesürüşü çağırır, ancak ikinci fonksiyon hız parametrelerini de içerdiği için daha fazla kontrol sağlar.

Örnek Fonksiyon Girişi#

sürmek#

drive robotu sonsuza dek ileri veya geri hareket ettirir. Robot, dönme veya durma gibi başka bir işlem verilene kadar hareket etmeye devam edecektir. RPM veya DPS için limit, tahrik sisteminin dişli oranına göre değişir.

Mevcut Fonksiyonlar

void drive(directionType dir);

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

Parametre

Tip

Tanım

dir

directionType

Robotun hareket yönü: forward veya reverse.

velocity

double

Hız, velocityUnits::pctkullanıldığında %0 ile %100 arasında, rpmkullanıldığında 0 ile 600 rpm arasında veya dpskullanıldığında 0 ile 3600 derece/saniye arasında değişir. Hız belirtilmezse, robot mevcut sürüş hızında hareket eder.

units

velocityUnits

Hız birimi: velocityUnits::pct (yüzde), rpm (dakikadaki dönüş sayısı) veya dps (saniyede derece).

Dönüş Değeri

Bu fonksiyon bir değer döndürmez.

Notlar

  • drive bekleme yapmaz; proje, çağrıdan hemen sonra bir sonraki kod satırını yürütmeye devam edecektir.

  • Aktarma organları, stop komutu verilene veya başka bir aktarma organı hareket fonksiyonu yürütülene kadar hareket etmeye devam edecektir.

  • isDone ve isMoving gibi işlevler, hedef tabanlı hareket kullanmadığı için driveiçin geçerli değildir.

Örnek

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

Bekleme ve Beklememe Davranışı#

Bazı C++ hareket fonksiyonları, projenin bir sonraki kod satırına geçmeden önce bir işlemin tamamlanmasını bekler. Diğer fonksiyonlar ise bir işlemi başlatır ve bir sonraki satırın hemen çalışmasına izin verir.

  • Bekleme - Proje, fonksiyonun tamamlanmasını bekler.

  • Beklemesiz - Proje fonksiyonu başlatır ve hemen bir sonraki satıra geçer.

Some functions include a parameter such as waitForCompletion to choose this behavior. For those functions, true usually makes the project wait, while false lets the next line run right away.

Alt Bölümlerdeki Komutlar#

C++ komutları, aygıt veya konuya göre düzenlenmiştir. Örneğin, Aktarma Organları, Motorlar, Kontrolcü, Beyin, Akıllı Bağlantı Noktası aygıtları, 3 Kablolu aygıtlar, Konsol, Mantık ve VEXlink için komutlar kendi alt bölümlerinde gruplandırılmıştır.