SD-карта#
Вступ#
API SD-картки для VEX IQ (2-го покоління) дозволяє зберігати та отримувати доступ до файлів на знімній SD-картці, вставленій у слот для SD-картки Brain. Незалежно від того, чи ви зберігаєте дані датчика, чи завантажуєте власні зображення, ці методи забезпечують повний контроль над операціями з файлами. Знімна SD-карта дозволяє легко передавати дані між Brain та комп’ютером.
Для IQ (2-го покоління) Brain потрібна SD-карта об’ємом не більше 32 ГБ, відформатована у FAT32. SD-карти об’ємом понад 32 ГБ за замовчуванням використовують форматування exFAT, яке несумісне з VEX IQ (2-го покоління) Brain. Перед використанням переконайтеся, що ваша SD-карта належним чином відформатована у FAT32.
Усі файли мають бути поміщені в кореневу папку SD-карти, щоб бути доступними.
На цій сторінці як приклад назви Brain використовується brain За потреби замініть її власною налаштованою назвою.
Нижче наведено список усіх методів:
Дії — Виконання операцій з файлами та відображення зображень з SD-карти.
loadfile— Завантажує вміст файлу з SD-карти у буфер пам’яті, наданий користувачем.savefile— Зберігає дані з буфера, наданого користувачем, у файл на SD-карті IQ (2-го покоління) Brain.appendfile— Додає дані з буфера, наданого користувачем, до кінця існуючого файлу на SD-карті IQ (2-го покоління) Brain.draw_image_from_file— Відображає растрове зображення з SD-карти.
Геттери — Повертають інформацію про SD-карту та файл.
is_inserted— Повертає, чи вставлено SD-карту в Brain.filesize— Повертає розмір файлу.size— Повертає розмір файлу.exists— Повертає, чи знайдено файл на SD-карті.
Дії#
loadfile#
loadfile завантажує файл з SD-карти в масив байтів.
Usage:
brain.sdcard.loadfile(filename, buffer)
Параметри |
Опис |
|---|---|
|
Ім’я файлу, який потрібно завантажити у вигляді рядка. Ім’я файлу має містити розширення файлу. |
|
Необов’язково. Існуючий масив байтів (bytearray) для завантаження вмісту файлу. Якщо існуючий масив байтів більший, його вміст буде перезаписано. Якщо існуючий масив байтів менший, метод може не завантажити всі дані. За замовчуванням буде повернуто новий масив байтів, якщо буфер не надано. |
# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
# Save new text to a file
brain.sdcard.savefile("Note.txt", bytearray("VEX"))
# Load the file and print it
data = brain.sdcard.loadfile("Note.txt")
brain.screen.print(data.decode("utf-8"))
else:
brain.screen.print("Insert SD card")
savefile#
savefile зберігає масив байтів на SD-карту.
Usage:
brain.sdcard.savefile(filename, buffer)
Параметри |
Опис |
|---|---|
|
Ім’я файлу, який потрібно зберегти як рядок. Ім’я файлу має містити розширення файлу. Якщо файл вже існує, його буде перезаписано. Якщо файл не існує, буде створено новий файл. |
|
Необов’язково. Масив байтів для запису у файл. |
# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
# Save new text to a file
brain.sdcard.savefile("Note.txt", bytearray("VEX"))
# Load the file and print it
data = brain.sdcard.loadfile("Note.txt")
brain.screen.print(data.decode("utf-8"))
else:
brain.screen.print("Insert SD card")
appendfile#
appendfile додає масив байтів до існуючого файлу, додаючи нові дані в кінець файлу без зміни поточного вмісту.
Usage:
brain.sdcard.appendfile(filename, buffer)
Параметри |
Опис |
|---|---|
|
Ім’я файлу, який потрібно додати у вигляді рядка. Ім’я файлу має містити розширення файлу. |
|
Масив байтів, що містить дані для додавання. |
# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
brain.sdcard.appendfile("Note.txt", bytearray("code"))
size = brain.sdcard.size("Note.txt")
brain.screen.print("Size: ")
brain.screen.print(size)
draw_image_from_file#
draw_image_from_file відображає растрове зображення (BMP), що зберігається на SD-карті.
Файли .bmp обмежені розміром 5120 пікселів та 6 КБ.
Примітка: IQ (2-го покоління) Brain підтримує відображення лише файлів .bmp Для мінімізації розміру файлу рекомендується 8-бітне кодування RLE.
Usage
brain.screen.draw_image_from_file(filename, x, y)
Параметри |
Опис |
|---|---|
|
Ім’я файлу зображення. |
|
Координата x для верхнього лівого кута зображення на екрані. |
|
Координата Y для верхнього лівого кута зображення на екрані. |
# Draw a bmp file on the Brain's screen at coordinate 0, 0
brain.screen.draw_image_from_file('test_image.bmp', 0, 0)
Геттери#
is_inserted#
is_inserted повертає логічне значення, яке вказує, чи SD-карта наразі вставлена в Brain.
True— У Brain вставлено SD-карту.False— У Brain не вставлено SD-карту.
Usage:
brain.sdcard.is_inserted()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
# Save new text to a file
brain.sdcard.savefile("Note.txt", bytearray("VEX"))
# Load the file and print it
data = brain.sdcard.loadfile("Note.txt")
brain.screen.print(data.decode("utf-8"))
else:
brain.screen.print("Insert SD card")
filesize#
filesize повертає розмір файлу в байтах у вигляді десяткового числа (float).
Usage:
brain.sdcard.filesize(filename)
Параметри |
Опис |
|---|---|
|
Ім’я файлу у вигляді рядка. Ім’я файлу має містити розширення файлу. |
# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
brain.sdcard.appendfile("Note.txt", bytearray("code"))
size = brain.sdcard.filesize("Note.txt")
brain.screen.print("Size: ")
brain.screen.print(size)
size#
size повертає розмір файлу в байтах як десяткове число (float).
Usage:
brain.sdcard.size(filename)
Параметри |
Опис |
|---|---|
|
Ім’я файлу у вигляді рядка. Ім’я файлу має містити розширення файлу. |
# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
brain.sdcard.appendfile("Note.txt", bytearray("code"))
size = brain.sdcard.size("Note.txt")
brain.screen.print("Size: ")
brain.screen.print(size)
exists#
exists повертає логічне значення, яке вказує, чи знайдено файл на SD-карті.
True— Файл знаходиться на SD-карті.False— Файл відсутній на SD-карті.
Usage:
brain.sdcard.exists(filename)
Параметри |
Опис |
|---|---|
|
Ім’я файлу у вигляді рядка. Ім’я файлу має містити розширення файлу. |
# Add more text and display file size if the file exists
if brain.sdcard.exists("Note.txt"):
brain.sdcard.appendfile("Note.txt", bytearray(" World"))
size = brain.sdcard.size("Note.txt")
brain.screen.print("Size: ")
brain.screen.print(size)