Skip to content

Commit

Permalink
new "Set" cmd, added Kitchen Vent.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
vad7 committed Mar 3, 2023
1 parent 0cbad41 commit 0dbf1a1
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 16 deletions.
16 changes: 7 additions & 9 deletions Distr/nrf24batch/CO2_mini.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Info: CO2 sensor mini
Address: C8C8CF
Rate: 1
Ch: 121
Ch: 122
CRC: 2
DPL: 0
RETR: 0x0F
Expand All @@ -18,7 +18,7 @@ Write start: 0,0,0x8F
R: ID*=,ID
R: OSCCAL=0x51,RAM
R: OSCCAL_EMEM=0
R: CO2=0x67,RAM,0xC2
R: CO2*2=0x68,RAM,0xC2

R: RxAddr=1#
W: RxAddr=,1
Expand All @@ -43,12 +43,10 @@ W: FanLSB=,i:9

W: Reset=,RESET,0xC1

RBatch: Settings: ID;OSCCAL;RxAddr;Ch;nRF RETR;CO2 threshold;CO2 correct;FanLSB
RBatch: Settings2: OSCCAL;OSCCAL_EMEM;RxAddr;Ch;nRF RETR;CO2 threshold;CO2 correct;FanLSB
RBatch: Settings: ID;RxAddr;Ch;Send period;CO2 threshold;CO2 correct;FanLSB;nRF RETR;OSCCAL

WBatch: Default Ch-121: RxAddr=0xCF;Ch=121;CO2 threshold=1000;CO2 correct=0;Send period=30;nRF RETR=0x17;FanLSB={0xC1,0};Reset
WBatch: Default Ch-10: RxAddr=0xCF;Ch=10;CO2 threshold=1000;CO2 correct=0;Send period=31;FanLSB={0xC1,0xC2,0};Reset
WBatch: CO2: CO2 threshold=1000;CO2 correct=1
WBatch: Fan2: FanLSB={0xC2,0xC3,0,0,0,0,0};Reset
WBatch: RETR 0x0F: nRF RETR=0x0F
WBatch: Default: RxAddr=0xCF;Ch=122;Send period=30;CO2 threshold=1000;CO2 correct=0;FanLSB={0xC1,0};nRF RETR=0x17;Reset
WBatch: CO2: CO2 threshold=1000;CO2 correct=0
WBatch: Fan2: FanLSB={0xC1,0,0,0,0,0,0};Reset
WBatch: RETR: nRF RETR=0x0F;Reset
WBatch: Reset: Reset
95 changes: 95 additions & 0 deletions Distr/nrf24batch/Kitchen Vent.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
Info: Kitchen Vent (FanControl)
Address: C8C8C1
Rate: 1
Ch: 122
CRC: 2
DPL: 0
RETR: 0x0F
Resend: 3
Delay_ms: 30

Payload struct: 2,1,1
EEPROM=0; RAM=1; PROGMEM=2; ID=3; RESET=4

R default: ,EEPROM,0xC1
W default: n,,0x81
Write start: 0,0,0x8F

R: ID*=,ID
R: FanOn=0x77,RAM,0xC1
S: FanSet=,,0x40
R: FanSpeed=0x76,RAM,0xC1

R: CO2 level 1*2=4,,0xC2
W: CO2 level 1=,4,0x82
R: CO2 level 2*2=6,,0xC2
W: CO2 level 2=,6,0x82
R: CO2 level 3*2=8,,0xC2
W: CO2 level 3=,8,0x82

R: FanSpeed_1=19
W: FanSpeed_1=,19
R: FanSpeed_2=20
W: FanSpeed_2=,20
R: FanSpeed_3=21
W: FanSpeed_3=,21
R: FanCookSpeed_1=22
W: FanCookSpeed_1=,22
R: FanCookSpeed_2=23
W: FanCookSpeed_2=,23
R: FanCookSpeed_3=24
W: FanCookSpeed_3=,24

R: FanStartupTime=10
W: FanStartupTime=,10

R: FanOffTime=11
W: FanOffTime=,11

R: FanCookStartupTime=12
W: FanCookStartupTime=,12

R: FanCookOffTime=13
W: FanCookOffTime=,13

R: FanSleep=14
W: FanSleep=,14

R: FanCookSleep=15
W: FanCookSleep=,15

R: FanSpeedInitIdx=16
W: FanSpeedInitIdx=,16

R: FanSpeedKey=17
W: FanSpeedKey=,17

R: IRRemotes=32
W: IRRemotes=,32

R: IRRemotesHash*2[80]=i:32#
W: IRRemotesHash=,i:32

R: OutPeriod=18
W: OutPeriod=,18

R: Flags=1#
W: Flags=,1

R: RxAddr=2#
W: RxAddr=,2

R: Ch=3
W: Ch=,3

R: OSCCAL=0x51,RAM
R: OSCCAL_EMEM=0

W: Reset=,RESET,0xC1

