Record (запись данных)
Окно Record (вкладка в нижней панели) предназначено для записи потока данных с микросхемы в текстовый файл. В режиме записи контроллер ESP32 циклически считывает заданные пары регистров с интервалом 1 мс и передаёт значения на ПК, где они сохраняются в файл. Позволяет захватывать динамические процессы для последующего анализа.
Расположение элементов
Окно разделено на три части:
- Верхняя панель — кнопка записи, поле пути к файлу и кнопка обзора.
- Центральная панель — таблица из 9 пар адресов (четный + следующий нечётный).
- Нижняя панель — статус записи.
Панель управления
| Элемент | Назначение |
|---|---|
| Rec / Stop | Кнопка запуска и остановки записи. При нажатии Rec отправляется команда START_RECORD на ESP32, начинается циклический опрос и запись данных в файл. Кнопка меняет текст на Stop. Повторное нажатие останавливает запись (STOP_RECORD). |
| Поле пути | Путь к файлу для сохранения. Путь сохраняется между сеансами в config.properties. По умолчанию — rec1.txt. |
| ... | Кнопка выбора файла через диалог. |
| Статус | Текстовая метка в нижней части: «Ready» — ожидание, «Recording... N samples» — идёт запись, «Done. N samples written» — запись завершена. |
Таблица адресов
Каждая строка задаёт пару регистров для чтения:
| Столбец | Назначение |
|---|---|
| # | Номер пары (1–9). |
| Addr (even) | Чётный адрес регистра (редактируемое поле). |
| Addr (odd) | Нечётный адрес (автоматически = even + 1, только для чтения). |
| 14b14 | Флажок режима объединения. При установке значения из двух 16-битных регистров объединяются как 14 старших бит + 14 младших бит (2 старших бита каждой части отбрасываются). По умолчанию — объединение 12 старших + 16 младших бит. |
Значения по умолчанию
| # | Addr (even) | Описание |
|---|---|---|
| 1 | 16 | |
| 2 | 48 | |
| 3 | 162 | |
| 4 | 674 | |
| 5 | 676 | |
| 6 | 678 | |
| 7 | 680 | |
| 8 | 682 | |
| 9 | 684 |
При изменении чётного адреса нечётный обновляется автоматически (even + 1). Настройки пар адресов и флажков 14b14 сохраняются между сеансами.
Формат выходного файла
Каждая строка содержит 9 значений, разделённых табуляцией. Значения записываются в шестнадцатеричном формате (7 цифр, с ведущими нулями):
0012345\t0023456\t0034567\t...
Объединение данных
Для каждой пары ESP32 считывает два 16-битных слова:
- 14b14 выключен (по умолчанию):
result = (odd[11:0] << 16) | even— 12 старших бит из нечётного регистра + 16 младших бит из чётного. Итого 28 бит. - 14b14 включен:
result = (odd[13:0] << 14) | even[13:0]— 14 старших бит + 14 младших бит. Итого 28 бит (4 старших бита каждой половины отбрасываются).
Взаимодействие с ESP32
В режиме записи ESP32 выполняет циклический опрос микросхемы по SPI по заданным адресам и передаёт результаты на ПК через UART. Порядок работы:
- Rec — ПК отправляет команду
START_RECORDс адресами всех 18 регистров (9 пар × 2). - ESP32 начинает циклический опрос микросхемы с интервалом 1 мс.
- При каждом опросе ESP32 считывает 18 регистров и отправляет пакет на ПК.
- ПК принимает данные через callback, объединяет пары в значения и записывает в файл.
- Stop — ПК отправляет команду
STOP_RECORD, ESP32 прекращает опрос.
Типичное использование
- Настройте пары адресов в таблице.
- Укажите путь к файлу записи.
- Нажмите Rec — начнётся запись данных.
- При необходимости включите флажки 14b14 для нужных пар (зависит от формата данных в регистрах).
- Нажмите Stop для остановки записи.
- Полученный файл можно использовать для анализа в MATLAB, Python или других инструментах.