Commit Graph

4326 Commits

Author SHA1 Message Date
Maxim Prokhorov
7ea658b7b5 system(boot): actually enable partially unstable setup 2025-11-24 17:17:15 +03:00
Maxim Prokhorov
14aff75a7d gpio(terminal): typo
output pins displayed as inputs when shift does not coincide
2025-11-24 17:16:02 +03:00
Maxim Prokhorov
245e456b44 settings(parse): force trailing suffix when already used it once
prevent ambiguous specs when parsing native durations, which
are implicitly used by default for numbers without suffixes
2025-11-20 23:45:21 +03:00
Maxim Prokhorov
f9a445dd95 relay(boot): skip hw gpio target status delay when soft resetting
since pin state was retained and should immediately use rtcmem mask value
2025-11-16 13:26:48 +03:00
Maxim Prokhorov
994b716caa led(pattern): check parsing success
result is not directly convertible
2025-11-15 23:32:06 +03:00
Maxim Prokhorov
9069546380 test(led): template for unchecked conversion test 2025-11-15 23:29:13 +03:00
Maxim Prokhorov
6093c17fea led: more refactoring
- correctly parse delays when 'repeats' is missing and avoid doing pointer math on nullptr
  empty pattern allowed in all cases, not just 0,0
- parse should signal about invalid inputs
- parse & serialize updated to support empty repeats
- [Rr] in addition to 0,0 as pattern repeat marker

also fixes led.h vs. led_internal.h usage in parser code
2025-11-15 23:04:08 +03:00
Maxim Prokhorov
2938029451 types(duration): micros & millis suffixes
since underlying struct should be able to hold both magnitudes
adjust tests & try to handle more cases
2025-11-15 22:46:05 +03:00
Maxim Prokhorov
37fbd91c13 sns(hlw8012): prefer fastmath over newlib math
since size does matter when upgrading from older versions via ota
also noticed in fauxmoesp, but has to be forked / symbol edited via build script
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
25479ed59e led(loop): reduce number of funcs duplicating method calls
and since status is always expected to work as 'logical' one, not 'physical' one
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
b716d4c2cc led(relay): dont check link w/ findme & relays
amends 0033735caa
since both modes are for every relay, not any specific one
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
79633343b9 gpio(terminal): explicit mode in addition to write 2025-11-10 02:53:35 +03:00
Maxim Prokhorov
5e681eb009 mqtt(debug): display empty message as 0 bytes
since there is no quoting, should'nt mistake it for space(s)
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
22fbd61db6 system(boot): led & buttons work when not too unstable
remap buttons to reset & leds to notify that device is not actually dead
if rebooting still happens from either module, still works as before
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
7babf84b53 system(boot): persistent count clamp & code reuse 2025-11-10 02:53:35 +03:00
Maxim Prokhorov
bdf87e1a51 led(pattern): refactoring
w/ another -fsanitize=address hint, use separate objects instead of
relying on pattern itself holding everything api *may* need

combine pattern and preset patterns currently separate timers
pattern container reworked to allow small-size optimization

introduce a special '0,0' marker, repeating the whole pattern (instead
of just one delay at the end)

since pattern is part of the led struct proper, display it in settings query
update tests & reuse time parsing routines from utils
2025-11-10 02:53:35 +03:00
Maxim Prokhorov
8592474a9b btn(action): manual reset should not increment unstable counter 2025-11-09 18:52:44 +03:00
Maxim Prokhorov
f737ee2615 uart(debug): also disable rx when uart0 was configured w/o it 2025-11-09 18:52:44 +03:00
Maxim Prokhorov
bc9f879c9c libs(views): fix lingering pointer to old object when copying / moving
also noticed by -fsanitize=address

> auto split = StatefulSplitView{input, " "};
> ...
> split = StatefulSplitViewinput, ","};

ctor & assignment should properly re-construct iterator to avoid referencing
temporaries (especially when ctor & move actually happens and not elided)
2025-11-09 18:52:44 +03:00
Maxim Prokhorov
bb7bd06d67 terminal(test): known memory leakage
allow -fsanitize=address without warnings