RBatch: Work: ID;CO2 level 1;CO2 level 2;CO2 level 3;FanCookSpeed_1;FanCookSpeed_2;FanCookSpeed_3;FanCookStartupTime;FanCookOffTime;FanCookSleep;FanSpeed_1;FanSpeed_2;FanSpeed_3;FanStartupTime;FanOffTime;FanSleep
RBatch: Hardware: ID;RxAddr;Ch;FanSpeedInitIdx;Flags;OutPeriod;IRRemotes;OSCCAL_EMEM
RBatch: All: ID;CO2 level 1;CO2 level 2;CO2 level 3;FanCookSpeed_1;FanCookSpeed_2;FanCookSpeed_3;FanCookStartupTime;FanCookOffTime;FanCookSleep;FanSpeed_1;FanSpeed_2;FanSpeed_3;FanStartupTime;FanOffTime;FanSleep;RxAddr;Ch;FanSpeedInitIdx;Flags;OutPeriod;IRRemotes;IRRemotesHash

WBatch: SetSpeed: FanSet=0
WBatch: Reset: Reset
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ Flipper Zero application for nRF24L01 external board. Sends batch commands.
Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
Затем берутся заполненные значения полей из самой команды ("R:" или "W:").<br>
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде.<br><br>
Пакеты чтения "RBatch:" и записи "WBatch:" состоят из списка имен команд "R:" или "W:", соответственно, перечисленных через ";".<br><br>
Пакеты чтения "RBatch:" и записи "WBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".<br>
"S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет<br><br>
Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.<br>
Перед пакетом команд для записи отправляется пакет 'Write start', если эта строка присутствует в файле настроек.<br><br>
Перед пакетом команд для записи отправляется пакет "Write start", если эта строка присутствует в файле настроек.<br><br>
Значение команды для записи можно редактировать - Ok на списке команд, стрелки - +/- и переход по цифрам, завершить - Назад, вставка цифры - Ok, удаление цифры - длительный Ok.<br>
Из списка команд в пакетах чтения и записи команды можно убирать - для этого нужно долго нажать на кнопку влево и подтвердить.<br>
Это нужно, например, чтобы убирать те команды в сохраненном пакете для чтения, для которых нет команды записи.<br>
Expand Down
1 change: 1 addition & 0 deletions descript.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ W: CO2 threshold=,5,0x82 <- Write cmd, send pkt = { <from WBatch first byte o
R: FanLSB[10]=i:9 <- Read cmd, '[10]' - means array with 10 elements, 'i:9' - means array index field (9) that will be incemented after each send
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 },...
R: Int16Array*2[10]=i:21 <- Read cmd, array with 10 elements of int16 (2 bytes)
W: RxAddr=,1 <- Write cmd, payload = { n, 0, 1, 0x81 }
W: Reset=,RESET,0xC1 <- Send payload = { 0, 0, 4, 0xC1 }

Expand Down
12 changes: 7 additions & 5 deletions nrf24batch.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ const char SettingsFld_WriteStart[] = "Write start:";
const char SettingsFld_Payload[] = "Payload struct:";
const char SettingsFld_ReadDefault[] = "R default:";
const char SettingsFld_WriteDefault[] = "W default:";
const char SettingsFld_Read[] = "R:";
const char SettingsFld_Write[] = "W:";
const char SettingsFld_Read[] = "R:"; // Read cmd
const char SettingsFld_Write[] = "W:"; // Write cmd
const char SettingsFld_Set[] = "S:"; // Set cmd (like Write but without "Write start" packet)
const char SettingsFld_ReadBatch[] = "RBatch:";
const char SettingsFld_WriteBatch[] = "WBatch:";
const char AskQuestion_Save[] = "SAVE BATCH?";
Expand Down Expand Up @@ -70,7 +71,7 @@ uint8_t save_settings = 0;
uint16_t view_cmd[3] = {0, 0, 0}; // ReadBatch, Read, WriteBatch
uint8_t view_x = 0;
char screen_buf[64];
char Info[FONT_5x7_SCREEN_WIDTH] = "";
char Info[35] = "";
char file_name[FONT_5x7_SCREEN_WIDTH];
char ERR_STR[FONT_5x7_SCREEN_WIDTH];
uint8_t ERR = 0;
Expand Down Expand Up @@ -636,8 +637,9 @@ bool Run_WriteBatch_cmd()
stream_rewind(file_stream);
while(stream_read_line(file_stream, str)) {
w = (char*)furi_string_get_cstr(str);
if(strncmp(w, SettingsFld_Write, sizeof(SettingsFld_Write)-1) != 0) continue;
w += sizeof(SettingsFld_Write);
if(strncmp(w, SettingsFld_Write, sizeof(SettingsFld_Write)-1) == 0) w += sizeof(SettingsFld_Write);
else if(strncmp(w, SettingsFld_Set, sizeof(SettingsFld_Set)-1) == 0) w += sizeof(SettingsFld_Set);
else continue;
delim_col = strchr(w, '=');
if(delim_col == NULL || len != delim_col - w) continue;
if(strncmp(p, w, len) != 0) continue;
Expand Down

0 comments on commit 0dbf1a1

Please sign in to comment.