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
- 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
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
- implement wrapper class for the rotate to slightly change the behaviour
correctly reference size info and move 'fill' aka 'clean' into the class itself
- increase storage rotation limits for 2M+ boards, 16 & 32 respectively
for 8M and 16M board configurations
bump to 8 original 4M one and extra check for 2M
- minor clean-up to terminal output. shorter strings, more static ones
fixes log size comparison, ref. https://github.com/hamed-ta/espurna/pull/2
try to use common funcs instead of code dup for sync and async variants
async buffer align & size calc moved into a separate struct
common code when dealing with fixed size ints
c++23 bit_cast when dealing with 'cpymem'-like ops
compat header continues to use std number comparison since
libstdcxx feature detection seem to rely on 'import' / 'include'
(and 'bits/version.h' is not available in gcc4)
resolve#2649
> Updated the reverse loop in AnimFly::Run to cast numLeds to a signed type, preventing an endless loop when shifting LEDs backward
resolve#2650
> Revised the pixel cache update in ColorWave::move to iterate with size_t and decrement safely
copilot is either afraid that numLeds is zero or it is <2
which is theoretically possible, but very unlikely w/ neopixel setups
continue refactoring of sensors using multiple read entities
allow to have separate readings in either form
- global voltage & frequency only
- global & channel a only
- global & channel b only
- global & channel a & channel b (default)
still, prone to ordering errors. driver code might need a separate loop
to allow more flexible processing, outside of 'sensor' method constraints
(also note that I have no idea if it actually works on a real device)
remove inconsistent i2c_{read,write}_uint, improve buffer variant instead
ade7953sensor explicitly counting variable length ints
brzo currently is in a persistent todo-list
- there is no runtime configuration of i2c pins
- api does not support cached writes, only repeated start
- api is quite different from the 'Wire' implementation
(albeit, whole implementation is much smaller)
- code would really benefit from cxx rewrite, as any
upside from asm use is generally offset by readability
plus, re-using memory locations already introduces
'unobvious' asm code, which is not visible w/o disasm
- code focuses on gcc4.x compatibility and breaks w/ gcc9.x+
register allocation *could* be fixed by using u16 temporaries
this seems to work ok'ish, but it is unclear whether there
is any need for the full u32 value space