Skip to content
This repository has been archived by the owner on Jul 28, 2024. It is now read-only.

Commit

Permalink
'$' at the end of the line - decimal number(s)
Browse files Browse the repository at this point in the history
  • Loading branch information
vad7 committed Oct 21, 2023
1 parent 6b29cec commit a823ea3
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 37 deletions.
46 changes: 24 additions & 22 deletions Distr/nrf24batch/Kitchen Vent Dimmer.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,29 +99,31 @@ W: _PORTA=,0x3B,,WRAM
R: _PORTB=0x36,,RAM
W: _PORTB=,0x38,WRAM

R: _LED_Warning=0x71,,RAM
W: _LED_Warning=,0x71,WRAM
R: _IRHashLast*2=0x89,,RAM2#
R: _IRCntLast=0x87,,RAM
R: _IRHash*2=0x8B,,RAM2#
R: _SleepTimer=0x8E,,RAM
R: _FanOn=0x7F,,RAM
R: _FanOnNext=0x7D,,RAM
R: _FanOnNextCnt=0x7B,,RAM
R: _FanOnLast=0x7C,,RAM

R: _OutSpeedMax=0x90,,RAM
W: _OutSpeedMax=,0x90,WRAM

R: _Fanspeed=0x7E,,RAM
R: _LED_Warning=0x72,,RAM
W: _LED_Warning=,0x72,WRAM
R: _IRHashLast*2=0x8A,,RAM2#
R: _IRCntLast=0x88,,RAM
R: _IRLastDuration=0x9A,,RAM
R: _IRLastDurArr[50]=i:0xA6,,RAM$
R: _IRHash*2=0x8C,,RAM2#
R: _SleepTimer=0x8F,,RAM
R: _FanOn=0x80,,RAM
R: _FanOnNext=0x7E,,RAM
R: _FanOnNextCnt=0x7C,,RAM
R: _FanOnLast=0x7D,,RAM

R: _OutSpeedMax=0x91,,RAM
W: _OutSpeedMax=,0x91,WRAM

R: _Fanspeed=0x7F,,RAM
R: _SSR_full_period*2=0x64,,RAM2

R: _PulseDelayAfterZero*2=0x9F,,RAM2
W: _PulseDelayAfterZero*2=,0x9F,WRAM2
R: _PulseWidth*2=0x92,,RAM2
W: _PulseWidth*2=,0x92,WRAM2
R: _PulseWidth2=0xA3,,RAM
W: _PulseWidth2=,0xA3,WRAM
R: _PulseDelayAfterZero*2=0xA0,,RAM2
W: _PulseDelayAfterZero*2=,0xA0,WRAM2
R: _PulseWidth*2=0x93,,RAM2
W: _PulseWidth*2=,0x93,WRAM2
R: _PulseWidth2=0xA4,,RAM
W: _PulseWidth2=,0xA4,WRAM

W: Reset=0xEEEE,14,SET

