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 Functionsint32_t loadfile(
const char* name,
uint8_t* buffer,
int32_t len );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Az SD-kártyáról betöltendő fájl neve. A fájl nevének tartalmaznia kell a fájlkiterjesztést. |
|
|
Egy mutató egy pufferre, ahol a fájl adatai tárolva lesznek. |
|
|
A fájlból beolvasható bájtok maximális száma, jellemzően a puffer méretével megegyező. |
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.
0azt jelzi, hogy nem történt adatolvasás.
Ha a fájl nagyobb, mint
len, akkor csak az elsőlenbá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.
// 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 Functionsint32_t savefile(
const char* name,
uint8_t* buffer,
int32_t len );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
A karakterláncként mentendő fájl neve. A fájlnévnek tartalmaznia kell a fájlkiterjesztést. |
|
|
Egy mutató egy memóriapufferre, amely a fájlba írandó adatokat tartalmazza. |
|
|
A pufferből a fájlba írandó bájtok száma. |
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.
0azt jelzi, hogy nem történt adatírás.
Ha a fájl nagyobb, mint
len, akkor csak az elsőlenbá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.
// 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 Functionsint32_t appendfile(
const char* name,
uint8_t* buffer,
int32_t len );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
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. |
|
|
Egy mutató egy memóriapufferre, amely a fájlhoz hozzáfűzendő adatokat tartalmazza. |
|
|
A pufferből a fájlhoz hozzáfűzendő bájtok száma. |
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.
0azt jelzi, hogy nem kerültek hozzáfűzésre adatok.
Ha a fájl nagyobb, mint
len, akkor csak az elsőlenbá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.
// 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 Functionsbool isInserted();
Ez a függvény nem fogad el paramétereket.
Return ValuesEgy 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.
Ez a funkció csak az SD-kártya meglétét ellenőrzi; azt nem, hogy a kártya formázott vagy olvasható-e.
// 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 Functionsint32_t size(
const char* name );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
A fájl neve az SD-kártyán. A fájl nevének tartalmaznia kell a fájlkiterjesztést. |
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ó.
A visszaadott méret felhasználható egy puffer lefoglalására a
loadfilefüggvény meghívása előtt.
// 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 Functionsbool exists(
const char* name );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Az SD-kártyán ellenőrizni kívánt fájl neve. A fájl nevének tartalmaznia kell a fájlkiterjesztést. |
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.
// 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);
}