Thẻ SD#

Giới thiệu#

Lớp sdcard được dẫn xuất từ ​​lớp cơ sở brain và cung cấp quyền truy cập vào các tệp được lưu trữ trên thẻ SD có thể tháo rời được lắp vào V5 Brain.

Sử dụng thẻ SD, robot của bạn có thể tải dữ liệu như hình ảnh, đọc và ghi tập tin, cũng như lưu trữ thông tin để sử dụng sau này hoặc chuyển sang máy tính.

Access#

Brain.SDcard

Notes#

  • Bộ xử lý V5 Brain hỗ trợ thẻ SD có dung lượng lên đến 32GB.

  • Thẻ SD phải được định dạng là FAT32.

    • Thẻ SD có dung lượng lớn hơn 32GB thường được định dạng là exFAT, không tương thích với V5 Brain.

  • Tất cả các tập tin phải được đặt trong thư mục gốc của thẻ SD để có thể truy cập được.

  • Thẻ SD phải được lắp vào thiết bị Brain trước khi có thể thực hiện các thao tác với tập tin.

  • Tên tệp và đường dẫn phân biệt chữ hoa chữ thường.

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

Chức năng thành viên#

Lớp sdcard bao gồm các hàm thành viên sau:

  • loadfile — Tải nội dung của một tệp từ thẻ SD vào bộ đệm bộ nhớ do người dùng cung cấp.

  • savefile — Lưu dữ liệu từ bộ đệm do người dùng cung cấp vào một tệp trên thẻ SD của V5 Brain.

  • appendfile — Thêm dữ liệu từ bộ đệm do người dùng cung cấp vào cuối tệp hiện có trên thẻ SD của V5 Brain.

  • isInserted — Trả về trạng thái liệu thẻ SD có được lắp vào Brain hay không.

  • size — Trả về kích thước của một tệp được lưu trữ trên thẻ SD của V5 Brain.

  • exists — Trả về xem tệp có tên được chỉ định có tồn tại trên thẻ SD của V5 Brain hay không.

Các tệp .bmp và .png được lưu trữ trên thẻ SD có thể được hiển thị trên màn hình V5 Brain bằng cách sử dụng drawImageFromFile, được truy cập thông qua Brain.Screen.

Trước khi gọi bất kỳ hàm thành viên nào sdcard , cần phải tạo một thể hiện brain , như được hiển thị bên dưới:

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

loadfile#

Tải nội dung của một tập tin từ thẻ SD vào bộ nhớ đệm do người dùng cung cấp.

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

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên của tập tin cần tải từ thẻ SD. Tên tập tin phải bao gồm phần mở rộng của tập tin.

buffer

uint8_t*

Con trỏ trỏ đến vùng đệm nơi dữ liệu tệp sẽ được lưu trữ.

len

int32_t

Số byte tối đa được phép đọc từ tập tin, thường được đặt bằng kích thước của bộ đệm.

Return Values

Trả về một giá trị int32_t biểu thị số byte đã đọc thành công từ tệp:

  • Giá trị dương cho biết có bao nhiêu byte đã được tải vào bộ đệm.

  • 0 cho biết không có dữ liệu nào được đọc.

Notes
  • Nếu tệp có kích thước lớn hơn len, chỉ có len byte đầu tiên được đọc.

  • Bộ đệm phải đủ lớn để chứa dữ liệu được yêu cầu.

  • Hàm này đọc các byte thô và không thêm ký tự kết thúc null.

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#

Lưu dữ liệu từ bộ nhớ đệm do người dùng cung cấp vào một tệp trên thẻ SD của V5 Brain.

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

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên của tập tin cần lưu dưới dạng chuỗi ký tự. Tên tập tin phải bao gồm phần mở rộng của tập tin.

buffer

uint8_t*

Con trỏ trỏ đến vùng nhớ đệm chứa dữ liệu cần ghi vào tập tin.

len

int32_t

Số byte cần ghi từ bộ đệm vào tệp.

Return Values

Trả về một giá trị int32_t biểu thị số byte đã được ghi thành công vào tệp:

  • Giá trị dương cho biết số byte đã được tiết kiệm.

  • 0 cho biết không có dữ liệu nào được ghi.

Notes
  • Nếu tệp có kích thước lớn hơn len, chỉ có len byte đầu tiên được đọc.

  • Nếu tệp có cùng tên đã tồn tại, nó sẽ bị ghi đè.

  • Chức năng này không cấp phát bộ nhớ; bộ đệm phải được người dùng tạo và quản lý.

  • Hàm này ghi các byte thô và không thêm ký tự kết thúc null.

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#

Thêm dữ liệu từ bộ đệm do người dùng cung cấp vào cuối tệp hiện có trên thẻ SD của V5 Brain.

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

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên của tập tin cần ghi thêm dữ liệu vào thẻ SD. Tên tập tin phải bao gồm phần mở rộng của tập tin.

buffer

uint8_t*

Con trỏ trỏ đến vùng nhớ đệm chứa dữ liệu cần được ghi thêm vào tệp.

len

int32_t

Số byte cần thêm từ bộ đệm vào tệp.

Return Values

Trả về một giá trị int32_t biểu thị số byte đã được thêm thành công vào tệp:

  • Giá trị dương cho biết có bao nhiêu byte đã được thêm vào.

  • 0 cho biết không có dữ liệu nào được thêm vào.

Notes
  • Nếu tệp có kích thước lớn hơn len, chỉ có len byte đầu tiên được đọc.

  • Tệp phải đã tồn tại trên thẻ SD; chức năng này không tạo tệp mới.

  • Chức năng này không cấp phát bộ nhớ; bộ đệm phải được người dùng tạo và quản lý.

  • Hàm này nối thêm các byte thô và không nối thêm ký tự kết thúc null.

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#

Trả về trạng thái cho biết có thẻ SD nào được lắp vào V5 Brain hay không.

Available Functions
bool isInserted();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về giá trị Boolean cho biết thẻ SD đã được lắp vào hay chưa:

  • true — Thẻ SD đã được lắp vào bộ xử lý V5 Brain.

  • false — Không có thẻ SD nào được lắp vào.

Notes
  • Chức năng này chỉ kiểm tra sự hiện diện của thẻ SD; nó không xác minh thẻ đã được định dạng hay có thể đọc được hay không.

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#

Trả về kích thước của một tập tin được lưu trữ trên thẻ SD của V5 Brain.

Available Functions
int32_t size(
  const char* name );

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên của tập tin trên thẻ SD. Tên tập tin phải bao gồm phần mở rộng của tập tin.

Return Values

Trả về một giá trị int32_t biểu thị kích thước của tệp tin tính bằng byte:

  • Giá trị dương biểu thị kích thước tệp tính bằng byte.

  • 0 cho biết tệp trống hoặc không tìm thấy tệp.

Notes
  • Kích thước trả về có thể được sử dụng để phân bổ bộ đệm trước khi gọi 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#

Trả về giá trị cho biết liệu tệp có tên được chỉ định có tồn tại trên thẻ SD của V5 Brain hay không.

Available Functions
bool exists(
  const char* name );

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

Tên của tập tin cần kiểm tra trên thẻ SD. Tên tập tin phải bao gồm phần mở rộng của tập tin.

Return Values

Trả về giá trị Boolean cho biết tệp có tồn tại hay không:

  • true — Tệp có tên được chỉ định tồn tại trên thẻ SD.

  • false — Không tồn tại tệp có tên được chỉ định.

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