Skip to content

Commit a823ea3

Browse files
committed
'$' at the end of the line - decimal number(s)
1 parent 6b29cec commit a823ea3

File tree

3 files changed

+40
-37
lines changed

3 files changed

+40
-37
lines changed

Distr/nrf24batch/Kitchen Vent Dimmer.txt

+24-22
Original file line numberDiff line numberDiff line change
@@ -99,29 +99,31 @@ W: _PORTA=,0x3B,,WRAM
9999
R: _PORTB=0x36,,RAM
100100
W: _PORTB=,0x38,WRAM
101101

102-
R: _LED_Warning=0x71,,RAM
103-
W: _LED_Warning=,0x71,WRAM
104-
R: _IRHashLast*2=0x89,,RAM2#
105-
R: _IRCntLast=0x87,,RAM
106-
R: _IRHash*2=0x8B,,RAM2#
107-
R: _SleepTimer=0x8E,,RAM
108-
R: _FanOn=0x7F,,RAM
109-
R: _FanOnNext=0x7D,,RAM
110-
R: _FanOnNextCnt=0x7B,,RAM
111-
R: _FanOnLast=0x7C,,RAM
112-
113-
R: _OutSpeedMax=0x90,,RAM
114-
W: _OutSpeedMax=,0x90,WRAM
115-
116-
R: _Fanspeed=0x7E,,RAM
102+
R: _LED_Warning=0x72,,RAM
103+
W: _LED_Warning=,0x72,WRAM
104+
R: _IRHashLast*2=0x8A,,RAM2#
105+
R: _IRCntLast=0x88,,RAM
106+
R: _IRLastDuration=0x9A,,RAM
107+
R: _IRLastDurArr[50]=i:0xA6,,RAM$
108+
R: _IRHash*2=0x8C,,RAM2#
109+
R: _SleepTimer=0x8F,,RAM
110+
R: _FanOn=0x80,,RAM
111+
R: _FanOnNext=0x7E,,RAM
112+
R: _FanOnNextCnt=0x7C,,RAM
113+
R: _FanOnLast=0x7D,,RAM
114+
115+
R: _OutSpeedMax=0x91,,RAM
116+
W: _OutSpeedMax=,0x91,WRAM
117+
118+
R: _Fanspeed=0x7F,,RAM
117119
R: _SSR_full_period*2=0x64,,RAM2
118120

119-
R: _PulseDelayAfterZero*2=0x9F,,RAM2
120-
W: _PulseDelayAfterZero*2=,0x9F,WRAM2
121-
R: _PulseWidth*2=0x92,,RAM2
122-
W: _PulseWidth*2=,0x92,WRAM2
123-
R: _PulseWidth2=0xA3,,RAM
124-
W: _PulseWidth2=,0xA3,WRAM
121+
R: _PulseDelayAfterZero*2=0xA0,,RAM2
122+
W: _PulseDelayAfterZero*2=,0xA0,WRAM2
123+
R: _PulseWidth*2=0x93,,RAM2
124+
W: _PulseWidth*2=,0x93,WRAM2
125+
R: _PulseWidth2=0xA4,,RAM
126+
W: _PulseWidth2=,0xA4,WRAM
125127

126128
W: Reset=0xEEEE,14,SET
127129

@@ -159,6 +161,6 @@ WBatch: FanCooker Down/Up key idx: FanCookSpIdxDnKey=5;FanCookSpIdxUpKey=6
159161
WBatch: LED Warning: _LED Warning=0x10
160162
WBatch: OSCCAL: _OSCCAL=146
161163
WBatch: CO2 Level: CO2 level={820,910,1000};PauseSetByCO2,min=10
162-
WBatch: Zero cross EEPROM: SSR_PulseWidth,us=9990;SSR2_PulseWidth,us=0;SSR_PulseSafeTime,us=100;Reset
164+
WBatch: Zero cross EEPROM: SSR_PulseWidth,us=9990;SSR2_PulseWidth,us=0;SSR_PulseSafeTime,us=120;Reset
163165
WBatch: Zero cross RAM: _PulseDelayAfterZero=0001;_PulseWidth=200;_PulseWidth2=200
164166
WBatch: Reset: Reset

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Flipper Zero application for nRF24L01 external board. Sends batch commands.
2525
Поля разделены - ','. Для "W default" есть специальный маркер 'n', говорящий какое поле будет заполняться значением после '=' из команды "WBatch".<br>
2626
Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
2727
Затем берутся заполненные значения полей из самой команды ("R:" или "W:").<br>
28-
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде.<br><br>
28+
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде, если '$' - то в десятичном.<br><br>
2929
Пакеты чтения "RBatch:", записи "WBatch:", отправки "SBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".<br>
3030
"S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет<br><br>
3131
Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.<br>

nrf24batch.c

