SD karta#

Zavedení#

Třída sdcard je odvozena od základní třídy brain a poskytuje přístup k souborům uloženým na vyjímatelné SD kartě vložené do V5 Brain.

Pomocí SD karty může váš robot načítat data, jako jsou obrázky, číst a zapisovat soubory a ukládat informace pro pozdější použití nebo přenos do počítače.

Access#

Brain.SDcard

Notes#

  • V5 Brain podporuje SD karty o velikosti až 32 GB.

  • SD karta musí být naformátována jako FAT32.

    • SD karty větší než 32 GB jsou obvykle formátovány jako exFAT, což není kompatibilní s V5 Brain.

  • Všechny soubory musí být umístěny v kořenovém adresáři SD karty, aby byly přístupné.

  • Před provedením operací se soubory musí být do Brainu vložena SD karta.

  • V názvech souborů a cestách se rozlišují velká a malá písmena.

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

Členské funkce#

Třída sdcard obsahuje následující členské funkce:

  • loadfile — Načte obsah souboru z SD karty do uživatelem poskytnuté vyrovnávací paměti.

  • savefile — Uloží data z uživatelem zadané vyrovnávací paměti do souboru na SD kartě V5 Brain.

  • appendfile — Připojí data z uživatelem zadané vyrovnávací paměti na konec existujícího souboru na SD kartě V5 Brain.

  • isInserted — Vrátí, zda je do Brainu vložena SD karta.

  • size — Vrátí velikost souboru uloženého na SD kartě V5 Brain.

  • exists — Vrátí, zda soubor se zadaným názvem existuje na SD kartě V5 Brain.

Soubory .bmp a .png uložené na SD kartě lze zobrazit na obrazovce V5 Brain pomocí funkce drawImageFromFile, ke které se přistupuje prostřednictvím funkce Brain.Screen.

Před voláním jakékoli členské funkce sdcard musí být vytvořena instance brain , jak je znázorněno níže:

// Create the V5 Brain
brain Brain = brain();

loadfile#

Načte obsah souboru z SD karty do uživatelem určené vyrovnávací paměti.

Available Functions
int32_t loadfile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru, který se má načíst z SD karty. Název souboru musí obsahovat příponu souboru.

buffer

uint8_t*

Ukazatel na vyrovnávací paměť, kam budou uložena data souboru.

len

int32_t

Maximální počet bajtů, které se mají ze souboru načíst, obvykle nastavený na velikost vyrovnávací paměti.

Return Values

Vrací hodnotu int32_t která představuje počet bajtů úspěšně přečtených ze souboru:

  • Kladná hodnota udává, kolik bajtů bylo načteno do vyrovnávací paměti.

  • 0 znamená, že nebyla přečtena žádná data.

Notes
  • Pokud je soubor větší než len, přečtou se pouze první len bajty.

  • Vyrovnávací paměť musí být dostatečně velká pro uložení požadovaných dat.

  • Tato funkce čte nezpracované bajty a nepřipojuje nulový ukončovací znak.

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#

Ukládá data z uživatelem zadané vyrovnávací paměti do souboru na SD kartě V5 Brain.

Available Functions
int32_t savefile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru, který se má uložit jako řetězec. Název souboru musí obsahovat příponu souboru.

buffer

uint8_t*

Ukazatel na vyrovnávací paměť obsahující data, která mají být zapsána do souboru.

len

int32_t

Počet bajtů, které se mají zapsat z vyrovnávací paměti do souboru.

Return Values

Vrací hodnotu int32_t představující počet bajtů úspěšně zapsaných do souboru:

  • Kladná hodnota udává, kolik bajtů bylo uloženo.

  • 0 znamená, že nebyla zapsána žádná data.

Notes
  • Pokud je soubor větší než len, přečtou se pouze první len bajty.

  • Pokud již soubor se stejným názvem existuje, bude přepsán.

  • Tato funkce nealokuje paměť; vyrovnávací paměť musí být vytvořena a spravována uživatelem.

  • Funkce zapisuje nezpracované bajty a nepřipojuje nulový ukončovací znak.

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#

Připojí data z uživatelem zadané vyrovnávací paměti na konec existujícího souboru na SD kartě V5 Brain.

Available Functions
int32_t appendfile(
  const char* name,
  uint8_t* buffer,
  int32_t len );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru na SD kartě, do kterého se mají přidat data. Název souboru musí obsahovat příponu souboru.

buffer

uint8_t*

Ukazatel na vyrovnávací paměť obsahující data, která mají být připojena k souboru.

len

int32_t

Počet bajtů, které se mají přidat z vyrovnávací paměti do souboru.

Return Values

Vrací hodnotu int32_t představující počet bajtů úspěšně připojených k souboru:

  • Kladná hodnota udává, kolik bajtů bylo připojeno.

  • 0 znamená, že nebyla přidána žádná data.

Notes
  • Pokud je soubor větší než len, přečtou se pouze první len bajty.

  • Soubor musí již na SD kartě existovat; tato funkce nevytváří nový soubor.

  • Tato funkce nealokuje paměť; vyrovnávací paměť musí být vytvořena a spravována uživatelem.

  • Funkce připojuje nezpracované bajty a nepřipojuje nulový terminátor.

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#

Vrací, zda je v zařízení V5 Brain aktuálně vložena SD karta.

Available Functions
bool isInserted();

Parameters

Tato funkce nepřijímá žádné parametry.

Return Values

Vrací booleovskou hodnotu označující, zda je vložena SD karta:

  • true — V zařízení V5 Brain je vložena SD karta.

  • false — Není vložena SD karta.

Notes
  • Tato funkce kontroluje pouze přítomnost SD karty; neověřuje, zda je karta naformátovaná nebo čitelná.

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#

Vrátí velikost souboru uloženého na SD kartě V5 Brain.

Available Functions
int32_t size(
  const char* name );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru na SD kartě. Název souboru musí obsahovat příponu souboru.

Return Values

Vrací hodnotu int32_t představující velikost souboru v bajtech:

  • Kladná hodnota udává velikost souboru v bajtech.

  • 0 označuje prázdný soubor nebo že soubor nebyl nalezen.

Notes
  • Vrácená velikost může být použita k alokaci vyrovnávací paměti před voláním loadfile.

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#

Vrátí, zda na SD kartě V5 Brain existuje soubor se zadaným názvem.

Available Functions
bool exists(
  const char* name );

Parameters

Parametr

Typ

Popis

name

const char*

Název souboru, který se má na SD kartě zkontrolovat. Název souboru musí obsahovat příponu souboru.

Return Values

Vrací booleovskou hodnotu označující, zda soubor existuje:

  • true — Soubor se zadaným názvem na SD kartě existuje.

  • false — Soubor se zadaným názvem neexistuje.

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