avoid extra attributes and just fix the usage in tests,
deprecate for everything else
2025-11-09 18:52:44 +03:00
Maxim Prokhorov
bbfe32940c debug(uart): also mask rx isr when disabled
reserved pins are still techincally in use
also reverts commit removing static putc1
2025-10-03 16:33:45 +03:00
Maxim Prokhorov
63871a6ff2 debug(uart): another spurious unused function warning
same flow when disabling internal uart
2025-10-03 16:32:27 +03:00
Maxim Prokhorov
96efa49fce ntp(cfg): unchecked comparison with nullptr 2025-09-10 11:19:55 +03:00
Maxim Prokhorov
eab8653eb5 debug(uart): spurious unused function warning
amends e76b67b355
2025-09-08 23:41:25 +03:00
Maxim Prokhorov
a63c6c342a types(build): sv constants in read-only memory 2025-09-08 22:58:46 +03:00
Maxim Prokhorov
d576fad945 sns(build): remove FlashStringHelper 2025-09-08 22:57:26 +03:00
Maxim Prokhorov
4cd98f8622 rfm69(build): remove FlashStringHelper 2025-09-08 22:57:13 +03:00
Maxim Prokhorov
9cf52ddbca pzem(modbus): reduntant templated code
there is no need to specialization when doing common operations
inject only the necessary params instead of the the whole body
2025-09-08 22:54:23 +03:00
Maxim Prokhorov
7fffcbda4f pzem(build): flash strings clean-up, remove FlashStringHelper 2025-09-08 22:41:42 +03:00
Maxim Prokhorov
c8c1b7a4d2 ir(build): clean-up command string init and remove FlashStringHelper
note that constexpr is still not allowed in this case, only when
commands are declared beforehand (and thus symbols are known at 'compile time')
2025-09-08 22:34:03 +03:00
Maxim Prokhorov
69b5f119a6 dcz(build): remove FlashStringHelper 2025-09-08 22:33:12 +03:00
Maxim Prokhorov
fee3e57884 ntp(debug): do not log server value twice 2025-09-08 22:32:11 +03:00
Maxim Prokhorov
9d21b561c3 ntp(build): use TZ.h as raw strings, not macros
constexpr'ifies string values for build, remove FlashStringHelper
2025-09-08 22:28:37 +03:00
Maxim Prokhorov
d49b33def3 webui(settings): default to step="any" for generic number inputs
per. https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/step implicit default is step="1"
> If not explicitly included, step defaults to 1 for number and range, and 1 unit type (minute, week, month, day) for the date/time input types.
> The value must be a positive number - integer or float — or the special value any, which means no stepping is implied and any value is allowed
> (barring other constraints, such as min and max)
>
> Only values which are a whole number of steps from the step base are valid.

.checkValidity()/.reportValidity() enforce the rule, making these values
impossible to set (besides manually setting the kv through console)

also clean-up any defaults & suspicious use in specific modules

resolve #2651
2025-08-29 18:06:20 +03:00
Maxim Prokhorov
61c5cd7651 webui(build): remove mistakenly set src/*.html binary attribute 2025-08-29 18:05:56 +03:00
Maxim Prokhorov
3dcbc660b2 webui(build): missing embedded files check for index header values 2025-08-29 18:01:11 +03:00
Maxim Prokhorov
e76b67b355 debug(uart): no-op output for sdk when uart support is disabled 2025-08-29 18:00:16 +03:00
Maxim Prokhorov
02631120cb build(codegen): bump re2c to 4.3 2025-08-29 17:42:49 +03:00
Maxim Prokhorov
c3cf5e23c2 sch(api): missing id initializer
dont end up with an invalid schedule obj
2025-07-02 02:34:51 +03:00
Maxim Prokhorov
4d2da2b49d sns(build): explicitly init strings, even when unused
-Wmissing-field-initializers partial positive
ref. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96868
2025-07-02 02:34:51 +03:00
Maxim Prokhorov
771a4b1dd7 all(build): fix unused variable warnings 2025-07-02 02:34:51 +03:00
Maxim Prokhorov
899e83f25a mqtt(build): unused warning & fix enabled ref 2025-07-02 02:34:51 +03:00
Maxim Prokhorov
f30fffdfab tspk(build): fallthrough warning 2025-07-02 02:29:31 +03:00
Maxim Prokhorov
1cfef1f5b5 build(scripts): not a bash script 2025-06-26 03:17:36 +03:00
Maxim Prokhorov
ed32ab20ba build(scripts): sync & generate config/arduino.h 2025-06-26 03:11:41 +03:00
Maxim Prokhorov
c5a0b5f23f build(scripts): allow to generate compile_commands.json with everything enabled 2025-06-24 23:55:41 +03:00
Maxim Prokhorov
3ed1050f8c debug(scripts): decoder typing & refactoring
- typing info to clean-up path <-> string and arguments mixups
- argparse.FileType deprecated, use another built-in 'fileinput' that allows similar behaviour
- tool selection always uses shutil.which result for a full cmd path
- tool exec errors treated as script errors
2025-06-24 23:55:21 +03:00
Maxim Prokhorov
1a7f519bcc settings(internal): remove inline funcs & fixup crash handler
implement relevant funcs within the handler, as it is the main consumer
2025-06-21 00:50:28 +03:00
Maxim Prokhorov
da12585c83 settings(internal): naming & combine common move code 2025-06-21 00:49:40 +03:00
Maxim Prokhorov
1cade55159 settings(storage): consistent initialization order
size & storage set up when constructed, avoid splitting auto-size & explicit one
more expensive in code size than just a global, but can be remedied elsewhere

same as gpio init, settings & eeprom initialized statically within a func context
revise internals to access specific instance
2025-06-21 00:46:08 +03:00