Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make CommandHandler a pure interface class, have actual implementation in CommandHandlerImpl #33736

Merged

Conversation

andy31415
Copy link
Contributor

@andy31415 andy31415 commented Jun 4, 2024

This simplifies the interface (it now only provides AddResponse/AddStatus and equivalents and does NOT provide prepare&finish paths). Because this is an interface now, we should be able to unit test code that uses this a lot easier.

This work is in preparation to have IM/DM data separation and to have ability to unit test things that require CommandHandlers passed in (e.g. current code for CommandHandlerInterface would benefit from this: one could validate behavior on command receving, including replies sent).

Changes:

  • renamed CommandHandler to CommandHandlerImpl and placed it in separate header/source
  • defined CommandHandler as a pure-abstract interface (plus a helper template) that provides add data/status support
  • Updated code and unit tests to use CommandHandlerImpl when needing an instance of CommandHandler

Important

This change has some API-incompatibilities: PrepareInvokeResponse, GetCommandDataIBTLVWriter
and FinishCommand paths are NOT exposed anymore on CommandHandler. This is assumed reasonable as
full control of written response is available via EncodableToTLV and the existing exposed paths (addResponse/data)
provide proper snapshot and rollback functionality that is generally desirable and tedious to manually implement

Upgrades are expected to replace Prepare/GetWriter/Finish with the corresponding AddResponse calls.

Copy link

github-actions bot commented Jun 4, 2024

PR #33736: Size comparison from d8e7e43 to 2aad875

Full report (22 builds for cc13x4_26x4, cc32xx, linux, mbed, nrfconnect, nxp, qpg, stm32, tizen)
platform target config section d8e7e43 2aad875 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 797492 798020 528 0.1
RAM 103216 103224 8 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 813184 813608 424 0.1
RAM 113696 113704 8 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 802564 802916 352 0.0
RAM 107816 107824 8 0.0
pump-app LP_EM_CC1354P10_6 FLASH 755476 755684 208 0.0
RAM 101924 101924 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 741132 741332 200 0.0
RAM 102164 102172 8 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 604350 604862 512 0.1
RAM 204592 204608 16 0.0
lock CC3235SF_LAUNCHXL FLASH 649626 650322 696 0.1
RAM 204852 204868 16 0.0
linux chip-tool-ipv6only arm64 unknown 17368 17384 16 0.1
FLASH 10659932 10664204 4272 0.0
RAM 574512 574784 272 0.0
thermostat-no-ble arm64 unknown 9144 9160 16 0.2
FLASH 4148500 4150116 1616 0.0
RAM 234344 234616 272 0.1
mbed lock-app-release cy8cproto_062_4343w FLASH 1497156 1497556 400 0.0
RAM 226152 226168 16 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 872776 873660 884 0.1
RAM 139209 139225 16 0.0
nrf7002dk_nrf5340_cpuapp FLASH 948124 949228 1104 0.1
RAM 137637 137653 16 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 821680 822188 508 0.1
RAM 138107 138123 16 0.0
nxp contact k32w0+release FLASH 575492 575692 200 0.0
RAM 70112 70120 8 0.0
k32w1+release FLASH 590888 590928 40 0.0
RAM 74144 74152 8 0.0
light k32w0+release FLASH 609408 609640 232 0.0
RAM 69588 69596 8 0.0
k32w1+release FLASH 673728 674000 272 0.0
RAM 82896 82904 8 0.0
qpg lighting-app qpg6105+debug FLASH 650176 650600 424 0.1
RAM 104644 104652 8 0.0
lock-app qpg6105+debug FLASH 610020 610292 272 0.0
RAM 99320 99328 8 0.0
stm32 light STM32WB5MM-DK FLASH 471484 472044 560 0.1
RAM 141732 141748 16 0.0
tizen all-clusters-app arm unknown 1556 1556 0 0.0
FLASH 1609836 1613720 3884 0.2
RAM 45460 45460 0 0.0
chip-tool-ubsan arm unknown 2360 2360 0 0.0
FLASH 15623494 15635398 11904 0.1
RAM 6819592 6825548 5956 0.1

Copy link

github-actions bot commented Jun 4, 2024

PR #33736: Size comparison from d8e7e43 to 502ed02

Increases above 0.2%:

