Skip to content

Commit 0dbf1a1

Browse files
committed
new "Set" cmd, added Kitchen Vent.txt
1 parent 0cbad41 commit 0dbf1a1

File tree

5 files changed

+113
-16
lines changed

5 files changed

+113
-16
lines changed

Distr/nrf24batch/CO2_mini.txt

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Info: CO2 sensor mini
22
Address: C8C8CF
33
Rate: 1
4-
Ch: 121
4+
Ch: 122
55
CRC: 2
66
DPL: 0
77
RETR: 0x0F
@@ -18,7 +18,7 @@ Write start: 0,0,0x8F
1818
R: ID*=,ID
1919
R: OSCCAL=0x51,RAM
2020
R: OSCCAL_EMEM=0
21-
R: CO2=0x67,RAM,0xC2
21+
R: CO2*2=0x68,RAM,0xC2
2222

2323
R: RxAddr=1#
2424
W: RxAddr=,1
@@ -43,12 +43,10 @@ W: FanLSB=,i:9
4343

4444
W: Reset=,RESET,0xC1
4545

46-
RBatch: Settings: ID;OSCCAL;RxAddr;Ch;nRF RETR;CO2 threshold;CO2 correct;FanLSB
47-
RBatch: Settings2: OSCCAL;OSCCAL_EMEM;RxAddr;Ch;nRF RETR;CO2 threshold;CO2 correct;FanLSB
46+
RBatch: Settings: ID;RxAddr;Ch;Send period;CO2 threshold;CO2 correct;FanLSB;nRF RETR;OSCCAL
4847

49-
WBatch: Default Ch-121: RxAddr=0xCF;Ch=121;CO2 threshold=1000;CO2 correct=0;Send period=30;nRF RETR=0x17;FanLSB={0xC1,0};Reset
50-
WBatch: Default Ch-10: RxAddr=0xCF;Ch=10;CO2 threshold=1000;CO2 correct=0;Send period=31;FanLSB={0xC1,0xC2,0};Reset
51-
WBatch: CO2: CO2 threshold=1000;CO2 correct=1
52-
WBatch: Fan2: FanLSB={0xC2,0xC3,0,0,0,0,0};Reset
53-
WBatch: RETR 0x0F: nRF RETR=0x0F
48+
WBatch: Default: RxAddr=0xCF;Ch=122;Send period=30;CO2 threshold=1000;CO2 correct=0;FanLSB={0xC1,0};nRF RETR=0x17;Reset
49+
WBatch: CO2: CO2 threshold=1000;CO2 correct=0
50+
WBatch: Fan2: FanLSB={0xC1,0,0,0,0,0,0};Reset
51+
WBatch: RETR: nRF RETR=0x0F;Reset
5452
WBatch: Reset: Reset

Distr/nrf24batch/Kitchen Vent.txt

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
Info: Kitchen Vent (FanControl)
2+
Address: C8C8C1
3+
Rate: 1
4+
Ch: 122
5+
CRC: 2
6+
DPL: 0
7+
RETR: 0x0F
8+
Resend: 3
9+
Delay_ms: 30
10+
11+
Payload struct: 2,1,1
12+
EEPROM=0; RAM=1; PROGMEM=2; ID=3; RESET=4
13+
14+
R default: ,EEPROM,0xC1
15+
W default: n,,0x81
16+
Write start: 0,0,0x8F
17+
18+
R: ID*=,ID
19+
R: FanOn=0x77,RAM,0xC1
20+
S: FanSet=,,0x40
21+
R: FanSpeed=0x76,RAM,0xC1
22+
23+
R: CO2 level 1*2=4,,0xC2
24+
W: CO2 level 1=,4,0x82
25+
R: CO2 level 2*2=6,,0xC2
26+
W: CO2 level 2=,6,0x82
27+
R: CO2 level 3*2=8,,0xC2
28+
W: CO2 level 3=,8,0x82
29+
30+
R: FanSpeed_1=19
31+
W: FanSpeed_1=,19
32+
R: FanSpeed_2=20
33+
W: FanSpeed_2=,20
34+
R: FanSpeed_3=21
35+
W: FanSpeed_3=,21
36+
R: FanCookSpeed_1=22
37+
W: FanCookSpeed_1=,22
38+
R: FanCookSpeed_2=23
39+
W: FanCookSpeed_2=,23
40+
R: FanCookSpeed_3=24
41+
W: FanCookSpeed_3=,24
42+
43+
R: FanStartupTime=10
44+
W: FanStartupTime=,10
45+
46+
R: FanOffTime=11
47+
W: FanOffTime=,11
48+
49+
R: FanCookStartupTime=12
50+
W: FanCookStartupTime=,12
51+
52+
R: FanCookOffTime=13
53+
W: FanCookOffTime=,13
54+
55+
R: FanSleep=14
56+
W: FanSleep=,14
57+
58+
R: FanCookSleep=15
59+
W: FanCookSleep=,15
60+
61+
R: FanSpeedInitIdx=16
62+
W: FanSpeedInitIdx=,16
63+
64+
R: FanSpeedKey=17
65+
W: FanSpeedKey=,17
66+
67+
R: IRRemotes=32
68+
W: IRRemotes=,32
69+
70+
R: IRRemotesHash*2[80]=i:32#
71+
W: IRRemotesHash=,i:32
72+
73+
R: OutPeriod=18
74+
W: OutPeriod=,18
75+
76+
R: Flags=1#
77+
W: Flags=,1
78+
79+
R: RxAddr=2#
80+
W: RxAddr=,2
81+
82+
R: Ch=3
83+
W: Ch=,3
84+
85+
R: OSCCAL=0x51,RAM
86+
R: OSCCAL_EMEM=0
87+
88+
W: Reset=,RESET,0xC1
89+
90+
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
91+
RBatch: Hardware: ID;RxAddr;Ch;FanSpeedInitIdx;Flags;OutPeriod;IRRemotes;OSCCAL_EMEM
92+
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
93+
94+
WBatch: SetSpeed: FanSet=0
95+
WBatch: Reset: Reset