+15-14
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ uint8_t send_status = sst_none;// sst_*
7373
bool cmd_array = false;
7474
uint8_t cmd_array_idx;
7575
uint8_t cmd_array_cnt = 0;
76-
bool cmd_array_hex;
76+
uint8_t cmd_array_type; // 0 - auto, 1 - hex, 2 - decimal
7777
uint8_t save_settings = 0;
7878
uint16_t view_cmd[rwt_max - 1] = {0}; // SetBatch, ReadBatch, Read, WriteBatch
7979
uint8_t view_x = 0;
@@ -499,16 +499,16 @@ bool nrf24_read_newpacket() {
499499
char hex[9];
500500
hex[0] = '\0';
501501
add_to_str_hex_variable(hex, (uint8_t*)&var, size);
502-
if((cmd_array && cmd_array_hex) || furi_string_end_with_str(str, "0x")) furi_string_cat_str(str, hex);
502+
if((cmd_array && cmd_array_type == 1) || furi_string_end_with_str(str, "0x")) furi_string_cat_str(str, hex);
503503
else {
504-
if(var >= 0 && var <= 9) furi_string_cat_printf(str, "%ld", var);
504+
if((var >= 0 && var <= 9) || cmd_array_type == 2) furi_string_cat_printf(str, "%ld", var);
505505
else furi_string_cat_printf(str, "%ld (%s)", var, hex);
506506
}
507507
}
508508
if(cmd_array) {
509509
if(--cmd_array_cnt) {
510510
furi_string_cat_str(str, ",");
511-
if(cmd_array_hex) furi_string_cat_str(str, "0x");
511+
if(cmd_array_type == 1) furi_string_cat_str(str, "0x");
512512
payload[cmd_array_idx] += size; // next array element
513513
NRF_repeat = -1;
514514
send_status = sst_sending; // Will be send after delay_between_pkt
@@ -571,7 +571,7 @@ bool fill_payload(char *p, uint8_t *idx_i, int32_t var_n)
571571
if(end) len = end - p;
572572
else {
573573
len = strlen(p);
574-
if(*(p + len - 1) == '#') len--;
574+
if(*(p + len - 1) == '#' || *(p + len - 1) == '$') len--;
575575
}
576576
b = subs_constant(p, len);
577577
if(b == VAR_EMPTY) {
@@ -584,7 +584,7 @@ bool fill_payload(char *p, uint8_t *idx_i, int32_t var_n)
584584
}
585585
} else if(end == p) {
586586
idx += payload_struct[fld];
587-
} else if(*p == '#') { // value in Hexadecimal, end string
587+
} else if(*p == '#' || *p == '$') { // value forced in Hex/Dec, end string
588588
break;
589589
} else {
590590
ERR = 2;
@@ -624,8 +624,10 @@ bool Run_Read_cmd(FuriString *cmd)
624624
FuriString *fs = furi_string_alloc();
625625
furi_string_set_strn(fs, (char*)furi_string_get_cstr(cmd), p - (char*)furi_string_get_cstr(cmd));
626626
furi_string_cat_str(fs, ": ");
627-
bool hexval;
628-
if((hexval = *(p + strlen(p) - 1) == '#')) furi_string_cat_str(fs, "0x"); // value in Hex format
627+
uint8_t valtype;
628+
char c = *(p + strlen(p) - 1);
629+
valtype = c == '#' ? 1 : c == '$' ? 2 : 0;
630+
if(valtype == 1) furi_string_cat_str(fs, "0x"); // value in Hex format
629631
Log[Log_Total++] = fs;
630632
p++;
631633
memset(payload, 0, sizeof(payload));
@@ -638,7 +640,7 @@ bool Run_Read_cmd(FuriString *cmd)
638640
if(p) {
639641
cmd_array_cnt = str_to_int(p + 1);
640642
if(cmd_array_cnt > 1) {
641-
cmd_array_hex = hexval;
643+
cmd_array_type = valtype;
642644
cmd_array = true; // array
643645
}
644646
}
@@ -1176,23 +1178,22 @@ static void render_callback(Canvas* const canvas, void* ctx) {
11761178
canvas_draw_str(canvas, 0, 10, screen_buf);
11771179
if(ListenFields) {
11781180
char *p2, *p = ListenFields;
1179-
uint8_t hex, len, *pld = payload_receive;
1181+
uint8_t valtype, len, *pld = payload_receive;
11801182
for(uint8_t i = 0; i < 5 && *p; i++) {
1181-
hex = false;
11821183
p2 = strchr(p, ',');
11831184
if(p2 == NULL) p2 = p + strlen(p);
1184-
if(*(p2 - 1) == '#') hex = true;
1185+
valtype = *(p2 - 1) == '#' ? 1 : *(p2 - 1) == '$' ? 2 : 0;
11851186
memcpy(screen_buf, p, len = p2 - p);
11861187
strcpy(screen_buf + len, ": ");
11871188
if(ListenNew) {
11881189
len = payload_struct[i];
11891190
int32_t n = get_payload_receive_field(pld, len);
1190-
if(hex) {
1191+
if(valtype == 1) {
11911192
strcat(screen_buf, "0x");
11921193
add_to_str_hex_variable(screen_buf, pld, len);
11931194
} else {
11941195
snprintf(screen_buf + strlen(screen_buf), 20, "%ld", n);
1195-
if(n > 9) {
1196+
if(n > 9 && valtype == 0) {
11961197
strcat(screen_buf, " (");
11971198
add_to_str_hex_variable(screen_buf, pld, len);
11981199
strcat(screen_buf, ")");

0 commit comments

Comments
 (0)