暫無描述

Vadim 75809ee011 Merge pull request #8 from vad7/master 2 年之前
Distr 8438749483 listen mode 2 年之前
Pics 7761a22ff6 readme 2 年之前
lib 42d8e2c494 upd 2 年之前
LICENSE f8022a63eb Initial commit 2 年之前
README.md 7761a22ff6 readme 2 年之前
application.fam 4978e53f30 first 2 年之前
descript.txt 0dbf1a1fc0 new "Set" cmd, added Kitchen Vent.txt 2 年之前
nrf24batch.c 401bed5e01 fix 2 年之前
nrf24batch.h 4978e53f30 first 2 年之前
nrf24batch_10px.png 4978e53f30 first 2 年之前

README.md

nRF24-Batch

Flipper Zero application for nRF24L01 external board. Sends batch commands.

Приложение для Flipper Zero, предназначено для отправки пакетных команд на удаленные устройства, использующие радио nRF24L01.

Можно использовать для настройки или чтения данных с удаленного устройства. На удаленной стороне требуется поддержка, ссылка на код для микроконтроллера AVR ниже.

Сначала выбирается файл настройки с описанием команд.
Можно отредактировать адрес и номер канала.
Затем стрелками влево или вправо выбирается нужный режим - Пакетное чтение (Read Batch), Чтение по одной команде (Read cmd), Пакетная запись (Write Batch), Режим прослушивания адреса (Listen).

Есть два вида команд: запрос-ответ и запись.
Запрос-ответ (Read) - отправка пакета, переключение на прием и отображение на экране, что получили.
Запись (Write) - фактически отправка пакетов подряд с нужными данными.
Режим прослушивания (Listen) - если в файле присутствует строка "Listen: <адрес>=<поле 1>,<поле 2>,...", где "поле.." название поля. Адрес пожно менять - долго нажать Ok.

Формат пакета для отправки (payload) задается в виде размера полей структуры в байтах, например, так "Payload struct: 2,1,1", что означает структуру из 3 полей: 2 байта, 1 байт, 1 байт.
Полученный в ответ пакет (такой же длины как и отправленный) состоит из одного значения (остаток пакета не используется), размерность по умолчанию 1 байт (int8), при необходимости, она задается числом после '*' после имени команды.

Перед отправкой пакета, он заполняется сначала по шаблону по умолчанию "R default" для запроса чтения, "W default" - для записи.
Поля разделены - ','. Для "W default" есть специальный маркер 'n', говорящий какое поле будет заполняться значением после '=' из команды "WBatch".
Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.
Затем берутся заполненные значения полей из самой команды ("R:" или "W:").
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде.

Пакеты чтения "RBatch:" и записи "WBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".
"S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет

Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.
Перед пакетом команд для записи отправляется пакет "Write start", если эта строка присутствует в файле настроек.

Значение команды для записи можно редактировать - Ok на списке команд, стрелки - +/- и переход по цифрам, завершить - Назад, вставка цифры - Ok, удаление цифры - длительный Ok.
Из списка команд в пакетах чтения и записи команды можно убирать - для этого нужно долго нажать на кнопку влево и подтвердить.
Это нужно, например, чтобы убирать те команды в сохраненном пакете для чтения, для которых нет команды записи.

Пример файл CO2_mini
Для устройства на Attiny44A, которое отправляет данные с датчика CO2 на контроллеры, управляющие вентиляцией или проветриватели: https://github.com/vad7/CO2-mini

Структура файла настроек:





Mini board for Flipper Zero to connect nRF24l01:



Gerber for mini board with 5V - 3.3V converter LM1117-3.3
Easyeda source