SD kart#
giriiş#
sdcard sınıfı, brain temel sınıfından türetilmiştir ve V5 Brain’e takılan çıkarılabilir bir SD kartta depolanan dosyalara erişim sağlar.
Robotunuz SD kartı kullanarak resimler gibi verileri yükleyebilir, dosyaları okuyup yazabilir ve daha sonra kullanılmak üzere veya bir bilgisayara aktarmak üzere bilgileri depolayabilir.
Access#
Brain.SDcard
Notes#
V5 Brain, 32 GB’a kadar SD kartları destekler.
SD kart FAT32 olarak biçimlendirilmelidir.
32 GB’tan büyük SD kartlar genellikle exFAT olarak biçimlendirilir ve bu da V5 Brain ile uyumlu değildir.
Erişilebilmesi için tüm dosyaların SD kartın kök dizinine yerleştirilmesi gerekmektedir.
Dosya işlemleri gerçekleştirilmeden önce SD kartın Brain cihazına takılması gerekmektedir.
Dosya adları ve yolları büyük/küçük harf duyarlıdır.
Example#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the V5 Brain
brain Brain = brain();
// Add more text and display file size
if (Brain.SDcard.exists("Text.txt")) {
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
}
Üye Fonksiyonları#
sdcard sınıfı aşağıdaki üye fonksiyonlarını içerir:
loadfile— SD karttaki bir dosyanın içeriğini kullanıcı tarafından sağlanan bir bellek arabelleğine yükler.savefile— Kullanıcı tarafından sağlanan bir arabellekten verileri V5 Brain’in SD kartındaki bir dosyaya kaydeder.appendfile— Kullanıcı tarafından sağlanan bir arabellekten gelen verileri V5 Brain’in SD kartındaki mevcut bir dosyanın sonuna ekler.isInserted— Beyne bir SD kartın takılı olup olmadığını döndürür.size— V5 Brain’in SD kartında depolanan bir dosyanın boyutunu döndürür.exists— Belirtilen ada sahip bir dosyanın V5 Brain’in SD kartında olup olmadığını döndürür.
SD kartta saklanan .bmp ve .png dosyaları, drawImageFromFile kullanılarak V5 Beyin ekranında görüntülenebilir; bu dosyaya Brain.Screen üzerinden erişilir.
Herhangi bir sdcard üye fonksiyonunu çağırmadan önce, aşağıda gösterildiği gibi bir brain örneği oluşturulmalıdır:
// Create the V5 Brain
brain Brain = brain();
loadfile#
SD karttaki dosyanın içeriğini kullanıcının sağladığı bir bellek tamponuna yükler.
Available Functionsint32_t loadfile(
const char* name,
uint8_t* buffer,
int32_t len );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
SD karttan yüklenecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir. |
|
|
Dosya verilerinin saklanacağı arabelleğe işaret eden bir gösterici. |
|
|
Dosyadan okunacak maksimum bayt sayısı, genellikle arabellek boyutuna ayarlanır. |
Dosyadan başarıyla okunan bayt sayısını temsil eden int32_t değerini döndürür:
Pozitif bir değer, arabelleğe kaç bayt yüklendiğini gösterir.
0, hiçbir veri okunmadığını gösterir.
Dosya
lenbüyükse, yalnızca ilklenbaytı okunur.Tampon bellek, istenen verileri tutabilecek kadar büyük olmalıdır.
Bu fonksiyon ham baytları okur ve sonuna boş karakter (null) eklemez.
// Check for SD card and show a file's text
if (Brain.SDcard.isInserted()) {
// Create a message to save to the SD card
uint8_t message[] = "Hello from VEX!";
// Save the message into "Text.txt"
Brain.SDcard.savefile("Text.txt", message, sizeof(message));
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
} else {
Brain.Screen.print("Insert SD card");
}
savefile#
Kullanıcı tarafından sağlanan bir arabellekteki verileri V5 Brain’in SD kartındaki bir dosyaya kaydeder.
Available Functionsint32_t savefile(
const char* name,
uint8_t* buffer,
int32_t len );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
Dosyanın kaydedileceği adı metin dizesi olarak belirtin. Dosya adı dosya uzantısını içermelidir. |
|
|
Dosyaya yazılacak verileri içeren bellek arabelleğine işaretçi. |
|
|
Tampondan dosyaya yazılacak bayt sayısı. |
Dosyaya başarıyla yazılan bayt sayısını temsil eden int32_t değerini döndürür:
Pozitif bir değer, kaç baytın kaydedildiğini gösterir.
0, hiçbir veri yazılmadığını gösterir.
Dosya
lenbüyükse, yalnızca ilklenbaytı okunur.Aynı isimde bir dosya zaten varsa, üzerine yazılacaktır.
Bu fonksiyon bellek tahsis etmez; arabellek kullanıcı tarafından oluşturulmalı ve yönetilmelidir.
Bu fonksiyon ham baytları yazar ve sonuna boş bir sonlandırıcı eklemez.
// Check for SD card and show a file's text
if (Brain.SDcard.isInserted()) {
// Create a message to save to the SD card
uint8_t message[] = "Hello from VEX!";
// Save the message into "Text.txt"
Brain.SDcard.savefile("Text.txt", message, sizeof(message));
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
} else {
Brain.Screen.print("Insert SD card");
}
appendfile#
Kullanıcı tarafından sağlanan bir arabellekteki verileri, V5 Brain’in SD kartındaki mevcut bir dosyanın sonuna ekler.
Available Functionsint32_t appendfile(
const char* name,
uint8_t* buffer,
int32_t len );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
SD karta veri eklenecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir. |
|
|
Dosyaya eklenecek verileri içeren bellek arabelleğine işaretçi. |
|
|
Tampondan dosyaya eklenecek bayt sayısı. |
Dosyaya başarıyla eklenen bayt sayısını temsil eden int32_t değerini döndürür:
Pozitif bir değer, eklenen bayt sayısını gösterir.
0, hiçbir veri eklenmediğini gösterir.
Dosya
lenbüyükse, yalnızca ilklenbaytı okunur.Dosyanın SD kartta zaten mevcut olması gerekir; bu işlev yeni bir dosya oluşturmaz.
Bu fonksiyon bellek tahsis etmez; arabellek kullanıcı tarafından oluşturulmalı ve yönetilmelidir.
Bu fonksiyon ham baytları ekler ve null sonlandırıcı eklemez.
// Create a message to save to a new file
uint8_t message[] = "Hello";
// Save only the characters, not the null terminator
Brain.SDcard.savefile("Message.txt", message, sizeof(message) - 1);
// Load the file
int fileSize = Brain.SDcard.size("Message.txt");
uint8_t buffer[fileSize + 1];
Brain.SDcard.loadfile("Message.txt", buffer, fileSize);
// Add null terminator so it can be printed safely
buffer[fileSize] = 0;
Brain.Screen.print("%s\n", buffer);
// Create more text to append to the same file
uint8_t moreText[] = " World!";
// Append only the characters, not the null terminator
Brain.SDcard.appendfile("Message.txt", moreText, sizeof(moreText) - 1);
// Load the updated file
fileSize = Brain.SDcard.size("Message.txt");
uint8_t buffer2[fileSize + 1];
Brain.SDcard.loadfile("Message.txt", buffer2, fileSize);
// Add null terminator
buffer2[fileSize] = 0;
Brain.Screen.newLine();
Brain.Screen.print("%s", buffer2);
isInserted#
V5 Brain’e şu anda bir SD kart takılı olup olmadığını döndürür.
Available Functionsbool isInserted();
Bu fonksiyon herhangi bir parametre kabul etmez.
Return ValuesSD kartın takılı olup olmadığını belirten bir Boolean değeri döndürür:
true— V5 Brain’e bir SD kart takılı.false— SD kart takılı değil.
Bu işlev yalnızca SD kartın varlığını kontrol eder; kartın biçimlendirilmiş veya okunabilir olup olmadığını doğrulamaz.
// Check for SD card and show a file's text
if (Brain.SDcard.isInserted()) {
// Create a message to save to the SD card
uint8_t message[] = "Hello from VEX!";
// Save the message into "Text.txt"
Brain.SDcard.savefile("Text.txt", message, sizeof(message));
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
} else {
Brain.Screen.print("Insert SD card");
}
size#
V5 Brain’in SD kartında depolanan dosyanın boyutunu döndürür.
Available Functionsint32_t size(
const char* name );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
SD karttaki dosyanın adı. Dosya adı, dosya uzantısını da içermelidir. |
Dosyanın bayt cinsinden boyutunu temsil eden int32_t değerini döndürür:
Pozitif bir değer, dosya boyutunu bayt cinsinden gösterir.
0dosyanın boş olduğunu veya dosyanın bulunamadığını gösterir.
Döndürülen boyut,
loadfileçağrılmadan önce bir arabellek ayırmak için kullanılabilir.
// Check for SD card and show a file's text
if (Brain.SDcard.isInserted()) {
// Create a message to save to the SD card
uint8_t message[] = "Hello from VEX!";
// Save the message into "Text.txt"
Brain.SDcard.savefile("Text.txt", message, sizeof(message));
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
} else {
Brain.Screen.print("Insert SD card");
}
exists#
Belirtilen adda bir dosyanın V5 Brain’in SD kartında olup olmadığını döndürür.
Available Functionsbool exists(
const char* name );
Parametre |
Tip |
Tanım |
|---|---|---|
|
|
SD kartta kontrol edilecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir. |
Dosyanın var olup olmadığını belirten bir Boolean değer döndürür:
true— SD kartta belirtilen ada sahip bir dosya mevcut.false— Belirtilen adda bir dosya mevcut değil.
// Add more text and display file size
if (Brain.SDcard.exists("Text.txt")) {
// Get the size of the file
int fileSize = Brain.SDcard.size("Text.txt");
// Make a buffer to hold the file data
uint8_t buffer[fileSize];
// Load the file from the SD card into the buffer
Brain.SDcard.loadfile("Text.txt", buffer, sizeof(buffer));
// Display the file contents on the screen
Brain.Screen.print("%s", buffer);
}