Skip to content

Commit

Permalink
Merge pull request #4 from vad7/master
Browse files Browse the repository at this point in the history
description
  • Loading branch information
vad7 authored Feb 25, 2023
2 parents 267c495 + fdabb9c commit 3952d43
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 3 deletions.
Binary file added Pics/descript.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# nRF24-Batch
Flipper Zero application for nRF24L01 external board. Send batch commands. (TESTING...)
Flipper Zero application for nRF24L01 external board. Send batch commands. (IN DEVELOP...)

<b>Приложение для Flipper Zero, предназначено для отправки пакетных команд на удаленные устройства, использующие nRF24L01.</b><br>
Можно использовать для настройки или чтения данных с удаленного устройства. На удаленной стороне для команды чтения требуется поддержка.<br>
Expand All @@ -9,15 +9,20 @@ Flipper Zero application for nRF24L01 external board. Send batch commands. (TEST
<br>
Описание команд в текстовом файле.<br>
<br>
Формат пакета (payload) в виде размера полей структуры в байтах задается, например, так "Payload struct: 2,1,1",<br>
Формат пакета для отправки (payload) задается в виде размера полей структуры в байтах, например, так "Payload struct: 2,1,1",<br>
что означает структуру из 3 полей: 2 байта, 1 байт, 1 байт.<br>
Полученный в ответ пакет состоит из одного значения, размерность по умолчанию 1 байт (int8), задается числом после '*' после имени команды.<br><br>
Перед отправкой пакета, он заполняется сначала шаблону по умолчанию: "R default" - запрос чтения, "W default" - запись.<br>
Можно использовать константы, они указываются в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
Можно использовать константы, они задаются в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
Затем берутся заполненные значения из самой команды.<br>
Пакет состоит из списка команд, перечисленных через ";".<br>
Перед пакетом команд для записи отправляется пакет 'Write start', если присутствует в файле.<br>
<br>
Пример файл [CO2_mini](https://raw.githubusercontent.com/vad7/nRF24-Batch/main/Distr/nrf24batch/CO2_mini.txt)<br>
<br>
Структура файла настроек:
<img src="https://raw.githubusercontent.com/vad7/nRF24-Batch/main/Pics/descript.png">
<br>
<br>
<img src="https://raw.githubusercontent.com/vad7/nRF24-Batch/main/Pics/Screenshot-1.png">
<img src="https://raw.githubusercontent.com/vad7/nRF24-Batch/main/Pics/Screenshot-2.png">
Expand Down
34 changes: 34 additions & 0 deletions descript.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Info: CO2 sensor mini
Rate: 1 <- nRF24 data rate (0 - 250Kbps, 1 - 1Mbps, 2 - 2Mbps)
Ch: 121 <- nRF24 channel (0..125)
CRC: 2 <- nRF24 CRC size
DPL: 0 <- nRF24 dynamic payload en/dis
Address: C8C8CF <- nRF24 address (3..5 bytes)
Resend: 3 <- resend attempts on error
Delay_ms: 30 <- delay between cmd and resend

Payload struct: 2,1,1 <- field sizes of send packet in bytes, received packet consists of 1 field with default size 1 byte (int8)
EEPROM=0; RAM=1; PROGMEM=2; ID=3; RESET=4 <- Constants

R default: ,EEPROM,0xC1 <- default for read
W default: n,,0x81 <- default for write, 'n' - means field value position
Write start: 0,0,0x8F <- if exist in the file - packet before write a batch

R: ID*=,ID <- Read cmd, '*' - means string like device ID, result in bytes = { 0, 0, 3, 0xC1 }
R: OSCCAL=0x51,RAM <- Read cmd, result in bytes = { 0x51, 0, 1, 0xC1 }
R: OSCCAL_EMEM=0 <- Read cmd, result in bytes = { 0, 0, 0, 0xC1 }
R: CO2=0x67,RAM,0xC2 <- Read cmd, result in bytes = { 0x67, 0, 1, 0xC2 }

R: CO2 threshold*2=5,,0xC2 <- Read cmd, '*2' - means received field with 2 bytes size (int16), result in bytes = { 5, 0, 0, 0xC2 }
W: CO2 threshold=,5,0x82 <- Write cmd, send pkt = { <from WBatch 1 byte>, <from WBatch 2 byte>, 5, 0x82 }

R: FanLSB[10]=i:9 <- Read cmd, '[n]' - means array with 'n' elements, 'i:n' - means array index field that will be incemented after next cmd
result in bytes = 1 pkt: { 9, 0, 0, 0xC1 }, 2 pkt: { 10, 0, 0, 0xC1 }, 3 pkt: { 10, 0, 0, 0xC1 },... total 10 packets
W: FanLSB=,i:9 <- Write cmd, 'i' - index field. Send packets: { n & 0xFF, n >> 8, 9, 0x81 }, { n & 0xFF, n >> 8, 10, 0x81 },...
W: RxAddr=,1
W: Reset=,RESET,0xC1

RBatch: Settings: ID;OSCCAL;RxAddr;Ch;nRF RETR;CO2 threshold;CO2 correct;FanLSB <- Read Batch, 8 packets will be sent and received

WBatch: Default: RxAddr=0xCF;CO2 threshold=1000;Reset <- Write Batch, Send: { 0,0,0,0x8F }, { 0xCF, 0, 1, 0x81 }, { 0xE8, 0x03, 5, 0x82 }, { 0, 0, 4, 0x81 }
WBatch: Fans: FanLSB={0xC2,0xC3,0} <- Write Batch, Send: { 0,0,0,0x8F }, { 0xC2, 0, 9, 0x81 }, { 0xC3, 0, 10, 0x81 }

0 comments on commit 3952d43

Please sign in to comment.