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 Functions
int32_t loadfile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametre

Tip

Tanım

name

const char*

SD karttan yüklenecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir.

buffer

uint8_t*

Dosya verilerinin saklanacağı arabelleğe işaret eden bir gösterici.

len

int32_t

Dosyadan okunacak maksimum bayt sayısı, genellikle arabellek boyutuna ayarlanır.

Return Values

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.

Notes
  • Dosya lenbüyükse, yalnızca ilk len baytı okunur.

  • Tampon bellek, istenen verileri tutabilecek kadar büyük olmalıdır.

  • Bu fonksiyon ham baytları okur ve sonuna boş karakter (null) eklemez.

Examples
// 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 Functions
int32_t savefile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametre

Tip

Tanım

name

const char*

Dosyanın kaydedileceği adı metin dizesi olarak belirtin. Dosya adı dosya uzantısını içermelidir.

buffer

uint8_t*

Dosyaya yazılacak verileri içeren bellek arabelleğine işaretçi.

len

int32_t

Tampondan dosyaya yazılacak bayt sayısı.

Return Values

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.

Notes
  • Dosya lenbüyükse, yalnızca ilk len baytı 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.

Examples
// 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 Functions
int32_t appendfile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametre

Tip

Tanım

name

const char*

SD karta veri eklenecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir.

buffer

uint8_t*

Dosyaya eklenecek verileri içeren bellek arabelleğine işaretçi.

len

int32_t

Tampondan dosyaya eklenecek bayt sayısı.

Return Values

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.

Notes
  • Dosya lenbüyükse, yalnızca ilk len baytı 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.

Examples
// 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 Functions
bool isInserted();

Parameters

Bu fonksiyon herhangi bir parametre kabul etmez.

Return Values

SD 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.

Notes
  • Bu işlev yalnızca SD kartın varlığını kontrol eder; kartın biçimlendirilmiş veya okunabilir olup olmadığını doğrulamaz.

Examples
// 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 Functions
int32_t size(
  const char* name );

Parameters

Parametre

Tip

Tanım

name

const char*

SD karttaki dosyanın adı. Dosya adı, dosya uzantısını da içermelidir.

Return Values

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.

  • 0 dosyanın boş olduğunu veya dosyanın bulunamadığını gösterir.

Notes
  • Döndürülen boyut, loadfile çağrılmadan önce bir arabellek ayırmak için kullanılabilir.

Examples
// 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 Functions
bool exists(
  const char* name );

Parameters

Parametre

Tip

Tanım

name

const char*

SD kartta kontrol edilecek dosyanın adı. Dosya adı, dosya uzantısını da içermelidir.

Return Values

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.

Examples
// 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);
}