C++#
VEX EXP C++ API Referansı, VEXcode EXP 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 EXP 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:
Giriş - Bu dersin neyi temsil ettiğini ve ne zaman faydalı olduğunu açıklar.
Türetilmiş Sınıflar - Varsa, bu sınıfa dayalı olan tüm sınıfları listeler.
Sınıf Yapıcı Fonksiyonu veya Fonksiyonları - Sınıftan bir nesne oluşturmak için kullanılan sözdizimini gösterir.
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.
Parametreler - Nesne oluşturulurken kullanılan yapıcı parametrelerini açıklar.
Örnek - Nesnenin kodda nasıl oluşturulacağını gösterir.
Üye Fonksiyonları - Sınıfa ait fonksiyonları listeler, genellikle amaçlarına göre gruplandırılırlar.
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 |
Nesne |
Bir sınıftan oluşturulan adlandırılmış bir örnek, örneğin |
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 |
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 |
Temel C++ Sözlüğü#
Terim |
Anlamı |
|---|---|
Değişken |
Bir değer saklayan isim, örneğin |
Tip |
Bir şeyin depoladığı veri türü, örneğin |
Sicim |
Tırnak içindeki metin, örneğin |
int |
|
çift |
Ondalık sayı içerebilen bir sayı türü, örneğin |
bool |
|
Argüman |
Bir üye fonksiyonuna veya fonksiyon çağrısına geçirilen değer, örneğin |
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 |
|---|---|---|
|
|
Robotun hareket yönü: |
|
|
Hız, |
|
|
Hız birimi: |
Dönüş Değeri
Bu fonksiyon bir değer döndürmez.
Notlar
drivebekleme yapmaz; proje, çağrıdan hemen sonra bir sonraki kod satırını yürütmeye devam edecektir.Aktarma organları,
stopkomutu verilene veya başka bir aktarma organı hareket fonksiyonu yürütülene kadar hareket etmeye devam edecektir.isDoneveisMovinggibi işlevler, hedef tabanlı hareket kullanmadığı içindriveiç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ı, Hareket, Beyin, Kontrolcü, 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.