Expand Down Expand Up @@ -159,6 +161,6 @@ WBatch: FanCooker Down/Up key idx: FanCookSpIdxDnKey=5;FanCookSpIdxUpKey=6
WBatch: LED Warning: _LED Warning=0x10
WBatch: OSCCAL: _OSCCAL=146
WBatch: CO2 Level: CO2 level={820,910,1000};PauseSetByCO2,min=10
WBatch: Zero cross EEPROM: SSR_PulseWidth,us=9990;SSR2_PulseWidth,us=0;SSR_PulseSafeTime,us=100;Reset
WBatch: Zero cross EEPROM: SSR_PulseWidth,us=9990;SSR2_PulseWidth,us=0;SSR_PulseSafeTime,us=120;Reset
WBatch: Zero cross RAM: _PulseDelayAfterZero=0001;_PulseWidth=200;_PulseWidth2=200
WBatch: Reset: Reset
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Flipper Zero application for nRF24L01 external board. Sends batch commands.
Поля разделены - ','. Для "W default" есть специальный маркер 'n', говорящий какое поле будет заполняться значением после '=' из команды "WBatch".<br>
Можно использовать константы по их имени, они задаются в файле в формате "имя=число", число либо десятичное или шестнадцатеричное с префиксом 0x.<br>
Затем берутся заполненные значения полей из самой команды ("R:" или "W:").<br>
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде.<br><br>
Если в конце строки с командой чтения символ '#', то считанное значение будет показано в шестнадцатеричном виде, если '$' - то в десятичном.<br><br>
Пакеты чтения "RBatch:", записи "WBatch:", отправки "SBatch:" состоят из списка имен команд "R:" или "W:"("S:"), соответственно, перечисленных через ";".<br>
"S:" то же самое, что и "W:", только пакет "Write start" отправлен не будет<br><br>
Отправка пакета для записи - длительно нажать Ok в списке и подтвердить.<br>
Expand Down
29 changes: 15 additions & 14 deletions nrf24batch.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ uint8_t send_status = sst_none;// sst_*
bool cmd_array = false;
uint8_t cmd_array_idx;
uint8_t cmd_array_cnt = 0;
bool cmd_array_hex;
uint8_t cmd_array_type; // 0 - auto, 1 - hex, 2 - decimal
uint8_t save_settings = 0;
uint16_t view_cmd[rwt_max - 1] = {0}; // SetBatch, ReadBatch, Read, WriteBatch
uint8_t view_x = 0;
Expand Down Expand Up @@ -499,16 +499,16 @@ bool nrf24_read_newpacket() {
char hex[9];
hex[0] = '\0';
add_to_str_hex_variable(hex, (uint8_t*)&var, size);
if((cmd_array && cmd_array_hex) || furi_string_end_with_str(str, "0x")) furi_string_cat_str(str, hex);
if((cmd_array && cmd_array_type == 1) || furi_string_end_with_str(str, "0x")) furi_string_cat_str(str, hex);
else {
if(var >= 0 && var <= 9) furi_string_cat_printf(str, "%ld", var);
if((var >= 0 && var <= 9) || cmd_array_type == 2) furi_string_cat_printf(str, "%ld", var);
else furi_string_cat_printf(str, "%ld (%s)", var, hex);
}
}
if(cmd_array) {
if(--cmd_array_cnt) {
furi_string_cat_str(str, ",");
if(cmd_array_hex) furi_string_cat_str(str, "0x");
if(cmd_array_type == 1) furi_string_cat_str(str, "0x");
payload[cmd_array_idx] += size; // next array element
NRF_repeat = -1;
send_status = sst_sending; // Will be send after delay_between_pkt
Expand Down Expand Up @@ -571,7 +571,7 @@ bool fill_payload(char *p, uint8_t *idx_i, int32_t var_n)
if(end) len = end - p;
else {
len = strlen(p);
if(*(p + len - 1) == '#') len--;
if(*(p + len - 1) == '#' || *(p + len - 1) == '$') len--;
}
b = subs_constant(p, len);
if(b == VAR_EMPTY) {
Expand All @@ -584,7 +584,7 @@ bool fill_payload(char *p, uint8_t *idx_i, int32_t var_n)
}
} else if(end == p) {
idx += payload_struct[fld];
} else if(*p == '#') { // value in Hexadecimal, end string
} else if(*p == '#' || *p == '$') { // value forced in Hex/Dec, end string
break;
} else {
ERR = 2;
Expand Down Expand Up @@ -624,8 +624,10 @@ bool Run_Read_cmd(FuriString *cmd)
FuriString *fs = furi_string_alloc();
furi_string_set_strn(fs, (char*)furi_string_get_cstr(cmd), p - (char*)furi_string_get_cstr(cmd));
furi_string_cat_str(fs, ": ");
bool hexval;
if((hexval = *(p + strlen(p) - 1) == '#')) furi_string_cat_str(fs, "0x"); // value in Hex format
uint8_t valtype;
char c = *(p + strlen(p) - 1);
valtype = c == '#' ? 1 : c == '$' ? 2 : 0;
if(valtype == 1) furi_string_cat_str(fs, "0x"); // value in Hex format
Log[Log_Total++] = fs;
p++;
memset(payload, 0, sizeof(payload));
Expand All @@ -638,7 +640,7 @@ bool Run_Read_cmd(FuriString *cmd)
if(p) {
cmd_array_cnt = str_to_int(p + 1);
if(cmd_array_cnt > 1) {
cmd_array_hex = hexval;
cmd_array_type = valtype;
cmd_array = true; // array
}
}
Expand Down Expand Up @@ -1176,23 +1178,22 @@ static void render_callback(Canvas* const canvas, void* ctx) {
canvas_draw_str(canvas, 0, 10, screen_buf);
if(ListenFields) {
char *p2, *p = ListenFields;
uint8_t hex, len, *pld = payload_receive;
uint8_t valtype, len, *pld = payload_receive;
for(uint8_t i = 0; i < 5 && *p; i++) {
hex = false;
p2 = strchr(p, ',');
if(p2 == NULL) p2 = p + strlen(p);
if(*(p2 - 1) == '#') hex = true;
valtype = *(p2 - 1) == '#' ? 1 : *(p2 - 1) == '$' ? 2 : 0;
memcpy(screen_buf, p, len = p2 - p);
strcpy(screen_buf + len, ": ");
if(ListenNew) {
len = payload_struct[i];
int32_t n = get_payload_receive_field(pld, len);
if(hex) {
if(valtype == 1) {
strcat(screen_buf, "0x");
add_to_str_hex_variable(screen_buf, pld, len);
} else {
snprintf(screen_buf + strlen(screen_buf), 20, "%ld", n);
if(n > 9) {
if(n > 9 && valtype == 0) {
strcat(screen_buf, " (");
add_to_str_hex_variable(screen_buf, pld, len);
strcat(screen_buf, ")");
Expand Down

0 comments on commit a823ea3

Please sign in to comment.