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

Add pre-execution command callback. #20751

Closed

Conversation

woody-apple
Copy link
Contributor

Problem

Sometimes it is required to perform some kind of preparation work before command is handled. As it seems, there's no way for app to be notified before the command is executed.

Change overview

This PR adds the callback that could be implemented by application uses Matter. This callback is called before every command gets executed.

Resolve #20361

* Added the callback that could be implemented by application uses Matter. This callback is called before every command gets executed.

* Restyled by astyle

* Restyled by clang-format

* Restyled by whitespace

* Regenerate all callback-stub.cpp and IMCLusterCommandHandler.cpp

* Restyled by astyle

* Restyled by clang-format

* Add pre-execution command callback. #20361
- move MatterPreExecuteCommandCallback() into DispatchSingleClusterCommand()
- regenerate all IMClusterCommandHandler.cpp files

* Restyled by astyle

* Restyled by clang-format

* Removed a modified MTRCallbackBridge.mm file from pull request

* Removed a modified zzz_generated/chip-tool/zap-generated/test/Commands.h file from pull request

* remove all autogenerated files from PR

* Use existing callback MatterPreCommandReceivedCallback to notify "cmd exec" (add fabricIndex parameter)

* Added parameter subjectDescriptor into callbacks Matter(Pre/Post)CommandReceivedCallback (#20361)

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>
@github-actions
Copy link

github-actions bot commented Jul 14, 2022

PR #20751: Size comparison from 89d2a6a to cfc9d96

Increases (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 89d2a6a cfc9d96 change % change
bl602 lighting-app bl602 (read/write) 1397466 1397762 296 0.0
.text 1058540 1058836 296 0.0
bl602+rpc (read/write) 1442890 1443194 304 0.0
.text 1090224 1090524 300 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 666043 666091 48 0.0
.text 577660 577708 48 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631851 631899 48 0.0
.text 554220 554268 48 0.0
lock-ftd LP_CC2652R7 (read only) 668959 668999 40 0.0
.text 592272 592312 40 0.0
lock-mtd LP_CC2652R7 (read only) 618367 618415 48 0.0
.text 541792 541840 48 0.0
pump-app LP_CC2652R7 (read only) 678199 678247 48 0.0
.text 589084 589132 48 0.0
pump-controller-app LP_CC2652R7 (read only) 664023 664063 40 0.0
.text 579048 579088 40 0.0
shell LP_CC2652R7 (read only) 658542 658582 40 0.0
.text 573380 573420 40 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579494 579534 40 0.0
.app_xip_area 458264 458304 40 0.0
lock cyw930739m2evb_01 (read/write) 585446 585494 48 0.0
.app_xip_area 459480 459528 48 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582778 582826 48 0.0
.app_xip_area 462396 462444 48 0.0
efr32 lighting-app BRD4161A (read/write) 1081412 1081860 448 0.0
.text 946348 946796 448 0.0
BRD4161A+rpc (read/write) 1135732 1136180 448 0.0
.text 983776 984224 448 0.0
BRD4161A+rs911x (read/write) 947924 948372 448 0.0
.text 805088 805536 448 0.1
lock-app BRD4161A+wf200 (read/write) 1128760 1128792 32 0.0
.text 982492 982524 32 0.0
window-app BRD4161A (read/write) 1075228 1075676 448 0.0
.text 938660 939108 448 0.0
esp32 all-clusters-app c3devkit (read only) 1019980 1020020 40 0.0
.flash.text 1019980 1020020 40 0.0
m5stack (read only) 1073927 1073995 68 0.0
.flash.text 1068543 1068611 68 0.0
k32w light k32w061+release (read/write) 658544 658592 48 0.0
.text 581236 581284 48 0.0
lock k32w061+release (read/write) 685348 685380 32 0.0
.text 607564 607596 32 0.0
linux all-clusters-app debug (read only) 2960649 2960761 112 0.0
.text 2519666 2519778 112 0.0
all-clusters-minimal-app debug (read only) 2813193 2813305 112 0.0
.text 2372690 2372802 112 0.0
bridge-app debug+rpc (read only) 2315241 2315353 112 0.0
.text 1955362 1955474 112 0.0
chip-tool debug (read only) 10317985 10318097 112 0.0
.text 8372564 8372676 112 0.0
chip-tool-ipv6only arm64 (read only) 10041692 10041772 80 0.0
.text 8001332 8001412 80 0.0
lighting-app debug+rpc (read only) 2550969 2551097 128 0.0
.text 2167170 2167298 128 0.0
lock-app debug (read only) 2515705 2515817 112 0.0
.text 2121666 2121778 112 0.0
ota-provider-app debug (read only) 2322049 2322177 128 0.0
.text 1955666 1955794 128 0.0
ota-requestor-app debug (read only) 2439153 2439265 112 0.0
.text 2060578 2060690 112 0.0
shell debug (read only) 2550977 2551089 112 0.0
.text 2165986 2166098 112 0.0
thermostat-no-ble arm64 (read only) 2595044 2595140 96 0.0
.text 2189664 2189760 96 0.0
tv-app debug (read only) 3101969 3102097 128 0.0
.text 2664914 2665042 128 0.0
tv-casting-app debug (read only) 5562921 5563033 112 0.0
.text 4943538 4943650 112 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2448168 2448192 24 0.0
.text 1410812 1410836 24 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1175183 1175231 48 0.0
text 811392 811432 40 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1155391 1155423 32 0.0
text 800836 800880 44 0.0
p6 all-clusters-app default (read/write) 2566152 2566600 448 0.0
.text 1524416 1524864 448 0.0
all-clusters-minimal-app default (read/write) 2511440 2511888 448 0.0
.text 1469704 1470152 448 0.0
light-app default (read/write) 2441376 2441824 448 0.0
.text 1399640 1400088 448 0.0
lock-app default (read/write) 2468520 2468968 448 0.0
.text 1426784 1427232 448 0.0
telink light-switch-app tlsr9518adk80d (read/write) 797332 797372 40 0.0
text 565594 565638 44 0.0
lighting-app tlsr9518adk80d (read/write) 817156 817204 48 0.0
text 581918 581962 44 0.0
Decreases (5 builds for cc13x2_26x2)
platform target config section 89d2a6a cfc9d96 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 185180 185132 -48 -0.0
lock-ftd LP_CC2652R7 (read/write) 172408 172368 -40 -0.0
pump-app LP_CC2652R7 (read/write) 164016 163968 -48 -0.0
pump-controller-app LP_CC2652R7 (read/write) 178312 178272 -40 -0.0
shell LP_CC2652R7 (read/write) 188184 188144 -40 -0.0
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 89d2a6a cfc9d96 change % change
bl602 lighting-app bl602 (read/write) 1397466 1397762 296 0.0
.bss 116978 116978 0 0.0
.data 4480 4480 0 0.0
.text 1058540 1058836 296 0.0
bl602+rpc (read/write) 1442890 1443194 304 0.0
.bss 124418 124418 0 0.0
.data 4600 4600 0 0.0
.text 1090224 1090524 300 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 666043 666091 48 0.0
(read/write) 185180 185132 -48 -0.0
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88067 0 0.0
.text 577660 577708 48 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631851 631899 48 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77307 0 0.0
.text 554220 554268 48 0.0
lock-ftd LP_CC2652R7 (read only) 668959 668999 40 0.0
(read/write) 172408 172368 -40 -0.0
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76207 0 0.0
.text 592272 592312 40 0.0
lock-mtd LP_CC2652R7 (read only) 618367 618415 48 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76087 0 0.0
.text 541792 541840 48 0.0
pump-app LP_CC2652R7 (read only) 678199 678247 48 0.0
(read/write) 164016 163968 -48 -0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88631 88631 0 0.0
.text 589084 589132 48 0.0
pump-controller-app LP_CC2652R7 (read only) 664023 664063 40 0.0
(read/write) 178312 178272 -40 -0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84495 84495 0 0.0
.text 579048 579088 40 0.0
shell LP_CC2652R7 (read only) 658542 658582 40 0.0
(read/write) 188184 188144 -40 -0.0
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84846 0 0.0
.text 573380 573420 40 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579494 579534 40 0.0
.app_xip_area 458264 458304 40 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585446 585494 48 0.0
.app_xip_area 459480 459528 48 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582778 582826 48 0.0
.app_xip_area 462396 462444 48 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1081412 1081860 448 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 946348 946796 448 0.0
BRD4161A+rpc (read/write) 1135732 1136180 448 0.0
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983776 984224 448 0.0
BRD4161A+rs911x (read/write) 947924 948372 448 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 805088 805536 448 0.1
lock-app BRD4161A+wf200 (read/write) 1128760 1128792 32 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 982492 982524 32 0.0
window-app BRD4161A (read/write) 1075228 1075676 448 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 938660 939108 448 0.0
esp32 all-clusters-app c3devkit (read only) 1019980 1020020 40 0.0
(read/write) 1485690 1485690 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215576 215576 0 0.0
.flash.text 1019980 1020020 40 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073927 1073995 68 0.0
(read/write) 487760 487760 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 246020 246020 0 0.0
.flash.text 1068543 1068611 68 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658544 658592 48 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 581236 581284 48 0.0
lock k32w061+release (read/write) 685348 685380 32 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607564 607596 32 0.0
linux all-clusters-app debug (read only) 2960649 2960761 112 0.0
(read/write) 154752 154752 0 0.0
.bss 61536 61536 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 84968 84968 0 0.0
.dynamic 608 608 0 0.0
.got 4536 4536 0 0.0
.init 27 27 0 0.0
.init_array 1048 1048 0 0.0
.rodata 263773 263773 0 0.0
.text 2519666 2519778 112 0.0
all-clusters-minimal-app debug (read only) 2813193 2813305 112 0.0
(read/write) 146688 146688 0 0.0
.bss 60864 60864 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 77608 77608 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1048 1048 0 0.0
.rodata 265469 265469 0 0.0
.text 2372690 2372802 112 0.0
bridge-app debug+rpc (read only) 2315241 2315353 112 0.0
(read/write) 125504 125504 0 0.0
.bss 48928 48928 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 66984 66984 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 198144 198144 0 0.0
.text 1955362 1955474 112 0.0
chip-tool debug (read only) 10317985 10318097 112 0.0
(read/write) 621728 621728 0 0.0
.bss 24728 24728 0 0.0
.data 3234 3234 0 0.0
.data.rel.ro 587360 587360 0 0.0
.dynamic 608 608 0 0.0
.got 5096 5096 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 515029 515029 0 0.0
.text 8372564 8372676 112 0.0
chip-tool-ipv6only arm64 (read only) 10041692 10041772 80 0.0
(read/write) 686913 686913 0 0.0
.bss 42961 42961 0 0.0
.data 3304 3304 0 0.0
.data.rel.ro 622984 622984 0 0.0
.dynamic 528 528 0 0.0
.got 13736 13736 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 477772 477772 0 0.0
.text 8001332 8001412 80 0.0
lighting-app debug+rpc (read only) 2550969 2551097 128 0.0
(read/write) 129528 129528 0 0.0
.bss 49440 49440 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72136 72136 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 213832 213832 0 0.0
.text 2167170 2167298 128 0.0
lock-app debug (read only) 2515705 2515817 112 0.0
(read/write) 124512 124512 0 0.0
.bss 47840 47840 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69096 69096 0 0.0
.dynamic 608 608 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 228872 228872 0 0.0
.text 2121666 2121778 112 0.0
ota-provider-app debug (read only) 2322049 2322177 128 0.0
(read/write) 118312 118312 0 0.0
.bss 47488 47488 0 0.0
.data 1944 1944 0 0.0
.data.rel.ro 63096 63096 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 203608 203608 0 0.0
.text 1955666 1955794 128 0.0
ota-requestor-app debug (read only) 2439153 2439265 112 0.0
(read/write) 125216 125216 0 0.0
.bss 49856 49856 0 0.0
.data 2232 2232 0 0.0
.data.rel.ro 67288 67288 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 207424 207424 0 0.0
.text 2060578 2060690 112 0.0
shell debug (read only) 2550977 2551089 112 0.0
(read/write) 141104 141104 0 0.0
.bss 57448 57448 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76688 76688 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 227890 227890 0 0.0
.text 2165986 2166098 112 0.0
thermostat-no-ble arm64 (read only) 2595044 2595140 96 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165604 165604 0 0.0
.text 2189664 2189760 96 0.0
tv-app debug (read only) 3101969 3102097 128 0.0
(read/write) 257704 257704 0 0.0
.bss 167016 167016 0 0.0
.data 4848 4848 0 0.0
.data.rel.ro 79392 79392 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 952 952 0 0.0
.rodata 249152 249152 0 0.0
.text 2664914 2665042 128 0.0
tv-casting-app debug (read only) 5562921 5563033 112 0.0
(read/write) 161456 161456 0 0.0
.bss 50248 50248 0 0.0
.data 2416 2416 0 0.0
.data.rel.ro 102536 102536 0 0.0
.dynamic 608 608 0 0.0
.got 4744 4744 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 342729 342729 0 0.0
.text 4943538 4943650 112 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2448168 2448192 24 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410812 1410836 24 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1175183 1175231 48 0.0
bss 142900 142900 0 0.0
rodata 142008 142008 0 0.0
text 811392 811432 40 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1155391 1155423 32 0.0
bss 142136 142136 0 0.0
rodata 133536 133536 0 0.0
text 800836 800880 44 0.0
p6 all-clusters-app default (read/write) 2566152 2566600 448 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1524416 1524864 448 0.0
all-clusters-minimal-app default (read/write) 2511440 2511888 448 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1469704 1470152 448 0.0
light-app default (read/write) 2441376 2441824 448 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1399640 1400088 448 0.0
lock-app default (read/write) 2468520 2468968 448 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1426784 1427232 448 0.0
telink light-switch-app tlsr9518adk80d (read/write) 797332 797372 40 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565594 565638 44 0.0
lighting-app tlsr9518adk80d (read/write) 817156 817204 48 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581918 581962 44 0.0

@woody-apple woody-apple deleted the cherry-pick-c04457c187df41de5591818fb2bdf80bc82ba149 branch July 19, 2022 05:41
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.

2 participants