platform target config section d8e7e43 502ed02 change % change
linux air-purifier-app debug RAM 128832 129104 272 0.2
Full report (85 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section d8e7e43 502ed02 change % change
bl602 lighting-app bl602 FLASH 1267960 1267976 16 0.0
RAM 95408 95424 16 0.0
bl602+mfd FLASH 1282238 1282254 16 0.0
RAM 95560 95576 16 0.0
bl602+rpc FLASH 1307174 1307190 16 0.0
RAM 103840 103856 16 0.0
bl702 lighting-app bl702 FLASH 1088666 1088682 16 0.0
RAM 14897 14897 0 0.0
bl702+mfd FLASH 1099360 1099376 16 0.0
RAM 15049 15049 0 0.0
bl702+rpc FLASH 1178490 1178506 16 0.0
RAM 23925 23925 0 0.0
bl706-eth FLASH 872000 872012 12 0.0
RAM 27016 27016 0 0.0
bl706-wifi FLASH 1123626 1123736 110 0.0
RAM 14349 14349 0 0.0
bl702l lighting-app bl702l FLASH 1075552 1075568 16 0.0
RAM 21468 21468 0 0.0
bl702l+mfd FLASH 1086814 1086830 16 0.0
RAM 21628 21628 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 797492 798020 528 0.1
RAM 103216 103224 8 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 813184 813608 424 0.1
RAM 113696 113704 8 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 802564 802916 352 0.0
RAM 107816 107824 8 0.0
pump-app LP_EM_CC1354P10_6 FLASH 755476 755684 208 0.0
RAM 101924 101924 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 741132 741332 200 0.0
RAM 102164 102172 8 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 604350 604862 512 0.1
RAM 204592 204608 16 0.0
lock CC3235SF_LAUNCHXL FLASH 649626 650322 696 0.1
RAM 204852 204868 16 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 661053 661589 536 0.1
RAM 74592 74608 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 680897 681441 544 0.1
RAM 77224 77240 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 680897 681441 544 0.1
RAM 77224 77240 16 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 637841 638369 528 0.1
RAM 69660 69676 16 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 603533 603661 128 0.0
RAM 70296 70312 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 623177 623297 120 0.0
RAM 72848 72864 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 623177 623297 120 0.0
RAM 72848 72864 16 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618885 619269 384 0.1
RAM 73312 73328 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638601 638993 392 0.1
RAM 75864 75880 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638601 638993 392 0.1
RAM 75864 75880 16 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 587653 587813 160 0.0
RAM 67280 67296 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 607505 607665 160 0.0
RAM 69912 69928 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 607505 607665 160 0.0
RAM 69912 69928 16 0.0
efr32 lighting-app BRD4187C FLASH 887672 888200 528 0.1
RAM 183504 183520 16 0.0
lock-app BRD4338a FLASH 700520 701288 768 0.1
RAM 242708 242724 16 0.0
window-app BRD4187C FLASH 967876 968500 624 0.1
RAM 167936 167952 16 0.0
esp32 all-clusters-app c3devkit DRAM 88404 88420 16 0.0
FLASH 1465246 1466110 864 0.1
IRAM 75570 75570 0 0.0
m5stack DRAM 114876 114892 16 0.0
FLASH 1533955 1535311 1356 0.1
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4576 4576 0 0.0
FLASH 2529872 2532240 2368 0.1
RAM 128832 129104 272 0.2
all-clusters-app debug unknown 5344 5344 0 0.0
FLASH 5561342 5568430 7088 0.1
RAM 481944 482216 272 0.1
all-clusters-minimal-app debug unknown 5264 5264 0 0.0
FLASH 5047448 5052248 4800 0.1
RAM 236520 236792 272 0.1
bridge-app debug unknown 5232 5232 0 0.0
FLASH 4475576 4478024 2448 0.1
RAM 216544 216816 272 0.1
chip-tool debug unknown 5736 5744 8 0.1
FLASH 11511431 11517943 6512 0.1
RAM 526498 526802 304 0.1
chip-tool-ipv6only arm64 unknown 17368 17384 16 0.1
FLASH 10659932 10666716 6784 0.1
RAM 574512 574784 272 0.0
fabric-admin debug unknown 5584 5592 8 0.1
FLASH 11274247 11280791 6544 0.1
RAM 514682 514970 288 0.1
fabric-bridge-app debug unknown 5240 5240 0 0.0
FLASH 4345384 4347608 2224 0.1
RAM 208592 208864 272 0.1
lighting-app debug+rpc+ui unknown 5864 5864 0 0.0
FLASH 5361826 5366018 4192 0.1
RAM 225136 225424 288 0.1
lock-app debug unknown 5184 5184 0 0.0
FLASH 4539512 4542888 3376 0.1
RAM 203968 204240 272 0.1
ota-provider-app debug unknown 4552 4552 0 0.0
FLASH 4175544 4177816 2272 0.1
RAM 192928 193200 272 0.1
ota-requestor-app debug unknown 4488 4488 0 0.0
FLASH 4299640 4302184 2544 0.1
RAM 197440 197712 272 0.1
shell debug unknown 4112 4112 0 0.0
FLASH 2794637 2800173 5536 0.2
RAM 154168 154424 256 0.2
thermostat-no-ble arm64 unknown 9144 9160 16 0.2
FLASH 4148500 4150116 1616 0.0
RAM 234344 234616 272 0.1
tv-app debug unknown 5464 5472 8 0.1
FLASH 5583768 5588648 4880 0.1
RAM 344584 344872 288 0.1
tv-casting-app debug unknown 5096 5104 8 0.2
FLASH 9562150 9566278 4128 0.0
RAM 345040 345328 288 0.1
mbed lock-app-release cy8cproto_062_4343w FLASH 1497156 1497556 400 0.0
RAM 226152 226168 16 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 872776 873660 884 0.1
RAM 139209 139225 16 0.0
nrf7002dk_nrf5340_cpuapp FLASH 948124 949228 1104 0.1
RAM 137637 137653 16 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 821680 822188 508 0.1
RAM 138107 138123 16 0.0
nxp contact k32w0+release FLASH 575492 575692 200 0.0
RAM 70112 70120 8 0.0
k32w1+release FLASH 590888 590928 40 0.0
RAM 74144 74152 8 0.0
light k32w0+release FLASH 609408 609640 232 0.0
RAM 69588 69596 8 0.0
k32w1+release FLASH 673728 674000 272 0.0
RAM 82896 82904 8 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1608916 1610260 1344 0.1
RAM 207212 207228 16 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1533492 1534460 968 0.1
RAM 204116 204132 16 0.0
light cy8ckit_062s2_43012 FLASH 1459868 1460748 880 0.1
RAM 197396 197412 16 0.0
lock cy8ckit_062s2_43012 FLASH 1461996 1462756 760 0.1
RAM 224460 224476 16 0.0
qpg lighting-app qpg6105+debug FLASH 650176 650600 424 0.1
RAM 104644 104652 8 0.0
lock-app qpg6105+debug FLASH 610020 610292 272 0.0
RAM 99320 99328 8 0.0
stm32 light STM32WB5MM-DK FLASH 471484 472044 560 0.1
RAM 141732 141748 16 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 624960 625052 92 0.0
RAM 49944 49952 8 0.0
all-clusters-app tlsr9118bdk40d FLASH 596982 597880 898 0.2
RAM 125184 125200 16 0.0
all-clusters-minimal-app tlsr9528a FLASH 769686 770190 504 0.1
RAM 110132 110148 16 0.0
bridge-app tlsr9518adk80d FLASH 656458 656562 104 0.0
RAM 92888 92904 16 0.0
contact-sensor-app tlsr9528a_retention FLASH 626766 626804 38 0.0
RAM 49988 49996 8 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 713698 713694 -4 -0.0
RAM 76580 76588 8 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 555272 555756 484 0.1
RAM 121432 121448 16 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 793042 793512 470 0.1
RAM 99980 99996 16 0.0
lock-app-dfu tlsr9528a FLASH 659810 659992 182 0.0
RAM 69268 69276 8 0.0
ota-requestor-app tlsr9518adk80d FLASH 675340 675566 226 0.0
RAM 92620 92636 16 0.0
pump-app tlsr9258a FLASH 621398 621512 114 0.0
RAM 58232 58240 8 0.0
pump-controller-app tlsr9118bdk40d FLASH 450174 450264 90 0.0
RAM 76672 76672 0 0.0
shell tlsr9518adk80d FLASH 462642 462642 0 0.0
RAM 71852 71852 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 633166 633198 32 0.0
RAM 51616 51624 8 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 642876 642852 -24 -0.0
RAM 59804 59812 8 0.0
thermostat tlsr9518adk80d FLASH 618224 618254 30 0.0
RAM 56492 56500 8 0.0
window-covering tlsr9258a FLASH 623168 623366 198 0.0
RAM 58448 58456 8 0.0
tizen all-clusters-app arm unknown 1556 1556 0 0.0
FLASH 1609836 1613720 3884 0.2
RAM 45460 45460 0 0.0
chip-tool-ubsan arm unknown 2360 2364 4 0.2
FLASH 15623494 15638038 14544 0.1
RAM 6819592 6826860 7268 0.1

src/app/CommandHandler.h Outdated Show resolved Hide resolved
src/app/CommandHandler.h Show resolved Hide resolved
src/app/CommandHandler.h Outdated Show resolved Hide resolved
src/app/CommandHandler.h Outdated Show resolved Hide resolved
src/app/CommandHandler.h Outdated Show resolved Hide resolved
src/app/CommandHandlerImpl.h Show resolved Hide resolved
src/app/CommandHandlerImpl.h Outdated Show resolved Hide resolved
src/app/CommandHandlerImpl.h Outdated Show resolved Hide resolved
src/app/CommandHandlerImpl.h Outdated Show resolved Hide resolved
src/app/CommandHandlerImpl.h Show resolved Hide resolved
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Jun 5, 2024
Copy link

github-actions bot commented Jun 5, 2024

PR #33736: Size comparison from 6092e8a to 305403b

Full report (85 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 6092e8a 305403b change % change
bl602 lighting-app bl602 FLASH 1267928 1268016 88 0.0
RAM 95408 95424 16 0.0
bl602+mfd FLASH 1282206 1282294 88 0.0
RAM 95560 95576 16 0.0
bl602+rpc FLASH 1307142 1307230 88 0.0
RAM 103840 103856 16 0.0
bl702 lighting-app bl702 FLASH 1088634 1088722 88 0.0
RAM 14897 14897 0 0.0
bl702+mfd FLASH 1099328 1099416 88 0.0
RAM 15049 15049 0 0.0
bl702+rpc FLASH 1178458 1178546 88 0.0
RAM 23925 23925 0 0.0
bl706-eth FLASH 872000 872088 88 0.0
RAM 27016 27016 0 0.0
bl706-wifi FLASH 1123594 1123776 182 0.0
RAM 14349 14349 0 0.0
bl702l lighting-app bl702l FLASH 1075520 1075608 88 0.0
RAM 21468 21468 0 0.0
bl702l+mfd FLASH 1086782 1086870 88 0.0
RAM 21628 21628 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 797308 797908 600 0.1
RAM 103184 103192 8 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 813000 813496 496 0.1
RAM 113664 113672 8 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 802388 802812 424 0.1
RAM 107784 107792 8 0.0
pump-app LP_EM_CC1354P10_6 FLASH 755300 755580 280 0.0
RAM 101892 101892 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 740948 741220 272 0.0
RAM 102132 102140 8 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 604350 604950 600 0.1
RAM 204592 204608 16 0.0
lock CC3235SF_LAUNCHXL FLASH 649626 650410 784 0.1
RAM 204852 204868 16 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 661021 661645 624 0.1
RAM 74592 74608 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 680865 681489 624 0.1
RAM 77224 77240 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 680865 681489 624 0.1
RAM 77224 77240 16 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 637809 638425 616 0.1
RAM 69660 69676 16 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 603501 603717 216 0.0
RAM 70296 70312 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 623145 623353 208 0.0
RAM 72848 72864 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 623145 623353 208 0.0
RAM 72848 72864 16 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618853 619325 472 0.1
RAM 73312 73328 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638569 639041 472 0.1
RAM 75864 75880 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638569 639041 472 0.1
RAM 75864 75880 16 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 587621 587861 240 0.0
RAM 67280 67296 16 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 607473 607713 240 0.0
RAM 69912 69928 16 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 607473 607713 240 0.0
RAM 69912 69928 16 0.0
efr32 lighting-app BRD4187C FLASH 887640 888216 576 0.1
RAM 183504 183520 16 0.0
lock-app BRD4338a FLASH 700488 701320 832 0.1
RAM 242708 242724 16 0.0
window-app BRD4187C FLASH 967844 968524 680 0.1
RAM 167936 167952 16 0.0
esp32 all-clusters-app c3devkit DRAM 88404 88420 16 0.0
FLASH 1465214 1466152 938 0.1
IRAM 75570 75570 0 0.0
m5stack DRAM 114876 114892 16 0.0
FLASH 1533915 1535339 1424 0.1
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4576 4576 0 0.0
FLASH 2529872 2532272 2400 0.1
RAM 128832 129104 272 0.2
all-clusters-app debug unknown 5344 5344 0 0.0
FLASH 5561342 5568462 7120 0.1
RAM 481944 482216 272 0.1
all-clusters-minimal-app debug unknown 5264 5264 0 0.0
FLASH 5047448 5052264 4816 0.1
RAM 236520 236792 272 0.1
bridge-app debug unknown 5232 5232 0 0.0
FLASH 4475576 4478056 2480 0.1
RAM 216544 216816 272 0.1
chip-tool debug unknown 5744 5744 0 0.0
FLASH 11514295 11519351 5056 0.0
RAM 521474 521762 288 0.1
chip-tool-ipv6only arm64 unknown 17368 17384 16 0.1
FLASH 10663428 10667796 4368 0.0
RAM 569472 569744 272 0.0
fabric-admin debug unknown 5592 5592 0 0.0
FLASH 11276887 11281943 5056 0.0
RAM 514786 515058 272 0.1
fabric-bridge-app debug unknown 5240 5240 0 0.0
FLASH 4345384 4347640 2256 0.1
RAM 208592 208864 272 0.1
lighting-app debug+rpc+ui unknown 5864 5864 0 0.0
FLASH 5361826 5366050 4224 0.1
RAM 225136 225424 288 0.1
lock-app debug unknown 5184 5184 0 0.0
FLASH 4539512 4542904 3392 0.1
RAM 203968 204240 272 0.1
ota-provider-app debug unknown 4552 4552 0 0.0
FLASH 4175544 4177848 2304 0.1
RAM 192928 193200 272 0.1
ota-requestor-app debug unknown 4488 4488 0 0.0
FLASH 4299640 4302216 2576 0.1
RAM 197440 197712 272 0.1
shell debug unknown 4112 4112 0 0.0
FLASH 2794637 2800205 5568 0.2
RAM 154168 154424 256 0.2
thermostat-no-ble arm64 unknown 9144 9160 16 0.2
FLASH 4148500 4150260 1760 0.0
RAM 234344 234616 272 0.1
tv-app debug unknown 5472 5472 0 0.0
FLASH 5585240 5588664 3424 0.1
RAM 344600 344872 272 0.1
tv-casting-app debug unknown 5104 5104 0 0.0
FLASH 9565254 9567686 2432 0.0
RAM 340016 340288 272 0.1
mbed lock-app-release cy8cproto_062_4343w FLASH 1497124 1497644 520 0.0
RAM 226152 226168 16 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 872744 873700 956 0.1
RAM 139209 139225 16 0.0
nrf7002dk_nrf5340_cpuapp FLASH 948092 949196 1104 0.1
RAM 137637 137653 16 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 821648 822228 580 0.1
RAM 138107 138123 16 0.0
nxp contact k32w0+release FLASH 575460 575636 176 0.0
RAM 70112 70120 8 0.0
k32w1+release FLASH 590856 590896 40 0.0
RAM 74144 74152 8 0.0
light k32w0+release FLASH 609376 609624 248 0.0
RAM 69588 69596 8 0.0
k32w1+release FLASH 673696 674040 344 0.1
RAM 82896 82904 8 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1608884 1610300 1416 0.1
RAM 207212 207228 16 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1533460 1534492 1032 0.1
RAM 204116 204132 16 0.0
light cy8ckit_062s2_43012 FLASH 1459836 1460788 952 0.1
RAM 197396 197412 16 0.0
lock cy8ckit_062s2_43012 FLASH 1461964 1462788 824 0.1
RAM 224460 224476 16 0.0
qpg lighting-app qpg6105+debug FLASH 650128 650624 496 0.1
RAM 104644 104652 8 0.0
lock-app qpg6105+debug FLASH 609972 610316 344 0.1
RAM 99320 99328 8 0.0
stm32 light STM32WB5MM-DK FLASH 471452 472076 624 0.1
RAM 141732 141748 16 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 624960 625070 110 0.0
RAM 49944 49952 8 0.0
all-clusters-app tlsr9118bdk40d FLASH 596982 597898 916 0.2
RAM 125184 125200 16 0.0
all-clusters-minimal-app tlsr9528a FLASH 769686 770208 522 0.1
RAM 110132 110148 16 0.0
bridge-app tlsr9518adk80d FLASH 656458 656580 122 0.0
RAM 92888 92904 16 0.0
contact-sensor-app tlsr9528a_retention FLASH 626766 626822 56 0.0
RAM 49988 49996 8 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 713698 713712 14 0.0
RAM 76580 76588 8 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 555272 555774 502 0.1
RAM 121432 121448 16 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 793042 793530 488 0.1
RAM 99980 99996 16 0.0
lock-app-dfu tlsr9528a FLASH 659810 660010 200 0.0
RAM 69268 69276 8 0.0
ota-requestor-app tlsr9518adk80d FLASH 675340 675584 244 0.0
RAM 92620 92636 16 0.0
pump-app tlsr9258a FLASH 621398 621530 132 0.0
RAM 58232 58240 8 0.0
pump-controller-app tlsr9118bdk40d FLASH 450174 450282 108 0.0
RAM 76672 76672 0 0.0
shell tlsr9518adk80d FLASH 462642 462642 0 0.0
RAM 71852 71852 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 633166 633216 50 0.0
RAM 51616 51624 8 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 642876 642870 -6 -0.0
RAM 59804 59812 8 0.0
thermostat tlsr9518adk80d FLASH 618224 618272 48 0.0
RAM 56492 56500 8 0.0
window-covering tlsr9258a FLASH 623168 623384 216 0.0
RAM 58448 58456 8 0.0
tizen all-clusters-app arm unknown 1556 1556 0 0.0
FLASH 1609892 1613772 3880 0.2
RAM 45460 45460 0 0.0
chip-tool-ubsan arm unknown 2364 2364 0 0.0
FLASH 15626510 15638630 12120 0.1
RAM 6822092 6828160 6068 0.1

@mergify mergify bot merged commit 72450e4 into project-chip:master Jun 6, 2024
70 checks passed
PeterC1965 added a commit to jamesharrow/connectedhomeip that referenced this pull request Jun 11, 2024
mergify bot pushed a commit that referenced this pull request Jul 26, 2024
* De-alphabetize list of files to avoid breaking GH action

* Semi-realphabetize?

* Restore strangely dropped events

* Better BitMask handling

* Change min/max on electrical measurements to be decimal instead of hex

* Rename meas-and-sense to measurement-and-sensing.xml

* Remove seemingly superfluous attribute requirements on Descriptor cluster on Electrical Measurement

* Updates to electrical-power-measurement-server based on comments

* Remove defaults from MeasurementAccuracyRangeStruct to match spec update

* Restore side="server" to events

* Move common enums and bitmaps to detail:: instead of detail::Enums and detail::Bitmaps; remove superfluous using statement

* Assign ID to Electrical Sensor device type

* Removed EPM and EEM from Root Node Device

* Restyled formatting is different than clang-format

* Re-add FeatureMap to attributeAccessInterfaceAttributes for EEM and EPM

* Regen after merge

* Added electrical-energy-measurement-server to CMakelist to fix linker issue.

* Lock client on Electrical Sensor device type

* Remove unneeded using statement now that Enums are in detail::

* Check for null iterators and error

* Switch to ResourceExhausted from CHIP_ERROR_INTERNAL

* Re-enabled EEM in energy management app and regen all after previous merge

* Some refactoring to add EPM Instance into the EVSEManufacturer class to clean up containment. Added ability to fake voltage, power and current to the TE triggers.

* Missed one file.

* Fixed crash due to unassigned dg pointer. Power/Voltage/Current faking working too.

* Touch file since restyled crashed

* Restyled by gn

* Restyled by isort

* Add stub for EPM cluster

* Reverted whitespace change

* Did regen_all after merge from master to resolve conflicts.

* Put back line of clusters which somehow got deleted accidentally.

* Remerged ZAP file and regen all after resolving conflicts.

* Fixes for Python tests

* Correct name for Ember init callback

* Formatting

* Sync optional attributes list with .zap file for EPM

* Add missing features to EPM stub

* Revert FeatureMap in attributeAccessInterfaceAttributes

* Allow FeatureMap in EEM constructor; add all-clusters-app EEM stub

* Forgot zcl-with-test-extensions

* Unregister EEM attribute access in destructor

* Remove redundant returns to keep clang-tidy happy

* Fix for issue mentioned in code review on EEM cluster limiting the number of endpoints it allows.

* Refactoring to have a common EvseMain across all platforms to avoid making changes in multiple places

* Added electrical-power-measurement-server to ESP32 CMakeLists.txt

* Updated Matter device types to add EVSE

* Open and saved energy-management-app.zap and regen_all

* Removed duplicate ElectricalEnergyMeasurment class which was accidentally merged in. Fixed issue raised about ElectricalEnergyMeasurement array size not working on bridges.

* Added support for test event triggers and handling of reading events into matter_testing_support.

* Made TC_EEVSE_Utils.py use the matter_testing_support instead of its own local copy.

* Restyled by isort

* Cherry pick from Tweaks to EVSE Test plans (Issue #31460)

* Changed the random value generation to make the values +/- and handle sign conversion to avoid compile warnings

* Enabled cumulativeEnergyExported in Energy-management-app.

* Added initial electrical power measurement 2.2 test case

* Changed copyright date

* Code review comment fixes.

* Changed to c++ style cast

* Fixed trailing whitepace

* Added support for testing read of EEM attributes and change of values

* Corrected EPM references in TC_EEM_2_2. Added TC_EEM_2_3

* Added periodic energy reporting, and new cumulativeEnergyReset attribute into energy-management-app.zap

* Added periodic energy reading support and TC_EEM_2_3 to 2_5.

* Python removed unused logging and EventChangeCallback

* Updates to align to test plan PR #3949

* Added initial EEM_2_1 test script.

* Added example of setting EEM Accuracy and EEM CumulativeEnergyReset structure - TC_EEM_2_1 now passes

* Restyled by whitespace

* Restyled

* Removed extra spaces in TC_EEM_2_1.py

* Removed unused EnergyManagementManager.cpp/.h

* Fixed PowerMode = kAc

* Initial TC_EPM_2_1.py script

* Restyled by isort

* Merged TC_EEVSE tests back in

* Initialized NumberOfMeasurementTypes

* Added EEM 2.1,2.2,2.3,2.4,2.5 and EPM 2.1,2.2 into CI workflow tests.yaml

* Interim state - partially refactored how Measurement Structs are encoded similar to how ModeBase clusters are implemented. Needs tidy up. Will break all-clusters for now

* Removed SetNumberOfMeasurementTypes since this can be derived from the ArraySize(kMeasurementAccuracies). Added more stringent checking in test script of measurementTypes and ranges.

* Completed TC_EPM_2_1.py script

* Corrected test plan spec reference.

* Test EPM_2_1 now runs and passes. Allows checking that attributes are supported, and skips test if not. Validation of values ignores Nulls (which are allowed). Turned on Ranges attribute.

* Revert unintended change to tests.yaml

* Python test case code-review updates

* Removed old range iterator.

* Fixed lint issues and adjusted timings to match the test plan pr.

* Fixed all-clusters electrical-power-measurement cluster by using the energy-management-app/common Delegate

* Implemented HarmonicCurrents and HarmonicStructs (to return empty list for now)

* Updated TC_EEVSE_2_3.py from more up to date branch.

* Added basic set/get/clear targets framework based on earlier work. Not working

* Removed files that were recently deleted upstream

* Corrected PICS in TC_EEVSE_2_3.py and copyright date

* Interim checkin with GetTargets not working

* Initial GetTargets working with a constant static array to demonstrate the command response can be encoded ok

* Removed unused EnergyEvseManager.cpp, Added EnergyEvseTargetStore.cpp

* Added EVSETargets to DefaultStorageKeyAllocator.h

* Reverted incorrect removal of EnergyEvseManager.cpp

* Added override into EnergyEvseDelegate which resulted in strange errors on some platforms.

* Added basic infrastructure for storing targets and reading them back. Compiles and runs

* Store working

* Store and Load seem to work.

* Fixed Status change caused by upstream changes

* Added helper function to compute day of week bitmap

* Fix to evse-stub in all-clusters to add gEvseTargetsDelegate

* Fixed build error on some platforms: cast of dayOfWeek to uint8_t

* Refactoring of GetTargets command to build the response using dynamic memory

* Updated evse-server.cpp/.h

* Tidy up of unused CommonIterator in electrical-power-measurement-server.h

* Get Targets reading back from file working

* Starting to clean up - ran through Valgrind to check for memory leaks.

* More clean up

* Added Clear Targets support and initial implementation of SetTargets

* Fixed crash when erasing entries - test reported PASS!

* Attempt to fix Darwin complaint about unsigned int cast

* Added logging of get targets response

* Fixed platform specific logging compilation issue

* Clean up of unused code

* More clean up

* Removed unused variable - Darwin check

* clang checker updates

* Refactored code to fix missing added energy since the TargetSoC could be optional and calling Next() would skip AddedEnergy

* Added checking of GetTargetsResponse - PASSES

* Almost working but need to resolve the Charging current and start time calculation in some scenarios.

* Fixed PEP8 lint errors in TC_EVSE_2_3.py and TC_EEVSE_Utils.py taking advantage of new TestStep 3rd arg

* Restyled by isort

* Fixed ChipLogDetail %d errors on some platforms with a static_cast

* Fixes in EVSE FindTargets to remove signed/unsigned comparison. Calculation of charging time was out by factor of 10.

* Fixed TC_EEVSE_2_3.py to match test plan. Fixed EVSE FindNextTarget to handle targets if searching for future days. Now passes tests.

* Fixed FindNextTarget to use epoch_s for NextChargeTargetTime and NextChargeStartTime with associated TC_EEVSE_2_3.py changes. Fixed bug when TargetSoC = 100% caused start time to be reported incorrectly.

* Fix: When EVSE is not plugged in, or not enabled for charge we shouldn't compute a schedule. Also add callbacks to update schedule if the state changes.

* Updated TC_EEM, TC_EPM, TC_EEVSE to take advantage of the new TestStep 3rd element.

* Address comments from Boris Zbarsky

* Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h

* Revert "Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h"

This reverts commit 7a60876.

* Rework HandleGetTargets following #33736

* Address comments from Boris Zbarsky

* Update TC_EEVSE_2_3 to align with latest test spec

* Remove the use of vector

* Get all targets building again

* Catch up from master + fix some lint and build errors

* Restyled by whitespace

* Restyled by clang-format

* Restyled by autopep8

* Restyled by isort

* Fixing regession-build error

* Restyled by clang-format

* Fixing regession-build error

* Changed logic to not return NextChargeRequiredEnergy if not plugged in or not enabled for charging.

* Removed max 80A current limit which aligns to the spec. Who knows how many Amps chargers will have in the future!

* Bug fix - When disabling the mMaximumChargingCurrentLimitFromCommand was not being updated, so we didn't get attribute updates for MaximumChargeCurrent when toggling Enable-Disable-Enable.

* Being into line with latest EVSE test spec although TODOs around the time of use trigger

* Load the targets in EnergyEvseInit()

* Made EvseTargetsEntryType -> evseTargetsEntryType (since it is a variable not a type)

* Reformatting and correcting the cluster PICS to be EEVSE not DEM.

* Reverted changes to python test cases which don't belong in this PR - See PR#34243 (makes this PR 10 files smaller).

* Address review comments from James Harrow

* Address review comments from James Harrow

* Add energy unit tests

* Fix test case to align with PR10027

* Move the EVSE targets key to be a private member of EnergyEvseTargetsStore

* Move EvseTargetStore test harness to examples/energy-management-app/energy-management-common/tests

* Move example tests to examples/BUILD.gn

* Restyled by clang-format

* Restyled by gn

* Add a mechanism to enable the targets persistent data to be delete when the last fabric is deleted

* Fix unused variable compilation issues

* Restyled by whitespace

* Restyled by clang-format

* Adde TC_EEVSE_2_3.py to CI testing.

* Added new test-runner info to top of Python TC_EEVSE_2_3.py

* Remove assert from BUILD.gn so test harness can build

* Put BEGIN CI TEST ARGUMENTS around runner test arguments

* Fix compilation problem in unit test

* Try and fix the zephyr build problems

* Restyled by gn

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Restyled by gn

* Start addressing comments from Andrei

* Continuing addressing comments from Andrei

* Continuing addressing comments from Andrei

* Restyled by clang-format

* Fix a problem with the return code spotted by Boris

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/EVSEManufacturerImpl.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Get all targets building

* Restyled by whitespace

* Restyled by clang-format

* Update with further review comments from Andrei

* Address further review comments from Andrei

* Restyled by clang-format

* Complete rename of Reset to ChargingTargetsMemMgr::PrepareDaySchedule

* Fix potential memory leak

* Add check in ChargingTargetsMemMgr::PrepareDaySchedule against a bad chargingTargetSchedulesIdx

* Restyled by clang-format

* Address final comments from Andrei

* Restyled by gn

* Removed whitespace in openiotsdk/CMakelists.txt

* Fix merge issue

* Fix CI build issue

---------

Co-authored-by: Hasty Granbery <hasty@granbery.org>
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: pcoleman <pcoleman@geotogether.com>
Co-authored-by: PeterC1965 <101805108+PeterC1965@users.noreply.github.com>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
j-ororke pushed a commit to j-ororke/connectedhomeip that referenced this pull request Jul 31, 2024
* De-alphabetize list of files to avoid breaking GH action

* Semi-realphabetize?

* Restore strangely dropped events

* Better BitMask handling

* Change min/max on electrical measurements to be decimal instead of hex

* Rename meas-and-sense to measurement-and-sensing.xml

* Remove seemingly superfluous attribute requirements on Descriptor cluster on Electrical Measurement

* Updates to electrical-power-measurement-server based on comments

* Remove defaults from MeasurementAccuracyRangeStruct to match spec update

* Restore side="server" to events

* Move common enums and bitmaps to detail:: instead of detail::Enums and detail::Bitmaps; remove superfluous using statement

* Assign ID to Electrical Sensor device type

* Removed EPM and EEM from Root Node Device

* Restyled formatting is different than clang-format

* Re-add FeatureMap to attributeAccessInterfaceAttributes for EEM and EPM

* Regen after merge

* Added electrical-energy-measurement-server to CMakelist to fix linker issue.

* Lock client on Electrical Sensor device type

* Remove unneeded using statement now that Enums are in detail::

* Check for null iterators and error

* Switch to ResourceExhausted from CHIP_ERROR_INTERNAL

* Re-enabled EEM in energy management app and regen all after previous merge

* Some refactoring to add EPM Instance into the EVSEManufacturer class to clean up containment. Added ability to fake voltage, power and current to the TE triggers.

* Missed one file.

* Fixed crash due to unassigned dg pointer. Power/Voltage/Current faking working too.

* Touch file since restyled crashed

* Restyled by gn

* Restyled by isort

* Add stub for EPM cluster

* Reverted whitespace change

* Did regen_all after merge from master to resolve conflicts.

* Put back line of clusters which somehow got deleted accidentally.

* Remerged ZAP file and regen all after resolving conflicts.

* Fixes for Python tests

* Correct name for Ember init callback

* Formatting

* Sync optional attributes list with .zap file for EPM

* Add missing features to EPM stub

* Revert FeatureMap in attributeAccessInterfaceAttributes

* Allow FeatureMap in EEM constructor; add all-clusters-app EEM stub

* Forgot zcl-with-test-extensions

* Unregister EEM attribute access in destructor

* Remove redundant returns to keep clang-tidy happy

* Fix for issue mentioned in code review on EEM cluster limiting the number of endpoints it allows.

* Refactoring to have a common EvseMain across all platforms to avoid making changes in multiple places

* Added electrical-power-measurement-server to ESP32 CMakeLists.txt

* Updated Matter device types to add EVSE

* Open and saved energy-management-app.zap and regen_all

* Removed duplicate ElectricalEnergyMeasurment class which was accidentally merged in. Fixed issue raised about ElectricalEnergyMeasurement array size not working on bridges.

* Added support for test event triggers and handling of reading events into matter_testing_support.

* Made TC_EEVSE_Utils.py use the matter_testing_support instead of its own local copy.

* Restyled by isort

* Cherry pick from Tweaks to EVSE Test plans (Issue project-chip#31460)

* Changed the random value generation to make the values +/- and handle sign conversion to avoid compile warnings

* Enabled cumulativeEnergyExported in Energy-management-app.

* Added initial electrical power measurement 2.2 test case

* Changed copyright date

* Code review comment fixes.

* Changed to c++ style cast

* Fixed trailing whitepace

* Added support for testing read of EEM attributes and change of values

* Corrected EPM references in TC_EEM_2_2. Added TC_EEM_2_3

* Added periodic energy reporting, and new cumulativeEnergyReset attribute into energy-management-app.zap

* Added periodic energy reading support and TC_EEM_2_3 to 2_5.

* Python removed unused logging and EventChangeCallback

* Updates to align to test plan PR project-chip#3949

* Added initial EEM_2_1 test script.

* Added example of setting EEM Accuracy and EEM CumulativeEnergyReset structure - TC_EEM_2_1 now passes

* Restyled by whitespace

* Restyled

* Removed extra spaces in TC_EEM_2_1.py

* Removed unused EnergyManagementManager.cpp/.h

* Fixed PowerMode = kAc

* Initial TC_EPM_2_1.py script

* Restyled by isort

* Merged TC_EEVSE tests back in

* Initialized NumberOfMeasurementTypes

* Added EEM 2.1,2.2,2.3,2.4,2.5 and EPM 2.1,2.2 into CI workflow tests.yaml

* Interim state - partially refactored how Measurement Structs are encoded similar to how ModeBase clusters are implemented. Needs tidy up. Will break all-clusters for now

* Removed SetNumberOfMeasurementTypes since this can be derived from the ArraySize(kMeasurementAccuracies). Added more stringent checking in test script of measurementTypes and ranges.

* Completed TC_EPM_2_1.py script

* Corrected test plan spec reference.

* Test EPM_2_1 now runs and passes. Allows checking that attributes are supported, and skips test if not. Validation of values ignores Nulls (which are allowed). Turned on Ranges attribute.

* Revert unintended change to tests.yaml

* Python test case code-review updates

* Removed old range iterator.

* Fixed lint issues and adjusted timings to match the test plan pr.

* Fixed all-clusters electrical-power-measurement cluster by using the energy-management-app/common Delegate

* Implemented HarmonicCurrents and HarmonicStructs (to return empty list for now)

* Updated TC_EEVSE_2_3.py from more up to date branch.

* Added basic set/get/clear targets framework based on earlier work. Not working

* Removed files that were recently deleted upstream

* Corrected PICS in TC_EEVSE_2_3.py and copyright date

* Interim checkin with GetTargets not working

* Initial GetTargets working with a constant static array to demonstrate the command response can be encoded ok

* Removed unused EnergyEvseManager.cpp, Added EnergyEvseTargetStore.cpp

* Added EVSETargets to DefaultStorageKeyAllocator.h

* Reverted incorrect removal of EnergyEvseManager.cpp

* Added override into EnergyEvseDelegate which resulted in strange errors on some platforms.

* Added basic infrastructure for storing targets and reading them back. Compiles and runs

* Store working

* Store and Load seem to work.

* Fixed Status change caused by upstream changes

* Added helper function to compute day of week bitmap

* Fix to evse-stub in all-clusters to add gEvseTargetsDelegate

* Fixed build error on some platforms: cast of dayOfWeek to uint8_t

* Refactoring of GetTargets command to build the response using dynamic memory

* Updated evse-server.cpp/.h

* Tidy up of unused CommonIterator in electrical-power-measurement-server.h

* Get Targets reading back from file working

* Starting to clean up - ran through Valgrind to check for memory leaks.

* More clean up

* Added Clear Targets support and initial implementation of SetTargets

* Fixed crash when erasing entries - test reported PASS!

* Attempt to fix Darwin complaint about unsigned int cast

* Added logging of get targets response

* Fixed platform specific logging compilation issue

* Clean up of unused code

* More clean up

* Removed unused variable - Darwin check

* clang checker updates

* Refactored code to fix missing added energy since the TargetSoC could be optional and calling Next() would skip AddedEnergy

* Added checking of GetTargetsResponse - PASSES

* Almost working but need to resolve the Charging current and start time calculation in some scenarios.

* Fixed PEP8 lint errors in TC_EVSE_2_3.py and TC_EEVSE_Utils.py taking advantage of new TestStep 3rd arg

* Restyled by isort

* Fixed ChipLogDetail %d errors on some platforms with a static_cast

* Fixes in EVSE FindTargets to remove signed/unsigned comparison. Calculation of charging time was out by factor of 10.

* Fixed TC_EEVSE_2_3.py to match test plan. Fixed EVSE FindNextTarget to handle targets if searching for future days. Now passes tests.

* Fixed FindNextTarget to use epoch_s for NextChargeTargetTime and NextChargeStartTime with associated TC_EEVSE_2_3.py changes. Fixed bug when TargetSoC = 100% caused start time to be reported incorrectly.

* Fix: When EVSE is not plugged in, or not enabled for charge we shouldn't compute a schedule. Also add callbacks to update schedule if the state changes.

* Updated TC_EEM, TC_EPM, TC_EEVSE to take advantage of the new TestStep 3rd element.

* Address comments from Boris Zbarsky

* Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h

* Revert "Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h"

This reverts commit 7a60876.

* Rework HandleGetTargets following project-chip#33736

* Address comments from Boris Zbarsky

* Update TC_EEVSE_2_3 to align with latest test spec

* Remove the use of vector

* Get all targets building again

* Catch up from master + fix some lint and build errors

* Restyled by whitespace

* Restyled by clang-format

* Restyled by autopep8

* Restyled by isort

* Fixing regession-build error

* Restyled by clang-format

* Fixing regession-build error

* Changed logic to not return NextChargeRequiredEnergy if not plugged in or not enabled for charging.

* Removed max 80A current limit which aligns to the spec. Who knows how many Amps chargers will have in the future!

* Bug fix - When disabling the mMaximumChargingCurrentLimitFromCommand was not being updated, so we didn't get attribute updates for MaximumChargeCurrent when toggling Enable-Disable-Enable.

* Being into line with latest EVSE test spec although TODOs around the time of use trigger

* Load the targets in EnergyEvseInit()

* Made EvseTargetsEntryType -> evseTargetsEntryType (since it is a variable not a type)

* Reformatting and correcting the cluster PICS to be EEVSE not DEM.

* Reverted changes to python test cases which don't belong in this PR - See PR#34243 (makes this PR 10 files smaller).

* Address review comments from James Harrow

* Address review comments from James Harrow

* Add energy unit tests

* Fix test case to align with PR10027

* Move the EVSE targets key to be a private member of EnergyEvseTargetsStore

* Move EvseTargetStore test harness to examples/energy-management-app/energy-management-common/tests

* Move example tests to examples/BUILD.gn

* Restyled by clang-format

* Restyled by gn

* Add a mechanism to enable the targets persistent data to be delete when the last fabric is deleted

* Fix unused variable compilation issues

* Restyled by whitespace

* Restyled by clang-format

* Adde TC_EEVSE_2_3.py to CI testing.

* Added new test-runner info to top of Python TC_EEVSE_2_3.py

* Remove assert from BUILD.gn so test harness can build

* Put BEGIN CI TEST ARGUMENTS around runner test arguments

* Fix compilation problem in unit test

* Try and fix the zephyr build problems

* Restyled by gn

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Restyled by gn

* Start addressing comments from Andrei

* Continuing addressing comments from Andrei

* Continuing addressing comments from Andrei

* Restyled by clang-format

* Fix a problem with the return code spotted by Boris

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/EVSEManufacturerImpl.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Get all targets building

* Restyled by whitespace

* Restyled by clang-format

* Update with further review comments from Andrei

* Address further review comments from Andrei

* Restyled by clang-format

* Complete rename of Reset to ChargingTargetsMemMgr::PrepareDaySchedule

* Fix potential memory leak

* Add check in ChargingTargetsMemMgr::PrepareDaySchedule against a bad chargingTargetSchedulesIdx

* Restyled by clang-format

* Address final comments from Andrei

* Restyled by gn

* Removed whitespace in openiotsdk/CMakelists.txt

* Fix merge issue

* Fix CI build issue

---------

Co-authored-by: Hasty Granbery <hasty@granbery.org>
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: pcoleman <pcoleman@geotogether.com>
Co-authored-by: PeterC1965 <101805108+PeterC1965@users.noreply.github.com>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
rochaferraz pushed a commit to rochaferraz/connectedhomeip that referenced this pull request Jul 31, 2024
* De-alphabetize list of files to avoid breaking GH action

* Semi-realphabetize?

* Restore strangely dropped events

* Better BitMask handling

* Change min/max on electrical measurements to be decimal instead of hex

* Rename meas-and-sense to measurement-and-sensing.xml

* Remove seemingly superfluous attribute requirements on Descriptor cluster on Electrical Measurement

* Updates to electrical-power-measurement-server based on comments

* Remove defaults from MeasurementAccuracyRangeStruct to match spec update

* Restore side="server" to events

* Move common enums and bitmaps to detail:: instead of detail::Enums and detail::Bitmaps; remove superfluous using statement

* Assign ID to Electrical Sensor device type

* Removed EPM and EEM from Root Node Device

* Restyled formatting is different than clang-format

* Re-add FeatureMap to attributeAccessInterfaceAttributes for EEM and EPM

* Regen after merge

* Added electrical-energy-measurement-server to CMakelist to fix linker issue.

* Lock client on Electrical Sensor device type

* Remove unneeded using statement now that Enums are in detail::

* Check for null iterators and error

* Switch to ResourceExhausted from CHIP_ERROR_INTERNAL

* Re-enabled EEM in energy management app and regen all after previous merge

* Some refactoring to add EPM Instance into the EVSEManufacturer class to clean up containment. Added ability to fake voltage, power and current to the TE triggers.

* Missed one file.

* Fixed crash due to unassigned dg pointer. Power/Voltage/Current faking working too.

* Touch file since restyled crashed

* Restyled by gn

* Restyled by isort

* Add stub for EPM cluster

* Reverted whitespace change

* Did regen_all after merge from master to resolve conflicts.

* Put back line of clusters which somehow got deleted accidentally.

* Remerged ZAP file and regen all after resolving conflicts.

* Fixes for Python tests

* Correct name for Ember init callback

* Formatting

* Sync optional attributes list with .zap file for EPM

* Add missing features to EPM stub

* Revert FeatureMap in attributeAccessInterfaceAttributes

* Allow FeatureMap in EEM constructor; add all-clusters-app EEM stub

* Forgot zcl-with-test-extensions

* Unregister EEM attribute access in destructor

* Remove redundant returns to keep clang-tidy happy

* Fix for issue mentioned in code review on EEM cluster limiting the number of endpoints it allows.

* Refactoring to have a common EvseMain across all platforms to avoid making changes in multiple places

* Added electrical-power-measurement-server to ESP32 CMakeLists.txt

* Updated Matter device types to add EVSE

* Open and saved energy-management-app.zap and regen_all

* Removed duplicate ElectricalEnergyMeasurment class which was accidentally merged in. Fixed issue raised about ElectricalEnergyMeasurement array size not working on bridges.

* Added support for test event triggers and handling of reading events into matter_testing_support.

* Made TC_EEVSE_Utils.py use the matter_testing_support instead of its own local copy.

* Restyled by isort

* Cherry pick from Tweaks to EVSE Test plans (Issue project-chip#31460)

* Changed the random value generation to make the values +/- and handle sign conversion to avoid compile warnings

* Enabled cumulativeEnergyExported in Energy-management-app.

* Added initial electrical power measurement 2.2 test case

* Changed copyright date

* Code review comment fixes.

* Changed to c++ style cast

* Fixed trailing whitepace

* Added support for testing read of EEM attributes and change of values

* Corrected EPM references in TC_EEM_2_2. Added TC_EEM_2_3

* Added periodic energy reporting, and new cumulativeEnergyReset attribute into energy-management-app.zap

* Added periodic energy reading support and TC_EEM_2_3 to 2_5.

* Python removed unused logging and EventChangeCallback

* Updates to align to test plan PR project-chip#3949

* Added initial EEM_2_1 test script.

* Added example of setting EEM Accuracy and EEM CumulativeEnergyReset structure - TC_EEM_2_1 now passes

* Restyled by whitespace

* Restyled

* Removed extra spaces in TC_EEM_2_1.py

* Removed unused EnergyManagementManager.cpp/.h

* Fixed PowerMode = kAc

* Initial TC_EPM_2_1.py script

* Restyled by isort

* Merged TC_EEVSE tests back in

* Initialized NumberOfMeasurementTypes

* Added EEM 2.1,2.2,2.3,2.4,2.5 and EPM 2.1,2.2 into CI workflow tests.yaml

* Interim state - partially refactored how Measurement Structs are encoded similar to how ModeBase clusters are implemented. Needs tidy up. Will break all-clusters for now

* Removed SetNumberOfMeasurementTypes since this can be derived from the ArraySize(kMeasurementAccuracies). Added more stringent checking in test script of measurementTypes and ranges.

* Completed TC_EPM_2_1.py script

* Corrected test plan spec reference.

* Test EPM_2_1 now runs and passes. Allows checking that attributes are supported, and skips test if not. Validation of values ignores Nulls (which are allowed). Turned on Ranges attribute.

* Revert unintended change to tests.yaml

* Python test case code-review updates

* Removed old range iterator.

* Fixed lint issues and adjusted timings to match the test plan pr.

* Fixed all-clusters electrical-power-measurement cluster by using the energy-management-app/common Delegate

* Implemented HarmonicCurrents and HarmonicStructs (to return empty list for now)

* Updated TC_EEVSE_2_3.py from more up to date branch.

* Added basic set/get/clear targets framework based on earlier work. Not working

* Removed files that were recently deleted upstream

* Corrected PICS in TC_EEVSE_2_3.py and copyright date

* Interim checkin with GetTargets not working

* Initial GetTargets working with a constant static array to demonstrate the command response can be encoded ok

* Removed unused EnergyEvseManager.cpp, Added EnergyEvseTargetStore.cpp

* Added EVSETargets to DefaultStorageKeyAllocator.h

* Reverted incorrect removal of EnergyEvseManager.cpp

* Added override into EnergyEvseDelegate which resulted in strange errors on some platforms.

* Added basic infrastructure for storing targets and reading them back. Compiles and runs

* Store working

* Store and Load seem to work.

* Fixed Status change caused by upstream changes

* Added helper function to compute day of week bitmap

* Fix to evse-stub in all-clusters to add gEvseTargetsDelegate

* Fixed build error on some platforms: cast of dayOfWeek to uint8_t

* Refactoring of GetTargets command to build the response using dynamic memory

* Updated evse-server.cpp/.h

* Tidy up of unused CommonIterator in electrical-power-measurement-server.h

* Get Targets reading back from file working

* Starting to clean up - ran through Valgrind to check for memory leaks.

* More clean up

* Added Clear Targets support and initial implementation of SetTargets

* Fixed crash when erasing entries - test reported PASS!

* Attempt to fix Darwin complaint about unsigned int cast

* Added logging of get targets response

* Fixed platform specific logging compilation issue

* Clean up of unused code

* More clean up

* Removed unused variable - Darwin check

* clang checker updates

* Refactored code to fix missing added energy since the TargetSoC could be optional and calling Next() would skip AddedEnergy

* Added checking of GetTargetsResponse - PASSES

* Almost working but need to resolve the Charging current and start time calculation in some scenarios.

* Fixed PEP8 lint errors in TC_EVSE_2_3.py and TC_EEVSE_Utils.py taking advantage of new TestStep 3rd arg

* Restyled by isort

* Fixed ChipLogDetail %d errors on some platforms with a static_cast

* Fixes in EVSE FindTargets to remove signed/unsigned comparison. Calculation of charging time was out by factor of 10.

* Fixed TC_EEVSE_2_3.py to match test plan. Fixed EVSE FindNextTarget to handle targets if searching for future days. Now passes tests.

* Fixed FindNextTarget to use epoch_s for NextChargeTargetTime and NextChargeStartTime with associated TC_EEVSE_2_3.py changes. Fixed bug when TargetSoC = 100% caused start time to be reported incorrectly.

* Fix: When EVSE is not plugged in, or not enabled for charge we shouldn't compute a schedule. Also add callbacks to update schedule if the state changes.

* Updated TC_EEM, TC_EPM, TC_EEVSE to take advantage of the new TestStep 3rd element.

* Address comments from Boris Zbarsky

* Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h

* Revert "Fix lint error by adding entry for src/app/clusters/energy-evse-server/energy-evse-server.h"

This reverts commit 7a60876.

* Rework HandleGetTargets following project-chip#33736

* Address comments from Boris Zbarsky

* Update TC_EEVSE_2_3 to align with latest test spec

* Remove the use of vector

* Get all targets building again

* Catch up from master + fix some lint and build errors

* Restyled by whitespace

* Restyled by clang-format

* Restyled by autopep8

* Restyled by isort

* Fixing regession-build error

* Restyled by clang-format

* Fixing regession-build error

* Changed logic to not return NextChargeRequiredEnergy if not plugged in or not enabled for charging.

* Removed max 80A current limit which aligns to the spec. Who knows how many Amps chargers will have in the future!

* Bug fix - When disabling the mMaximumChargingCurrentLimitFromCommand was not being updated, so we didn't get attribute updates for MaximumChargeCurrent when toggling Enable-Disable-Enable.

* Being into line with latest EVSE test spec although TODOs around the time of use trigger

* Load the targets in EnergyEvseInit()

* Made EvseTargetsEntryType -> evseTargetsEntryType (since it is a variable not a type)

* Reformatting and correcting the cluster PICS to be EEVSE not DEM.

* Reverted changes to python test cases which don't belong in this PR - See PR#34243 (makes this PR 10 files smaller).

* Address review comments from James Harrow

* Address review comments from James Harrow

* Add energy unit tests

* Fix test case to align with PR10027

* Move the EVSE targets key to be a private member of EnergyEvseTargetsStore

* Move EvseTargetStore test harness to examples/energy-management-app/energy-management-common/tests

* Move example tests to examples/BUILD.gn

* Restyled by clang-format

* Restyled by gn

* Add a mechanism to enable the targets persistent data to be delete when the last fabric is deleted

* Fix unused variable compilation issues

* Restyled by whitespace

* Restyled by clang-format

* Adde TC_EEVSE_2_3.py to CI testing.

* Added new test-runner info to top of Python TC_EEVSE_2_3.py

* Remove assert from BUILD.gn so test harness can build

* Put BEGIN CI TEST ARGUMENTS around runner test arguments

* Fix compilation problem in unit test

* Try and fix the zephyr build problems

* Restyled by gn

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Try and fix the zephyr build problems

* Restyled by gn

* Start addressing comments from Andrei

* Continuing addressing comments from Andrei

* Continuing addressing comments from Andrei

* Restyled by clang-format

* Fix a problem with the return code spotted by Boris

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/ChargingTargetsMemMgr.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update examples/energy-management-app/energy-management-common/src/EVSEManufacturerImpl.cpp

Co-authored-by: Andrei Litvin <andy314@gmail.com>

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Update with further review comments from Andrei

* Get all targets building

* Restyled by whitespace

* Restyled by clang-format

* Update with further review comments from Andrei

* Address further review comments from Andrei

* Restyled by clang-format

* Complete rename of Reset to ChargingTargetsMemMgr::PrepareDaySchedule

* Fix potential memory leak

* Add check in ChargingTargetsMemMgr::PrepareDaySchedule against a bad chargingTargetSchedulesIdx

* Restyled by clang-format

* Address final comments from Andrei

* Restyled by gn

* Removed whitespace in openiotsdk/CMakelists.txt

* Fix merge issue

* Fix CI build issue

---------

Co-authored-by: Hasty Granbery <hasty@granbery.org>
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: pcoleman <pcoleman@geotogether.com>
Co-authored-by: PeterC1965 <101805108+PeterC1965@users.noreply.github.com>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants