Commit Graph

3887 Commits

Author SHA1 Message Date
Tester23
8da39b51bd PLATFORM_W800 2025-06-18 22:44:17 +02:00
Tester23
df893465fb delay_s 2025-06-18 22:33:59 +02:00
Tester23
753e187907 fxes 2025-06-18 22:29:42 +02:00
Tester23
16d20cdc04 Update cmd_tasmota.c 2025-06-18 22:21:21 +02:00
Tester23
2513558bb0 Update selftest_tasmota.c 2025-06-18 22:17:33 +02:00
Tester23
eaa4df5539 fx 2025-06-18 22:15:37 +02:00
Tester23
fe4b4e4bda fx 2025-06-18 22:12:40 +02:00
Tester23
770d2c6ae7 backlog 2025-06-18 21:59:21 +02:00
Tester23
b02068e485 docs refresh 1.18.114 2025-06-17 18:01:35 +02:00
Tester23
901a43ceaf sefl test for tuyamcu calibration 1.18.113 2025-06-17 17:45:20 +02:00
Tester23
e663cf5d30 allow TuyaMCU VCP calibration 1.18.112 2025-06-17 17:20:30 +02:00
Tester23
6a027eb204 self test for click event with backlog and repeating event 1.18.111 2025-06-15 12:24:12 +02:00
Tester23
2d27d1d7ed fix syntax 1.18.110 2025-06-04 12:26:07 +02:00
Tester23
59f6d3549f RAW_V2C3P3 2025-06-04 12:25:07 +02:00
openshwprojects
1e201d6be4 fix mem leaks in sim (#1665)
* Update drv_spiLED.c

* Update drv_spiLED.c

* Update drv_spiLED.c

* Update asan.suppressions

* Update drv_spiLED.c

* try

* mcu clear

* return cmd

* free alias leak
1.18.109
2025-06-01 10:06:09 +02:00
Bartosz Nitka
92ea9cd8ab Ability to run linux tests with AddressSanitizer (#1651)
* Ability to run linux tests with AddressSanitizer

This makes it possible to compile and run the tests with Address
Sanitizer (ASAN) [1].

The command is:
```
make -f custom.mk clean; ASAN=1 make -f custom.mk && ./build/win_main -runUnitTests 2
```

Building without ASAN works without change.

Address Sanitizer saves a lot of time debugging memory issues, for
example for a bug where we index in an array with negative index it
gives this nice error message:
```
=================================================================
==2532658==ERROR: AddressSanitizer: global-buffer-overflow on address 0x5642389c5e37 at pc 0x564237e67492 bp 0x7fff17726e50 sp 0x7fff17726e40
READ of size 1 at 0x5642389c5e37 thread T0
    #0 0x564237e67491 in CHANNEL_GetType src/new_cfg.c:427
    #1 0x564237dfc933 in TuyaMCU_ApplyMapping src/driver/drv_tuyaMCU.c:1126
    #2 0x564237dff92f in TuyaMCU_ParseStateMessage src/driver/drv_tuyaMCU.c:1632
    #3 0x564237e019fa in TuyaMCU_ProcessIncoming src/driver/drv_tuyaMCU.c:1977
    #4 0x564237e027ee in TuyaMCU_RunReceive src/driver/drv_tuyaMCU.c:2178
    #5 0x564237e02dc2 in TuyaMCU_RunFrame src/driver/drv_tuyaMCU.c:2335
    #6 0x564237dd2ce6 in DRV_RunQuickTick src/driver/drv_main.c:536
    #7 0x564237ec4037 in QuickTick src/user_main.c:946
    #8 0x564237eca8a5 in Sim_RunFrame src/win_main.c:106
    #9 0x564237eca993 in Sim_RunFrames src/win_main.c:134
    #10 0x564237ebce4a in Test_TuyaMCU_Basic src/selftest/selftest_tuyaMCU.c:369
    #11 0x564237ecab1f in Win_DoUnitTests src/win_main.c:194
    #12 0x564237ecba57 in main src/win_main.c:535
    #13 0x7fb55312ed8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #14 0x7fb55312ee3f in __libc_start_main_impl ../csu/libc-start.c:392
    #15 0x564237cb16b4 in _start (/home/niteria/tmp/broken-realloc/OpenBK7231T_App/build/win_main+0xcf6b4)

0x5642389c5e37 is located 51 bytes to the right of global variable 'stat_deduper_culled_tooFast' defined in 'src/mqtt/new_mqtt_deduper.c:40:12' (0x5642389c5e00) of size 4
0x5642389c5e37 is located 9 bytes to the left of global variable 'g_mutex' defined in 'src/mqtt/new_mqtt_deduper.c:42:26' (0x5642389c5e40) of size 4
SUMMARY: AddressSanitizer: global-buffer-overflow src/new_cfg.c:427 in CHANNEL_GetType
Shadow bytes around the buggy address:
  0x0ac8c7130b70: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130b80: 00 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130b90: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130ba0: 00 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
  0x0ac8c7130bb0: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
=>0x0ac8c7130bc0: 04 f9 f9 f9 f9 f9[f9]f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==2532658==ABORTING
```

[1] https://github.com/google/sanitizers/wiki/addresssanitizer

* disable tests broken on linux

* add a suppression file for known leaks

* attempt at adding an ASAN workflow

* fix autogen

* Update workflow.yaml

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2025-05-31 14:27:02 +02:00
Tester23
b1b41f4a66 channel type - Percent 1.18.108 2025-05-31 01:18:37 +02:00
openshwprojects
d6f7678dc6 TCL AC driver progress + LowMidHigh etc channels HA discovery
* Buzzer

* Update obk_config.h

* Display

* uart test stub

* unfinished TCL_DoDiscovery

* ha

* Update drv_tclAC.c

* ha mode send

* unfinished not working

* Update drv_tclAC.c

* Update hass.h

* better discovery

* Update obk_config.h
1.18.107
2025-05-30 16:10:36 +02:00
Bartosz Nitka
a2c9d19147 Fix a memory leak in http_fns.c (#1653) 1.18.106 2025-05-26 17:35:45 +02:00
Bartosz Nitka
cbf0d459fd Fix tests on linux (#1640)
The tests were segfaulting on linux, I don't know how they work on
Windows, perhaps casting `void*` to `int` happens to work there.
Generally it's not portable.

Berry has a dedicated `comptr` type, so let's use that and be portable.

Also makes `run_closure` handle arbitrary number of arguments, see
https://berry.readthedocs.io/en/latest/source/en/Chapter-5.html#function-with-variable-number-of-arguments-vararg
for docs.

Test Plan:
* CI
* make -f custom.mk, ./build/win_main -runUnitTests 2
2025-05-25 18:12:56 +02:00
Bartosz Nitka
e1456181e8 berry workaround for broken realloc on OpenBK7231N (#1649)
* berry workaround for broken realloc on OpenBK7231N

I ran `addRepeatingEvent 1 -1 testRealloc 100` on a OpenBK7231N device
and it failed. This is the same problem as #1563.

This might be related to mysterious crashes I was getting while
importing big modules like this:
`addRepeatingEvent 1 1 berry import modulename`.

* fix
1.18.105
2025-05-25 17:44:06 +02:00
Bartosz Nitka
46fe6736ca Fix out-of-bounds access on g_cfg.pins.channelTypes (#1652)
This place expected -1 for "unmapped", but -999 can come from this line:
fe51ee8f47/src/driver/drv_tuyaMCU.c (L883)

This was detected with ASAN (#1651), the error message:
```
=================================================================
==2532658==ERROR: AddressSanitizer: global-buffer-overflow on address 0x5642389c5e37 at pc 0x564237e67492 bp 0x7fff17726e50 sp 0x7fff17726e40
READ of size 1 at 0x5642389c5e37 thread T0
    #0 0x564237e67491 in CHANNEL_GetType src/new_cfg.c:427
    #1 0x564237dfc933 in TuyaMCU_ApplyMapping src/driver/drv_tuyaMCU.c:1126
    #2 0x564237dff92f in TuyaMCU_ParseStateMessage src/driver/drv_tuyaMCU.c:1632
    #3 0x564237e019fa in TuyaMCU_ProcessIncoming src/driver/drv_tuyaMCU.c:1977
    #4 0x564237e027ee in TuyaMCU_RunReceive src/driver/drv_tuyaMCU.c:2178
    #5 0x564237e02dc2 in TuyaMCU_RunFrame src/driver/drv_tuyaMCU.c:2335
    #6 0x564237dd2ce6 in DRV_RunQuickTick src/driver/drv_main.c:536
    #7 0x564237ec4037 in QuickTick src/user_main.c:946
    #8 0x564237eca8a5 in Sim_RunFrame src/win_main.c:106
    #9 0x564237eca993 in Sim_RunFrames src/win_main.c:134
    #10 0x564237ebce4a in Test_TuyaMCU_Basic src/selftest/selftest_tuyaMCU.c:369
    #11 0x564237ecab1f in Win_DoUnitTests src/win_main.c:194
    #12 0x564237ecba57 in main src/win_main.c:535
    #13 0x7fb55312ed8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #14 0x7fb55312ee3f in __libc_start_main_impl ../csu/libc-start.c:392
    #15 0x564237cb16b4 in _start (/home/niteria/tmp/broken-realloc/OpenBK7231T_App/build/win_main+0xcf6b4)

0x5642389c5e37 is located 51 bytes to the right of global variable 'stat_deduper_culled_tooFast' defined in 'src/mqtt/new_mqtt_deduper.c:40:12' (0x5642389c5e00) of size 4
0x5642389c5e37 is located 9 bytes to the left of global variable 'g_mutex' defined in 'src/mqtt/new_mqtt_deduper.c:42:26' (0x5642389c5e40) of size 4
SUMMARY: AddressSanitizer: global-buffer-overflow src/new_cfg.c:427 in CHANNEL_GetType
Shadow bytes around the buggy address:
  0x0ac8c7130b70: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130b80: 00 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130b90: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130ba0: 00 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
  0x0ac8c7130bb0: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
=>0x0ac8c7130bc0: 04 f9 f9 f9 f9 f9[f9]f9 04 f9 f9 f9 f9 f9 f9 f9
  0x0ac8c7130bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac8c7130c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==2532658==ABORTING
```
2025-05-25 17:42:08 +02:00
openshwprojects
5899b0c7e5 CSE stub (unfinished)
* test1

* Update CMakeLists.txt

* Update drv_cse7761.c

* tr

* dbg

* Update hal_uart_espidf.c

* Update hal_uart_espidf.c

* Update hal_uart_espidf.c

* cmnt
1.18.104
2025-05-23 10:23:01 +02:00
Tester23
529bf00170 cse test stub 1.18.103 2025-05-22 12:33:13 +02:00
openshwprojects
d07c72a0ca AC TCL driver - part 1
* ac t1

* test

* fx

* fx

* p

* build_set_cmd

* try enable

* makefile

* make

* header

* self test

* parsing - not tested

* rename for easier testing

* add src

* print len

* parity

* FIX PARITY - 2

* SwingH and SwingV

* w

* files

* Update drv_tclAC.c

* display vals

* few berry tests

* disable
1.18.102
2025-05-18 18:24:21 +02:00
openshwprojects
acd46ad682 add PIR driver
* tt

* Update selftest_berry.c

* Update obk_config.h

* some more fixes

* fixes

* IOR_PWM_ScriptOnly_n

* fx

* Update OpenBeken.mk

* disable
1.18.101
2025-05-16 10:07:38 +02:00
Tester23
5ea78582e0 fix header 1.18.100 2025-05-15 23:55:04 +02:00
Tester23
4196afda4d unfinished PIR code 2025-05-15 18:08:53 +02:00
openshwprojects
fe51ee8f47 Update hal_flashConfig_xr809.c 1.18.99 2025-05-06 09:50:27 +02:00
NonPIayerCharacter
754aca5c01 BL602 powersave workaround (#1630) 1.18.98 2025-05-04 09:54:59 +02:00
giedriuslt
3597eec24d Remove powersave for BL602 (#1628)
Apparently breaks connecting to wifi. Maybe something like ln882 should be done
1.18.97
2025-05-03 12:32:21 +02:00
Tester23
4cc458f014 update OpenBL602 and XR872 SDKs to latest commits 1.18.96 2025-05-02 15:31:39 +02:00
giedriuslt
5916fbd8a7 Update BL602 code to work with latest sdk. (#1487)
* Support new BL602 SDK

* Update .gitmodules

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
1.18.95
2025-05-02 14:42:14 +02:00
Tester23
0274993d7f Update OpenXR872 1.18.94 2025-04-25 17:26:25 +02:00
openshwprojects
162e4df354 Update workflow.yaml 1.18.93 2025-04-23 00:28:35 +02:00
openshwprojects
782d478b87 fix xr806
* Update http_tcp_server.c

* Update http_tcp_server.c

* better naming

* debug print

* TRY TO CLEAR UP A BIT

* Update http_tcp_server.c

* Update http_tcp_server.c

* Update http_tcp_server.c

* Update http_tcp_server.c

* Update new_http.c

* XR auth disabled

* clear log

* Update OpenXR806

* Update OpenXR806

* Update new_http.c
1.18.92
2025-04-19 20:33:08 +02:00
openshwprojects
5d09349b9d also add XR806 to online builds (it boots but there is some issue with WiFi?)
* Update .gitmodules

* w

* Manually added submodule OpenXR

* Update Makefile

* Update Makefile

* Update Makefile

* Update OpenXR806

* Update OpenXR806

* Update OpenXR806

* Update hal_wifi_xr809.c
1.18.91
2025-04-19 11:58:35 +02:00
openshwprojects
379f7cb00e XR872 online builds (#1609)
* Update workflow.yaml

* Update Makefile

* Update .gitmodules

* Update .gitmodules

* Manually added submodule OpenXR872

* Update workflow.yaml

* Update .gitmodules

* Update OpenXR872

* Update OpenXR872

* Update OpenXR872

* Update OpenXR872

* Update OpenXR872

* Update workflow.yaml

* Update OpenXR872
1.18.90
2025-04-19 08:17:56 +02:00
Tester23
fd853eb203 Merge branch 'main' of https://github.com/openshwprojects/OpenBK7231T_App 1.18.89 2025-04-18 20:29:43 +02:00
Tester23
d70e9e93e1 xr fixes 2025-04-18 20:29:23 +02:00
Tester23
3fd49d4fae Merge branch 'main' of https://github.com/openshwprojects/OpenBK7231T_App 1.18.88 2025-04-18 18:35:12 +02:00
Tester23
5b763e3194 Update hal_pins_xr809.c 2025-04-18 18:32:27 +02:00
openshwprojects
0ea1983049 add IRRemoteESP8266 IR alternate version to online builds (vfonov PR)
* add IRRemoteSP

* fx

* Update IRsend.cpp

* f

* fix

* s

* irRemoteESP

* Update obk_config_irRemoteESP.h

* w
1.18.87
2025-04-18 18:24:13 +02:00
Tester23
a5a5b4b7b9 xr872 (A9 camera) 1.18.86 2025-04-18 18:05:04 +02:00
openshwprojects
64ec573482 EXPERIMENT: allow alternate build permutations (with berry), should not break anything
* Update obk_config.h

* Update workflow.yaml

* Update obk_config.h

* v2

* Update workflow.yaml

* test

* tr3

* ffs

* save fx

* Update workflow.yaml

* APP NAME FX?

* Update workflow.yaml

* Update workflow.yaml

* Update workflow.yaml

* Update workflow.yaml

* test

* Update obk_config.h

* Update win_main.c

* Update Makefile

* test

* Update obk_config_berry.h

* test

* test

* matrix

* Update workflow.yaml

* Update obk_config.h
1.18.85
2025-04-17 22:51:58 +02:00
NonPIayerCharacter
9a7447fd4b Fix T build (#1607) 1.18.84 2025-04-16 09:11:50 +02:00
NonPIayerCharacter
ac3c5d6da6 Faster wifi connecting (up to 2sec restart -> connected) (#1297)
* Wifi fast connect + extra

* --
2025-04-15 16:38:10 +02:00
openshwprojects
714d9c9ab1 Update cmd_public.h (#1605) 1.18.83 2025-04-14 16:41:04 +02:00
Tester23
5a78713c90 add missing prestate check 1.18.82 2025-04-13 19:34:37 +02:00
openshwprojects
00890d1cf4 API CHANGE - extend http callback for drivers so it includes bPreState boolean so we can add HTML either before state div (without refresh) or in state div (refreshing) 1.18.81 2025-04-13 19:18:30 +02:00