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

[NXP] App button manager rework #35859

Merged
merged 7 commits into from
Oct 1, 2024

Conversation

marius-alex-tache
Copy link
Contributor

Create an abstraction over NXP SDK buttons.
If an app needs a custom behavior for a specific button, it can implement:

  • the Button interface, similar to the ButtonDefault implementation
  • a ButtonWithTimer derived class, to also have access to timer behavior, such as scheduling a delay for a specific action (e.g. factory reset after 6s)

The ButtonManager is responsible with registering Button instances. The button callback is common across all buttons because it delegates the proper action handling to the button itself through the provided Button::Handle* API.
The ButtonRegistration header provides an API that can be used by other components (e.g. AppTask) to initialize the ButtonManager and register buttons. A default implementation is provided.

Create an abstraction over SDK buttons.

If an app needs a custom behavior for a specific button:
- it can implement the Button interface, similar to the ButtonDefault implementation
- it can implement a ButtonWithTimer derived class, to also have access to timer
behavior, such as scheduling a delay for a specific action (e.g. factory reset after 6s)

The ButtonManager is responsible with registering Button instances. The button callback is
common across all buttons because it delegates the proper action handling to the button itself
through the provided Button::Handle* API.

The ButtonRegistration header provides an API that can be used by other components (e.g. AppTask)
to initialize the ButtonManager and register buttons. A default implementation is provided.

Some button examples are implemented:
- ButtonApp
- ButtonBle
- ButtonDefault

Check the corresponding header for a description of actions.

Signed-off-by: marius-alex-tache <[email protected]>
Update AppEvent structure for some apps to take into account
a way to pass extra args to App event processing.

Signed-off-by: marius-alex-tache <[email protected]>
Update build system files for all impacted applications.

Signed-off-by: marius-alex-tache <[email protected]>
Double clicking the ButtonBle will trigger a toggle of SIT mode request
through the DSLS mechanism.

Signed-off-by: marius-alex-tache <[email protected]>
@marius-alex-tache marius-alex-tache requested a review from a team as a code owner October 1, 2024 07:03
Copy link

Review changes with SemanticDiff.

@doru91 doru91 self-requested a review October 1, 2024 07:11
Copy link

github-actions bot commented Oct 1, 2024

PR #35859: Size comparison from db11057 to b37723b

