SD-kártya#

Bevezetés#

A sdcard osztály a brain alaposztályból származik, és hozzáférést biztosít a V5 Brainbe helyezett, kivehető SD-kártyán tárolt fájlokhoz.

Az SD-kártya segítségével a robot képeket, például képeket tölthet be, fájlokat olvashat és írhat, valamint információkat tárolhat későbbi felhasználásra vagy számítógépre átvitelre.

Access#

Brain.SDcard

Notes#

  • A V5 Brain akár 32 GB méretű SD-kártyákat is támogat.

  • Az SD-kártyát FAT32 fájlrendszerre kell formázni.

    • A 32 GB-nál nagyobb SD-kártyák jellemzően exFAT formátumban vannak formázva, ami nem kompatibilis a V5 Brain-nel.

  • Minden fájlnak az SD-kártya gyökérkönyvtárában kell lennie ahhoz, hogy elérhető legyen.

  • Az SD-kártyát be kell helyezni az agyba, mielőtt fájlműveleteket lehetne végrehajtani.

  • A fájlnevek és elérési utak megkülönböztetik a kis- és nagybetűket.

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

Tagfüggvények#

A sdcard osztály a következő tagfüggvényeket tartalmazza:

  • loadfile — Betölti egy fájl tartalmát az SD-kártyáról a felhasználó által megadott memóriapufferbe.

  • savefile — Adatokat ment a felhasználó által megadott pufferből egy fájlba a V5 Brain SD-kártyáján.

  • appendfile — Hozzáfűzi az adatokat egy felhasználó által megadott pufferből egy meglévő fájl végéhez a V5 Brain SD-kártyáján.

  • isInserted — Visszaadja, hogy van-e SD-kártya behelyezve az agyba.

  • size — Visszaadja a V5 Brain SD-kártyáján tárolt fájl méretét.

  • exists — Visszaadja, hogy létezik-e a megadott nevű fájl a V5 Brain SD-kártyáján.

Az SD-kártyán tárolt .bmp és .png fájlok a drawImageFromFile paranccsal jeleníthetők meg a V5 Brain képernyőn, amely a Brain.Screen paranccsal érhető el.

Mielőtt bármilyen sdcard tagfüggvényt meghívnánk, létre kell hozni egy brain példányt, az alábbiak szerint:

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

loadfile#

Betölti egy fájl tartalmát az SD-kártyáról a felhasználó által megadott memóriapufferbe.

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

Parameters

Paraméter

Típus

Leírás

name

const char*

Az SD-kártyáról betöltendő fájl neve. A fájl nevének tartalmaznia kell a fájlkiterjesztést.

buffer

uint8_t*

Egy mutató egy pufferre, ahol a fájl adatai tárolva lesznek.

len

int32_t

A fájlból beolvasható bájtok maximális száma, jellemzően a puffer méretével megegyező.

Return Values

Egy int32_t értéket ad vissza, amely a fájlból sikeresen beolvasott bájtok számát jelöli:

  • A pozitív érték azt jelzi, hogy hány bájt került betöltésre a pufferbe.

  • 0 azt jelzi, hogy nem történt adatolvasás.

Notes
  • Ha a fájl nagyobb, mint len, akkor csak az első len bájt kerül beolvasásra.

  • A puffernek elég nagynak kell lennie a kért adatok tárolásához.

  • Ez a függvény nyers bájtokat olvas be, és nem fűz hozzá null terminátort.

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#

A felhasználó által megadott pufferből adatokat ment egy fájlba a V5 Brain SD-kártyáján.

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

Parameters

Paraméter

Típus

Leírás

name

const char*

A karakterláncként mentendő fájl neve. A fájlnévnek tartalmaznia kell a fájlkiterjesztést.

buffer

uint8_t*

Egy mutató egy memóriapufferre, amely a fájlba írandó adatokat tartalmazza.

len

int32_t

