SD-kaart#

Invoering#

De klasse sdcard is afgeleid van de basisklasse brain en biedt toegang tot bestanden die zijn opgeslagen op een verwijderbare SD-kaart die in de EXP Brain is geplaatst.

Met behulp van de SD-kaart kan uw robot gegevens zoals afbeeldingen laden, bestanden lezen en schrijven en informatie opslaan voor later gebruik of overzetten naar een computer.

Access#

Brain.SDcard

Notes#

  • De EXP Brain ondersteunt SD-kaarten tot 32 GB.

  • De SD-kaart moet geformatteerd zijn als FAT32.

    • SD-kaarten groter dan 32 GB worden doorgaans geformatteerd als exFAT, wat niet compatibel is met de EXP Brain.

  • Alle bestanden moeten in de hoofdmap van de SD-kaart worden geplaatst om toegankelijk te zijn.

  • De SD-kaart moet in de Brain worden geplaatst voordat bestandsbewerkingen kunnen worden uitgevoerd.

  • Bestandsnamen en paden zijn hoofdlettergevoelig.

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

Lidfuncties#

De klasse sdcard bevat de volgende lidfuncties:

  • loadfile — Laadt de inhoud van een bestand van de SD-kaart in een door de gebruiker opgegeven geheugenbuffer.

  • savefile — Slaat gegevens uit een door de gebruiker opgegeven buffer op in een bestand op de SD-kaart van de EXP Brain.

  • appendfile — Voegt gegevens uit een door de gebruiker aangeleverde buffer toe aan het einde van een bestaand bestand op de SD-kaart van de EXP Brain.

  • isInserted — Geeft aan of er een SD-kaart in de Brain is geplaatst.

  • size — Geeft de grootte terug van een bestand dat is opgeslagen op de SD-kaart van de EXP Brain.

  • exists — Geeft aan of een bestand met de opgegeven naam bestaat op de SD-kaart van de EXP Brain.

.bmp- en .png-bestanden die op de SD-kaart zijn opgeslagen, kunnen op het EXP Brain-scherm worden weergegeven met behulp van drawImageFromFile, dat toegankelijk is via Brain.Screen.

Voordat er lidfuncties van sdcard kunnen worden aangeroepen, moet er een instantie brain worden aangemaakt, zoals hieronder weergegeven:

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

loadfile#

Laadt de inhoud van een bestand van de SD-kaart in een door de gebruiker opgegeven geheugenbuffer.

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

Parameters

Parameter

Type

Beschrijving

name

const char*

De naam van het bestand dat van de SD-kaart moet worden geladen. De bestandsnaam moet de juiste extensie bevatten.

buffer

uint8_t*

Een aanwijzer naar een buffer waarin de bestandsgegevens worden opgeslagen.

len

int32_t

Het maximale aantal bytes dat uit het bestand gelezen mag worden, doorgaans ingesteld op de grootte van de buffer.

Return Values

Retourneert een int32_t die het aantal succesvol gelezen bytes uit het bestand weergeeft:

  • Een positieve waarde geeft aan hoeveel bytes in de buffer zijn geladen.

  • 0 geeft aan dat er geen gegevens zijn gelezen.

Notes
  • Als het bestand groter is dan len, worden alleen de eerste len bytes gelezen.

  • De buffer moet groot genoeg zijn om de gevraagde gegevens te bevatten.

  • Deze functie leest onbewerkte bytes en voegt geen null-terminator toe.

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#

Slaat gegevens uit een door de gebruiker opgegeven buffer op in een bestand op de SD-kaart van de EXP Brain.

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

Parameters

Parameter

Type

Beschrijving

name

const char*

De naam van het op te slaan bestand als tekenreeks. De bestandsnaam moet de bestandsextensie bevatten.

buffer

uint8_t*

Een aanwijzer naar een geheugenbuffer die de gegevens bevat die naar het bestand moeten worden geschreven.

len

int32_t

Het aantal bytes dat vanuit de buffer naar het bestand moet worden geschreven.