Full report (88 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section db11057 b37723b change % change
bl602 lighting-app bl602 FLASH 1281042 1281042 0 0.0
RAM 95848 95848 0 0.0
bl602+mfd FLASH 1295164 1295164 0 0.0
RAM 95992 95992 0 0.0
bl602+rpc FLASH 1321248 1321248 0 0.0
RAM 104272 104272 0 0.0
bl702 lighting-app bl702 FLASH 945170 945170 0 0.0
RAM 15145 15145 0 0.0
bl702+mfd FLASH 947570 947570 0 0.0
RAM 15305 15305 0 0.0
bl702+rpc FLASH 1040734 1040734 0 0.0
RAM 24173 24173 0 0.0
bl706-eth FLASH 647336 647336 0 0.0
RAM 25233 25233 0 0.0
bl706-wifi FLASH 895228 895228 0 0.0
RAM 14477 14477 0 0.0
bl702l lighting-app bl702l FLASH 961830 961830 0 0.0
RAM 16804 16804 0 0.0
bl702l+mfd FLASH 964452 964452 0 0.0
RAM 16964 16964 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829516 829516 0 0.0
RAM 123300 123300 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814584 814584 0 0.0
RAM 125172 125172 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761140 761140 0 0.0
RAM 113664 113664 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745376 745376 0 0.0
RAM 113856 113856 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 616810 616810 0 0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 656938 656938 0 0.0
RAM 205548 205548 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678485 678485 0 0.0
RAM 78516 78516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698337 698337 0 0.0
RAM 81148 81148 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698337 698337 0 0.0
RAM 81148 81148 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655273 655273 0 0.0
RAM 73584 73584 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614557 614557 0 0.0
RAM 71468 71468 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634193 634193 0 0.0
RAM 74020 74020 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634193 634193 0 0.0
RAM 74020 74020 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 633861 633861 0 0.0
RAM 74516 74516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653577 653577 0 0.0
RAM 77068 77068 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653577 653577 0 0.0
RAM 77068 77068 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609173 609173 0 0.0
RAM 68604 68604 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629033 629033 0 0.0
RAM 71236 71236 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629033 629033 0 0.0
RAM 71236 71236 0 0.0
efr32 lighting-app BRD4187C FLASH 934012 934012 0 0.0
RAM 135884 135884 0 0.0
lock-app BRD2605a FLASH 741808 741800 -8 -0.0
RAM 230240 230240 0 0.0
BRD4338a FLASH 742456 742448 -8 -0.0
RAM 230272 230272 0 0.0
window-app BRD4187C FLASH 1017128 1017120 -8 -0.0
RAM 127804 127804 0 0.0
esp32 all-clusters-app c3devkit DRAM 94080 94080 0 0.0
FLASH 1538316 1538316 0 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115032 115032 0 0.0
FLASH 1548770 1548770 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2775757 2775757 0 0.0
RAM 129424 129424 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6079186 6079186 0 0.0
RAM 507392 507392 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5413050 5413050 0 0.0
RAM 241136 241136 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4746468 4746468 0 0.0
RAM 218304 218304 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 12557166 12557166 0 0.0
RAM 555250 555250 0 0.0
chip-tool-ipv6only arm64 unknown 20520 20520 0 0.0
FLASH 11213760 11213760 0 0.0
RAM 605504 605504 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 10918321 10918321 0 0.0
RAM 554266 554266 0 0.0
fabric-bridge-app debug unknown 4640 4640 0 0.0
FLASH 4569482 4569482 0 0.0
RAM 204888 204888 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5687329 5687329 0 0.0
RAM 228552 228552 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4795890 4795890 0 0.0
RAM 204376 204376 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4425422 4425422 0 0.0
RAM 198112 198112 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4564270 4564270 0 0.0
RAM 202680 202680 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3105821 3105821 0 0.0
RAM 159184 159184 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4314432 4314432 0 0.0
RAM 242808 242808 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6023333 6023333 0 0.0
RAM 580928 580928 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 10751245 10751245 0 0.0
RAM 643008 643008 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914144 914144 0 0.0
RAM 142199 142199 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 884992 884992 0 0.0
RAM 140338 140338 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847560 847560 0 0.0
RAM 141093 141093 0 0.0
nxp contact k32w0+release FLASH 581912 581912 0 0.0
RAM 70784 70784 0 0.0
k32w1+release FLASH 596328 596624 296 0.0
RAM 62992 63008 16 0.0
mcxw71+release FLASH 596080 596384 304 0.1
RAM 62992 63008 16 0.0
light k32w0+release FLASH 618500 618500 0 0.0
RAM 70256 70256 0 0.0
k32w1+release FLASH 682344 682592 248 0.0
RAM 48632 48648 16 0.0
mcxw71+release FLASH 682360 682608 248 0.0
RAM 48632 48648 16 0.0
lock k32w1+release FLASH 704712 704968 256 0.0
RAM 67132 67148 16 0.0
mcxw71+release FLASH 704736 704992 256 0.0
RAM 67132 67148 16 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1645996 1645996 0 0.0
RAM 210888 210888 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552052 1552052 0 0.0
RAM 207688 207688 0 0.0
light cy8ckit_062s2_43012 FLASH 1467804 1467804 0 0.0
RAM 200696 200696 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464596 1464596 0 0.0
RAM 225048 225048 0 0.0
qpg lighting-app qpg6105+debug FLASH 660240 660240 0 0.0
RAM 105236 105236 0 0.0
lock-app qpg6105+debug FLASH 618260 618260 0 0.0
RAM 99704 99704 0 0.0
stm32 light STM32WB5MM-DK FLASH 481792 481792 0 0.0
RAM 144692 144692 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620576 620576 0 0.0
RAM 50988 50988 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 687778 687778 0 0.0
RAM 148328 148328 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 780766 780766 0 0.0
RAM 110780 110780 0 0.0
bridge-app tlsr9258a FLASH 681578 681578 0 0.0
RAM 91644 91644 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620340 620340 0 0.0
RAM 50940 50940 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708282 708282 0 0.0
RAM 74280 74280 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625270 625270 0 0.0
RAM 144316 144316 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 810954 810954 0 0.0
RAM 99448 99448 0 0.0
lock-app-dfu tlsr9528a FLASH 656226 656226 0 0.0
RAM 67000 67000 0 0.0
ota-requestor-app tlsr9258a FLASH 697556 697556 0 0.0
RAM 91236 91236 0 0.0
pump-app-usb tlsr9518adk80d FLASH 633962 633962 0 0.0
RAM 55816 55816 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611152 611152 0 0.0
RAM 53060 53060 0 0.0
shell tlsr9518adk80d FLASH 467798 467798 0 0.0
RAM 68668 68668 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627470 627470 0 0.0
RAM 52660 52660 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653288 653288 0 0.0
RAM 56608 56608 0 0.0
thermostat tlsr9518adk80d FLASH 637884 637884 0 0.0
RAM 53452 53452 0 0.0
window-covering tlsr9118bdk40d FLASH 524038 524038 0 0.0
RAM 97284 97284 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1725336 1725336 0 0.0
RAM 89076 89076 0 0.0
chip-tool-ubsan arm unknown 10348 10348 0 0.0
FLASH 1736121 1736121 0 0.0
RAM 7564256 7564256 0 0.0

@mergify mergify bot merged commit 57fb2e1 into project-chip:master Oct 1, 2024
71 checks passed
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