A pufferből a fájlba írandó bájtok száma.

Return Values

Egy int32_t értéket ad vissza, amely a fájlba sikeresen kiírt bájtok számát jelöli:

  • A pozitív érték azt jelzi, hogy hány bájt lett mentve.

  • 0 azt jelzi, hogy nem történt adatírás.

Notes
  • Ha a fájl nagyobb, mint len, akkor csak az első len bájt kerül beolvasásra.

  • Ha már létezik egy azonos nevű fájl, akkor az felülíródik.

  • Ez a függvény nem foglal le memóriát; a puffert a felhasználónak kell létrehoznia és kezelnie.

  • A függvény nyers bájtokat ír, és nem fűz hozzá null terminátort.

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#

Hozzáfűzi az adatokat egy felhasználó által megadott pufferből egy meglévő fájl végéhez a V5 Brain SD-kártyáján.

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

Parameters

Paraméter

Típus

Leírás

name

const char*

Az SD-kártyán található fájl neve, amelyhez adatokat kívánunk fűzni. A fájl nevének tartalmaznia kell a fájlkiterjesztést.

buffer

uint8_t*

Egy mutató egy memóriapufferre, amely a fájlhoz hozzáfűzendő adatokat tartalmazza.

len

int32_t

A pufferből a fájlhoz hozzáfűzendő bájtok száma.

Return Values

Egy int32_t értéket ad vissza, amely a fájlhoz sikeresen hozzáfűzött bájtok számát jelöli:

  • A pozitív érték azt jelzi, hogy hány bájt lett hozzáfűzve.

  • 0 azt jelzi, hogy nem kerültek hozzáfűzésre adatok.

Notes
  • Ha a fájl nagyobb, mint len, akkor csak az első len bájt kerül beolvasásra.

  • A fájlnak már léteznie kell az SD-kártyán; ez a funkció nem hoz létre új fájlt.

  • Ez a függvény nem foglal le memóriát; a puffert a felhasználónak kell létrehoznia és kezelnie.

  • A függvény nyers bájtokat fűz hozzá, és nem fűz hozzá null terminátort.

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#

Visszaadja, hogy van-e jelenleg SD-kártya a V5 Brain-ben.

Available Functions
bool isInserted();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Egy logikai értéket ad vissza, amely jelzi, hogy van-e SD-kártya behelyezve:

  • true — SD-kártya van behelyezve a V5 Brain-be.

  • false — Nincs SD-kártya behelyezve.

Notes
  • Ez a funkció csak az SD-kártya meglétét ellenőrzi; azt nem, hogy a kártya formázott vagy olvasható-e.

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#

Visszaadja a V5 Brain SD-kártyáján tárolt fájl méretét.

Available Functions
int32_t size(
  const char* name );

Parameters

Paraméter

Típus

Leírás

name

const char*

A fájl neve az SD-kártyán. A fájl nevének tartalmaznia kell a fájlkiterjesztést.

Return Values

Egy int32_t értéket ad vissza, amely a fájl méretét jelöli bájtban:

  • A pozitív érték a fájl méretét jelzi bájtban.

  • 0 üres fájlt jelöl, vagy azt, hogy a fájl nem található.

Notes
  • A visszaadott méret felhasználható egy puffer lefoglalására a loadfile függvény meghívása előtt.

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#

Visszaadja, hogy létezik-e a megadott nevű fájl a V5 Brain SD-kártyáján.

Available Functions
bool exists(
  const char* name );

Parameters

Paraméter

Típus

Leírás

name

const char*

Az SD-kártyán ellenőrizni kívánt fájl neve. A fájl nevének tartalmaznia kell a fájlkiterjesztést.

Return Values

Egy logikai értéket ad vissza, amely jelzi, hogy létezik-e a fájl:

  • true — A megadott nevű fájl létezik az SD-kártyán.

  • false — Nem létezik ilyen nevű fájl.

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