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 EXP 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#
EXP 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 EXP 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 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);
}
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 EXP 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 EXP 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 EXP Brain.exists— Trả về xem tệp có tên được chỉ định có tồn tại trên thẻ SD của EXP 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 EXP 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 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 Functionsint32_t loadfile(
const char* name,
uint8_t* buffer,
int32_t len );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
|
|
Con trỏ trỏ đến vùng đệm nơi dữ liệu tệp sẽ được lưu trữ. |
|
|
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. |
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.
0cho biết không có dữ liệu nào được đọc.
Nếu tệp có kích thước lớn hơn
len, chỉ cólenbyte đầ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.
// 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 EXP Brain.
Available Functionsint32_t savefile(
const char* name,
uint8_t* buffer,
int32_t len );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
|
|
Con trỏ trỏ đến vùng nhớ đệm chứa dữ liệu cần ghi vào tập tin. |
|
|
Số byte cần ghi từ bộ đệm vào tệp. |
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.
0cho biết không có dữ liệu nào được ghi.
Nếu tệp có kích thước lớn hơn
len, chỉ cólenbyte đầ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.
// 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 EXP Brain.
Available Functionsint32_t appendfile(
const char* name,
uint8_t* buffer,
int32_t len );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
|
|
Con trỏ trỏ đến vùng nhớ đệm chứa dữ liệu cần được ghi thêm vào tệp. |
|
|
Số byte cần thêm từ bộ đệm vào tệp. |
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.
0cho biết không có dữ liệu nào được thêm vào.
Nếu tệp có kích thước lớn hơn
len, chỉ cólenbyte đầ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.
// 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 EXP Brain hay không.
Available Functionsbool isInserted();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesTrả 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 EXP Brain.false— Không có thẻ SD nào được lắp vào.
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.
// 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 EXP Brain.
Available Functionsint32_t size(
const char* name );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
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.
0cho biết tệp trống hoặc không tìm thấy tệp.
Kích thước trả về có thể được sử dụng để phân bổ bộ đệm trước khi gọi
loadfile.
// 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 EXP Brain hay không.
Available Functionsbool exists(
const char* name );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
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.
// 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);
}