SD-карта#

Введение#

Использование SD-карты с VEX EXP позволяет хранить и получать доступ к файлам на съемной SD-карте, вставленной в слот для SD-карт устройства Brain. Независимо от того, сохраняете ли вы данные с датчиков или загружаете собственные изображения, эти методы обеспечивают полный контроль над операциями с файлами. Съемная SD-карта позволяет легко передавать данные между устройством Brain и компьютером.

Для работы EXP Brain требуется SD-карта объемом не более 32 ГБ, отформатированная в FAT32. SD-карты объемом более 32 ГБ по умолчанию используют формат exFAT, который несовместим с EXP Brain. Перед использованием убедитесь, что ваша SD-карта правильно отформатирована в FAT32.

Для обеспечения доступности все файлы должны быть размещены в корневой папке SD-карты.

В приведенных ниже примерах сконструированный Brain включает доступ к методам SD-карты и будет использоваться во всех последующих примерах в этой документации API при обращении к этим методам.

Ниже приведён список всех методов:

Действия — Выполнение операций с файлами и отображение изображений с SD-карты.

  • loadfile — Загружает содержимое файла с SD-карты в предоставленный пользователем буфер памяти.

  • savefile — Сохраняет данные из предоставленного пользователем буфера в файл на SD-карте EXP Brain.

  • appendfile — Добавляет данные из предоставленного пользователем буфера в конец существующего файла на SD-карте EXP Brain.

  • draw_image_from_file — Отображает растровое изображение с SD-карты.

Геттеры — Возвращают информацию о SD-карте и файлах.

  • is_inserted — Возвращает значение, указывающее, вставлена ​​ли SD-карта в Brain.

  • filesize — Возвращает размер файла.

  • size — Возвращает размер файла.

  • exists — Возвращает значение, указывающее, найден ли файл на SD-карте.

Действия#

loadfile#

loadfile загружает файл с SD-карты в массив байтов.

Usage:
brain.sdcard.loadfile(filename, buffer)

Параметры

Описание

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")

savefile#

savefile сохраняет массив байтов на SD-карту.

Usage:
brain.sdcard.savefile(filename, buffer)

Параметры

Описание

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)

Параметры

Описание

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 КБ.

Примечание: EXP Brain поддерживает отображение только .bmp Для минимизации размера файла рекомендуется использовать 8-битное кодирование RLE.

Usage
brain.screen.draw_image_from_file(filename, x, y)

Параметры

Описание

filename

Имя файла изображения.

x

Координата x для верхнего левого угла изображения на экране.

y

Координата 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 — В мозг вставлена ​​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)

Параметры

Описание

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)

Параметры

Описание

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)

Параметры

Описание

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)