Return Values

Retourneert een int32_t die het aantal succesvol naar het bestand geschreven bytes weergeeft:

  • Een positieve waarde geeft aan hoeveel bytes er zijn bespaard.

  • 0 geeft aan dat er geen gegevens zijn geschreven.

Notes
  • Als het bestand groter is dan len, worden alleen de eerste len bytes gelezen.

  • Als er al een bestand met dezelfde naam bestaat, wordt dat overschreven.

  • Deze functie wijst geen geheugen toe; de ​​buffer moet door de gebruiker worden aangemaakt en beheerd.

  • De functie schrijft onbewerkte bytes weg en voegt geen null-terminator toe.

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#

Voegt gegevens uit een door de gebruiker opgegeven buffer toe aan het einde van een bestaand bestand op de SD-kaart van de EXP Brain.

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

Parameters

Parameter

Type

Beschrijving

name

const char*

De naam van het bestand waaraan gegevens op de SD-kaart moeten worden toegevoegd. De bestandsnaam moet de bestandsextensie bevatten.

buffer

uint8_t*

Een aanwijzer naar een geheugenbuffer die de gegevens bevat die aan het bestand moeten worden toegevoegd.

len

int32_t

Het aantal bytes dat vanuit de buffer aan het bestand moet worden toegevoegd.

Return Values

Retourneert een int32_t die het aantal bytes weergeeft dat succesvol aan het bestand is toegevoegd:

  • Een positieve waarde geeft aan hoeveel bytes er zijn toegevoegd.

  • 0 geeft aan dat er geen gegevens zijn toegevoegd.

Notes
  • Als het bestand groter is dan len, worden alleen de eerste len bytes gelezen.

  • Het bestand moet al op de SD-kaart aanwezig zijn; deze functie maakt geen nieuw bestand aan.

  • Deze functie wijst geen geheugen toe; de ​​buffer moet door de gebruiker worden aangemaakt en beheerd.

  • De functie voegt onbewerkte bytes toe en voegt geen null-terminator toe.

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#

Geeft aan of er momenteel een SD-kaart in de EXP Brain is geplaatst.

Available Functions
bool isInserted();

Parameters

Deze functie accepteert geen parameters.

Return Values

Geeft een Booleaanse waarde terug die aangeeft of er een SD-kaart is geplaatst:

  • true — Er wordt een SD-kaart in de EXP Brain geplaatst.

  • false — Er is geen SD-kaart geplaatst.

Notes
  • Deze functie controleert alleen of er een SD-kaart aanwezig is; er wordt niet gecontroleerd of de kaart geformatteerd of leesbaar is.

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#

Geeft de grootte weer van een bestand dat is opgeslagen op de SD-kaart van de EXP Brain.

Available Functions
int32_t size(
  const char* name );

Parameters

Parameter

Type

Beschrijving

name

const char*

De naam van het bestand op de SD-kaart. De bestandsnaam moet de bestandsextensie bevatten.

Return Values

Retourneert een int32_t die de grootte van het bestand in bytes weergeeft:

  • Een positieve waarde geeft de bestandsgrootte in bytes aan.

  • 0 geeft aan dat het bestand leeg is of dat het bestand niet gevonden kon worden.

Notes
  • De geretourneerde grootte kan worden gebruikt om een ​​buffer toe te wijzen voordat loadfile wordt aangeroepen.

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#

Geeft aan of een bestand met de opgegeven naam op de SD-kaart van de EXP Brain aanwezig is.

Available Functions
bool exists(
  const char* name );

Parameters

Parameter

Type

Beschrijving

name

const char*

De naam van het bestand dat op de SD-kaart moet worden gecontroleerd. De bestandsnaam moet de bestandsextensie bevatten.

Return Values

Retourneert een Booleaanse waarde die aangeeft of het bestand bestaat:

  • true — Er bestaat een bestand met de opgegeven naam op de SD-kaart.

  • false — Er bestaat geen bestand met de opgegeven naam.

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