SD kortelė#

Įvadas#

sdcard klasė yra gauta iš brain bazinės klasės ir suteikia prieigą prie failų, saugomų išimamoje SD kortelėje, įdėtoje į EXP Brain.

Naudodamas SD kortelę, jūsų robotas gali įkelti duomenis, pvz., vaizdus, ​​skaityti ir rašyti failus bei saugoti informaciją vėlesniam naudojimui arba perkėlimui į kompiuterį.

Access#

Brain.SDcard

Notes#

  • „EXP Brain“ palaiko iki 32 GB talpos SD korteles.

  • SD kortelė turi būti suformatuota kaip FAT32.

    • Didesnės nei 32 GB SD kortelės paprastai formatuojamos kaip „exFAT“, kuri nesuderinama su „EXP Brain“.

  • Visi failai turi būti patalpinti SD kortelės šakniniame kataloge, kad būtų pasiekiami.

  • Prieš atliekant failų operacijas, SD kortelė turi būti įdėta į „Brain“.

  • Failų pavadinimuose ir keliuose skiriamos didžiosios ir mažosios raidės.

Example#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the EXP 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);
}

Narių funkcijos#

sdcard klasė apima šias narines funkcijas:

  • loadfile – Įkelia failo turinį iš SD kortelės į vartotojo pateiktą atminties buferį.

  • savefile – Įrašo duomenis iš vartotojo pateikto buferio į failą „EXP Brain“ SD kortelėje.

  • appendfile – Prideda duomenis iš vartotojo pateikto buferio prie esamo failo pabaigos EXP Brain SD kortelėje.

  • isInserted — Grąžina, ar į „Brain“ įdėta SD kortelė.

  • size — Grąžina failo, saugomo EXP Brain SD kortelėje, dydį.

  • exists — Grąžina, ar EXP Brain SD kortelėje yra failas nurodytu pavadinimu.

SD kortelėje saugomus .bmp ir .png failus galima peržiūrėti EXP Brain ekrane naudojant drawImageFromFile, prie kurio galima prisijungti per Brain.Screen.

Prieš iškviečiant bet kokias sdcard narių funkcijas, reikia sukurti brain egzempliorių, kaip parodyta žemiau:

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

loadfile#

Įkelia failo turinį iš SD kortelės į vartotojo pateiktą atminties buferį.

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

Parameters

Parametras

Tipas

Aprašymas

name

const char*

Iš SD kortelės įkeliamo failo pavadinimas. Failo pavadinime turi būti failo plėtinys.

buffer

uint8_t*

Rodyklė į buferį, kuriame bus saugomi failo duomenys.

len

int32_t

Didžiausias baitų skaičius, kurį galima nuskaityti iš failo, paprastai nustatomas pagal buferio dydį.

Return Values

Grąžina int32_t , nurodantį sėkmingai iš failo nuskaitytų baitų skaičių:

  • Teigiama reikšmė rodo, kiek baitų buvo įkelta į buferį.

  • 0 reiškia, kad duomenys nebuvo nuskaityti.

Notes
  • Jei failas yra didesnis nei len, nuskaitomi tik pirmieji len baitai.

  • Buferis turi būti pakankamai didelis, kad tilptų prašomi duomenys.

  • Ši funkcija nuskaito neapdorotus baitus ir neprideda nulinio terminatoriaus.

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#

Įrašo duomenis iš vartotojo pateikto buferio į failą EXP Brain SD kortelėje.

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

Parameters

Parametras

Tipas

Aprašymas

name

const char*

Failo, kurį reikia išsaugoti kaip eilutę, pavadinimas. Failo pavadinime turi būti failo plėtinys.

buffer

uint8_t*

Rodyklė į atminties buferį, kuriame yra į failą įrašomi duomenys.

len

int32_t

Baitų skaičius, kurį reikia įrašyti iš buferio į failą.

Return Values

Grąžina int32_t , nurodantį sėkmingai į failą įrašytų baitų skaičių:

  • Teigiama reikšmė rodo, kiek baitų buvo išsaugota.

  • 0 reiškia, kad duomenys nebuvo įrašyti.

Notes
  • Jei failas yra didesnis nei len, nuskaitomi tik pirmieji len baitai.

  • Jei failas tuo pačiu pavadinimu jau yra, jis bus perrašytas.

  • Ši funkcija neskiria atminties; buferį turi sukurti ir valdyti vartotojas.

  • Funkcija rašo neapdorotus baitus ir neprideda nulinio terminatoriaus.

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#

Prideda duomenis iš vartotojo pateikto buferio prie esamo failo pabaigos EXP Brain SD kortelėje.

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

Parameters

Parametras

Tipas

Aprašymas

name

const char*

Failo, prie kurio SD kortelėje bus pridėti duomenys, pavadinimas. Failo pavadinime turi būti failo plėtinys.

buffer

uint8_t*

Rodyklė į atminties buferį, kuriame yra prie failo pridėtini duomenys.

len

int32_t

Baitų skaičius, kurį reikia pridėti iš buferio prie failo.

Return Values

Grąžina int32_t , nurodantį sėkmingai prie failo pridėtų baitų skaičių:

  • Teigiama reikšmė rodo, kiek baitų buvo pridėta.

  • 0 reiškia, kad nebuvo pridėta jokių duomenų.

Notes
  • Jei failas yra didesnis nei len, nuskaitomi tik pirmieji len baitai.

  • Failas jau turi būti SD kortelėje; ši funkcija nesukuria naujo failo.

  • Ši funkcija neskiria atminties; buferį turi sukurti ir valdyti vartotojas.

  • Funkcija prideda neapdorotus baitus ir neprideda nulinio terminatoriaus.

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#

Grąžina, ar SD kortelė šiuo metu įdėta į EXP Brain.

Available Functions
bool isInserted();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Grąžina loginę reikšmę, nurodančią, ar įdėta SD kortelė:

  • true — Į EXP Brain įdėta SD kortelė.

  • false — SD kortelė neįdėta.

Notes
  • Ši funkcija tikrina tik SD kortelės buvimą; ji netikrina, ar kortelė suformatuota arba ar ją galima nuskaityti.

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#

Grąžina failo, saugomo EXP Brain SD kortelėje, dydį.

Available Functions
int32_t size(
  const char* name );

Parameters

Parametras

Tipas

Aprašymas

name

const char*

SD kortelėje esančio failo pavadinimas. Failo pavadinime turi būti failo plėtinys.

Return Values

Grąžina int32_t , nurodantį failo dydį baitais:

  • Teigiama reikšmė nurodo failo dydį baitais.

  • 0 reiškia, kad failas yra tuščias arba kad jo nerasta.

Notes
  • Grąžintą dydį galima naudoti buferiui paskirstyti prieš iškviečiant 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#

Grąžina, ar EXP Brain SD kortelėje yra failas nurodytu pavadinimu.

Available Functions
bool exists(
  const char* name );

Parameters

Parametras

Tipas

Aprašymas

name

const char*

SD kortelėje esančio tikrinamo failo pavadinimas. Failo pavadinime turi būti nurodytas failo plėtinys.

Return Values

Grąžina loginę reikšmę, nurodančią, ar failas egzistuoja:

  • true — SD kortelėje yra failas nurodytu pavadinimu.

  • false — Failo nurodytu pavadinimu nėra.

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