Данные: read и write

Чтение объекта по имени или выражению, запись значения или таблицы записей.

с 0.3.0

Методы

ЭлементСигнатураДоступен сAPI 3
readread(path, *, fields=None, start=0, count=None)0.3.0без вызовов в выражении
writewrite(path, value, *, verify=True) -> dict; write(rows) -> list0.3.0без вызовов в выражении

Изменения API 3 (0.5.0)

await не нужен. Правая часть write вычисляется один раз; выражения без вызовов функций.

Правильно

Поля структуры — одним чтением; несколько записей — таблицей в нужном порядке.

ticks = t.read("app_state.ticks")
state = t.read("app_state", fields={"ticks": None, "led": None})
t.write("app_delay", 100)
t.write([("app_state.mode", "APP_MODE_BLINK"), ("app_delay", 100)])

Не рекомендуется

Регистры периферии через общие методы: составное чтение задевает соседние регистры, RMW скрывает эффекты. Для регистров — mmio.

t.write("ADC1->CR", t.read("ADC1->CR") | 4)   # register via data methods: use t.mmio
t.write("app_delay", "compute_delay()")        # hidden call: refused

Фрагменты показывают отклонённые или нежелательные приёмы, а не рабочий рецепт.

Фрагменты для тела сценария; символы прошивки условные.

← Живое окноВсе группыВыражения и память →