Модули и функции · встроенный MicroPython FEMM 5
struct
Упаковка чисел в переносимый бинарный формат.
Условия работы
- Начинайте формат с < для little-endian или > для big-endian; @ использует машинное размещение. Примеры типов: B байт, h/i целое, f/d float/double, Ns N байт.
- Для таблиц, читаемых человеком, удобнее CSV; struct полезен для компактного обмена фиксированными записями.
struct.calcsizestruct.packstruct.unpackstruct.pack_intostruct.unpack_fromstruct.calcsizeВычисляет требуемую длину буфера.
struct.calcsize
calcsize(fmt)Вычисляет требуемую длину буфера.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
fmt | Строка двоичного формата. |
Возвращаемое значение
Целый размер записи в байтах.
Пример
"Пример struct.calcsize.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет требуемую длину буфера.\nРезультат: Целый размер записи в байтах."
import struct
assert struct.calcsize('<if') == 8
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
struct.packСоздаёт двоичную запись параметров.
struct.pack
pack(fmt, *values)Создаёт двоичную запись параметров.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
fmt | Формат типов и порядка байтов. |
values | Значения в порядке полей формата. |
Возвращаемое значение
bytes фиксированной длины.
Пример
"Пример struct.pack.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт двоичную запись параметров.\nРезультат: bytes фиксированной длины."
import struct
b=struct.pack('<Hf',100,0.25)
assert struct.unpack('<Hf',b) == (100,0.25)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
struct.unpackЧитает одну двоичную запись.
struct.unpack
unpack(fmt, buffer)Читает одну двоичную запись.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
fmt | Формат записи. |
buffer | Байтовый буфер требуемой длины. |
Возвращаемое значение
Кортеж восстановленных значений.
Пример
"Пример struct.unpack.\nСреда: встроенный MicroPython FEMM 5.\nЧитает одну двоичную запись.\nРезультат: Кортеж восстановленных значений."
import struct
assert struct.unpack('<H',b'\x64\x00') == (100,)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
struct.pack_intoЗаписывает поля в существующий буфер.
struct.pack_into
pack_into(fmt, buffer, offset, *values)Записывает поля в существующий буфер.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
fmt | Формат. |
buffer | Изменяемый байтовый буфер достаточной длины. |
offset | Смещение в байтах. |
values | Значения полей. |
Возвращаемое значение
None.
Пример
"Пример struct.pack_into.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает поля в существующий буфер.\nРезультат: None."
import struct
b=bytearray(4)
struct.pack_into('<H',b,1,100)
assert struct.unpack_from('<H',b,1) == (100,)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
struct.unpack_fromЧитает запись внутри большого буфера.
struct.unpack_from
unpack_from(fmt, buffer, offset=0)Читает запись внутри большого буфера.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
fmt | Формат. |
buffer | Байтовый буфер. |
offset | Смещение начала записи в байтах. |
Возвращаемое значение
Кортеж значений.
Пример
"Пример struct.unpack_from.\nСреда: встроенный MicroPython FEMM 5.\nЧитает запись внутри большого буфера.\nРезультат: Кортеж значений."
import struct
b=struct.pack('<HH',10,20)
assert struct.unpack_from('<H',b,2) == (20,)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.