README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ Flipper Zero application for nRF24L01 external board. Sends batch commands.
1919
Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
2020
Затем берутся заполненные значения полей из самой команды ("R:" или "W:").<br>
2121
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде.<br><br>
22-
Пакеты чтения "RBatch:" и записи "WBatch:" состоят из списка имен команд "R:" или "W:", соответственно, перечисленных через ";".<br><br>
22+
Пакеты чтения "RBatch:" и записи "WBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".<br>
23+
"S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет<br><br>
2324
Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.<br>
24-
Перед пакетом команд для записи отправляется пакет 'Write start', если эта строка присутствует в файле настроек.<br><br>
25+
Перед пакетом команд для записи отправляется пакет "Write start", если эта строка присутствует в файле настроек.<br><br>
2526
Значение команды для записи можно редактировать - Ok на списке команд, стрелки - +/- и переход по цифрам, завершить - Назад, вставка цифры - Ok, удаление цифры - длительный Ok.<br>
2627
Из списка команд в пакетах чтения и записи команды можно убирать - для этого нужно долго нажать на кнопку влево и подтвердить.<br>
2728
Это нужно, например, чтобы убирать те команды в сохраненном пакете для чтения, для которых нет команды записи.<br>

descript.txt

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ W: CO2 threshold=,5,0x82 <- Write cmd, send pkt = { <from WBatch first byte o
2626
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
2727
result in bytes = 1 pkt: { 9, 0, 0, 0xC1 }, 2 pkt: { 10, 0, 0, 0xC1 }, 3 pkt: { 10, 0, 0, 0xC1 },... total 10 packets
2828
W: FanLSB=,i:9 <- Write cmd, 'i' - index field. Send packets: { n & 0xFF, n >> 8, 9, 0x81 }, { n & 0xFF, n >> 8, 10, 0x81 },...
29+
R: Int16Array*2[10]=i:21 <- Read cmd, array with 10 elements of int16 (2 bytes)
2930
W: RxAddr=,1 <- Write cmd, payload = { n, 0, 1, 0x81 }
3031
W: Reset=,RESET,0xC1 <- Send payload = { 0, 0, 4, 0xC1 }
3132

nrf24batch.c

+7-5
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ const char SettingsFld_WriteStart[] = "Write start:";
3636
const char SettingsFld_Payload[] = "Payload struct:";
3737
const char SettingsFld_ReadDefault[] = "R default:";
3838
const char SettingsFld_WriteDefault[] = "W default:";
39-
const char SettingsFld_Read[] = "R:";
40-
const char SettingsFld_Write[] = "W:";
39+
const char SettingsFld_Read[] = "R:"; // Read cmd
40+
const char SettingsFld_Write[] = "W:"; // Write cmd
41+
const char SettingsFld_Set[] = "S:"; // Set cmd (like Write but without "Write start" packet)
4142
const char SettingsFld_ReadBatch[] = "RBatch:";
4243
const char SettingsFld_WriteBatch[] = "WBatch:";
4344
const char AskQuestion_Save[] = "SAVE BATCH?";
@@ -70,7 +71,7 @@ uint8_t save_settings = 0;
7071
uint16_t view_cmd[3] = {0, 0, 0}; // ReadBatch, Read, WriteBatch
7172
uint8_t view_x = 0;
7273
char screen_buf[64];
73-
char Info[FONT_5x7_SCREEN_WIDTH] = "";
74+
char Info[35] = "";
7475
char file_name[FONT_5x7_SCREEN_WIDTH];
7576
char ERR_STR[FONT_5x7_SCREEN_WIDTH];
7677
uint8_t ERR = 0;
@@ -636,8 +637,9 @@ bool Run_WriteBatch_cmd()
636637
stream_rewind(file_stream);
637638
while(stream_read_line(file_stream, str)) {
638639
w = (char*)furi_string_get_cstr(str);
639-
if(strncmp(w, SettingsFld_Write, sizeof(SettingsFld_Write)-1) != 0) continue;
640-
w += sizeof(SettingsFld_Write);
640+
if(strncmp(w, SettingsFld_Write, sizeof(SettingsFld_Write)-1) == 0) w += sizeof(SettingsFld_Write);
641+
else if(strncmp(w, SettingsFld_Set, sizeof(SettingsFld_Set)-1) == 0) w += sizeof(SettingsFld_Set);
642+
else continue;
641643
delim_col = strchr(w, '=');
642644
if(delim_col == NULL || len != delim_col - w) continue;
643645
if(strncmp(p, w, len) != 0) continue;

0 commit comments

Comments
 (0)