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 variant-type-driven state machine to libs #12223

Merged
merged 9 commits into from
Nov 30, 2021

Conversation

msandstedt
Copy link
Contributor

Problem

The SDK has many state machines, but no consistent approach to cleanly define core SDK state machine functionality in a way that still allows extensibility in consuming applications.

Change overview

This introduces a functional approach for the state machine design pattern with a new StateMachine class, emulating patterns available in C++17, but leveraging the SDK's Optional and Variant types for C++14 compatibility. The new StateMachine class allows for a clean separation and decoupling of states, events and transitions such that states and events may be implemented in the core SDK, but transitions may be defined in consuming applications to support application-specific needs.

Testing

A new unit test has been added for the new StateMachine class.

This commit introduces a functional approach for State Machine
implementation that leverages the sdk's Variant and Optional types.
By providing a clean separation between states, events, and transitions,
state machines can be implemented in such a way that states and
events may be provided in the core sdk, but with transitions defined
in consuming applications to support individual use cases.  And because
states and events are associated to the state machine by inclusion in
variants and not by inheritance, applications may also extend state
machines with arbitrary, application-specific events and states.

Co-Authored-by: Bill Schiller <bill.schiller@smartthings.com>
@boring-cyborg boring-cyborg bot added the lib label Nov 24, 2021
@CLAassistant
Copy link

CLAassistant commented Nov 24, 2021

CLA assistant check
All committers have signed the CLA.

@github-actions
Copy link

github-actions bot commented Nov 24, 2021

PR #12223: Size comparison from 8bfdc13 to 0b0f9e0

Full report (21 builds for efr32, k32w, linux, p6, qpg, telink)
platform target config section 8bfdc13 0b0f9e0 change % change
efr32 lighting-app BRD4161A (read only) 757184 757184 0 0.0
(read/write) 119788 119788 0 0.0
.bss 117972 117972 0 0.0
.data 1816 1816 0 0.0
.text 757176 757176 0 0.0
BRD4161A+rpc (read only) 744644 744644 0 0.0
(read/write) 136416 136416 0 0.0
.bss 134476 134476 0 0.0
.data 1940 1940 0 0.0
.text 744636 744636 0 0.0
lock-app BRD4161A (read only) 733040 733040 0 0.0
(read/write) 117508 117508 0 0.0
.bss 115732 115732 0 0.0
.data 1772 1772 0 0.0
.text 733032 733032 0 0.0
window-app BRD4161A (read only) 736488 736488 0 0.0
(read/write) 117868 117868 0 0.0
.bss 116084 116084 0 0.0
.data 1780 1780 0 0.0
.text 736480 736480 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 718472 718472 0 0.0
.bss 78252 78252 0 0.0
.data 1952 1952 0 0.0
.text 632468 632468 0 0.0
lock-app k32w061+debug (read/write) 608764 608764 0 0.0
.bss 68692 68692 0 0.0
.data 1920 1920 0 0.0
.text 532352 532352 0 0.0
shell k32w061+debug (read/write) 674164 674164 0 0.0
.bss 79852 79852 0 0.0
.data 1888 1888 0 0.0
.text 586624 586624 0 0.0
linux all-clusters-app debug (read only) 1767121 1767121 0 0.0
(read/write) 129880 129880 0 0.0
.bss 58800 58800 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 64608 64608 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 576 0 0.0
.rodata 138293 138293 0 0.0
.text 1490482 1490482 0 0.0
bridge-app debug+rpc (read only) 1342765 1342765 0 0.0
(read/write) 77824 77824 0 0.0
.bss 41712 41712 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 112924 112924 0 0.0
.text 1129749 1129749 0 0.0
chip-tool debug (read only) 5959517 5959517 0 0.0
(read/write) 197584 197584 0 0.0
.bss 40064 40064 0 0.0
.data 2384 2384 0 0.0
.data.rel.ro 149552 149552 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 283880 283880 0 0.0
.text 5291957 5291957 0 0.0
lighting-app debug+rpc (read only) 1615929 1615929 0 0.0
(read/write) 111072 111072 0 0.0
.bss 47408 47408 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131217 131217 0 0.0
.text 1346994 1346994 0 0.0
ota-provider-app debug (read only) 1306817 1306817 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114640 114640 0 0.0
.text 1091826 1091826 0 0.0
ota-requestor-app debug (read only) 1403353 1403353 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126080 126080 0 0.0
.text 1174130 1174130 0 0.0
shell debug (read only) 820129 820129 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 78927 78927 0 0.0
.text 634514 634514 0 0.0
tv-app debug (read only) 1912529 1912529 0 0.0
(read/write) 320088 320088 0 0.0
.bss 250168 250168 0 0.0
.data 2880 2880 0 0.0
.data.rel.ro 61368 61368 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 632 632 0 0.0
.rodata 159176 159176 0 0.0
.text 1605154 1605154 0 0.0
p6 all-clusters-app default (read/write) 2309592 2309592 0 0.0
.bss 113496 113496 0 0.0
.data 2544 2544 0 0.0
.heap 917304 917304 0 0.0
.text 1267856 1267856 0 0.0
lock-app default (read/write) 2221608 2221608 0 0.0
.bss 101080 101080 0 0.0
.data 2416 2416 0 0.0
.heap 929848 929848 0 0.0
.text 1179872 1179872 0 0.0
qpg lighting-app qpg6100+debug (read only) 498732 498732 0 0.0
(read/write) 114140 114140 0 0.0
.bss 50368 50368 0 0.0
.data 1020 1020 0 0.0
.text 493412 493412 0 0.0
lock-app qpg6100+debug (read only) 472636 472636 0 0.0
(read/write) 114144 114144 0 0.0
.bss 49240 49240 0 0.0
.data 976 976 0 0.0
.text 467316 467316 0 0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8986 8986 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 772402 772402 0 0.0
bss 79208 79208 0 0.0
noinit 37160 37160 0 0.0
text 536460 536460 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 24, 2021

PR #12223: Size comparison from 8bfdc13 to 1006308

Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 8bfdc13 1006308 change % change
efr32 lighting-app BRD4161A (read only) 757184 757184 0 0.0
(read/write) 119788 119788 0 0.0
.bss 117972 117972 0 0.0
.data 1816 1816 0 0.0
.text 757176 757176 0 0.0
BRD4161A+rpc (read only) 744644 744644 0 0.0
(read/write) 136416 136416 0 0.0
.bss 134476 134476 0 0.0
.data 1940 1940 0 0.0
.text 744636 744636 0 0.0
lock-app BRD4161A (read only) 733040 733040 0 0.0
(read/write) 117508 117508 0 0.0
.bss 115732 115732 0 0.0
.data 1772 1772 0 0.0
.text 733032 733032 0 0.0
window-app BRD4161A (read only) 736488 736488 0 0.0
(read/write) 117868 117868 0 0.0
.bss 116084 116084 0 0.0
.data 1780 1780 0 0.0
.text 736480 736480 0 0.0
esp32 all-clusters-app c3devkit (read only) 835374 835374 0 0.0
(read/write) 1222586 1222586 0 0.0
.dram0.bss 57952 57952 0 0.0
.dram0.data 14100 14100 0 0.0
.flash.rodata 165280 165280 0 0.0
.flash.text 835374 835374 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 906835 906835 0 0.0
(read/write) 421852 421852 0 0.0
.dram0.bss 63344 63344 0 0.0
.dram0.data 34072 34072 0 0.0
.flash.rodata 193156 193156 0 0.0
.flash.text 901451 901451 0 0.0
.iram0.text 122943 122943 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 718472 718472 0 0.0
.bss 78252 78252 0 0.0
.data 1952 1952 0 0.0
.text 632468 632468 0 0.0
lock-app k32w061+debug (read/write) 608764 608764 0 0.0
.bss 68692 68692 0 0.0
.data 1920 1920 0 0.0
.text 532352 532352 0 0.0
shell k32w061+debug (read/write) 674164 674164 0 0.0
.bss 79852 79852 0 0.0
.data 1888 1888 0 0.0
.text 586624 586624 0 0.0
linux all-clusters-app debug (read only) 1767121 1767121 0 0.0
(read/write) 129880 129880 0 0.0
.bss 58800 58800 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 64608 64608 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 576 0 0.0
.rodata 138293 138293 0 0.0
.text 1490482 1490482 0 0.0
bridge-app debug+rpc (read only) 1342765 1342765 0 0.0
(read/write) 77824 77824 0 0.0
.bss 41712 41712 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 112924 112924 0 0.0
.text 1129749 1129749 0 0.0
chip-tool debug (read only) 5959517 5959517 0 0.0
(read/write) 197584 197584 0 0.0
.bss 40064 40064 0 0.0
.data 2384 2384 0 0.0
.data.rel.ro 149552 149552 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 283880 283880 0 0.0
.text 5291957 5291957 0 0.0
lighting-app debug+rpc (read only) 1615929 1615929 0 0.0
(read/write) 111072 111072 0 0.0
.bss 47408 47408 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131217 131217 0 0.0
.text 1346994 1346994 0 0.0
ota-provider-app debug (read only) 1306817 1306817 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114640 114640 0 0.0
.text 1091826 1091826 0 0.0
ota-requestor-app debug (read only) 1403353 1403353 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126080 126080 0 0.0
.text 1174130 1174130 0 0.0
shell debug (read only) 820129 820129 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 78927 78927 0 0.0
.text 634514 634514 0 0.0
tv-app debug (read only) 1912529 1912529 0 0.0
(read/write) 320088 320088 0 0.0
.bss 250168 250168 0 0.0
.data 2880 2880 0 0.0
.data.rel.ro 61368 61368 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 632 632 0 0.0
.rodata 159176 159176 0 0.0
.text 1605154 1605154 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2294096 2294096 0 0.0
.bss 180500 180500 0 0.0
.data 5240 5240 0 0.0
.heap 850704 850704 0 0.0
.text 1256696 1256696 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2278352 2278352 0 0.0
.bss 172404 172404 0 0.0
.data 5600 5600 0 0.0
.heap 858440 858440 0 0.0
.text 1240952 1240952 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2252672 2252672 0 0.0
.bss 171220 171220 0 0.0
.data 5584 5584 0 0.0
.heap 859640 859640 0 0.0
.text 1215272 1215272 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2050800 2050800 0 0.0
.bss 156424 156424 0 0.0
.data 4984 4984 0 0.0
.heap 875040 875040 0 0.0
.text 1013400 1013400 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 871003 871003 0 0.0
bss 112632 112632 0 0.0
rodata 96516 96516 0 0.0
text 586212 586212 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 833371 833371 0 0.0
bss 108984 108984 0 0.0
rodata 87700 87700 0 0.0
text 560380 560380 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 796046 796046 0 0.0
bss 114004 114004 0 0.0
rodata 91776 91776 0 0.0
text 515676 515676 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 843095 843095 0 0.0
bss 109664 109664 0 0.0
rodata 92520 92520 0 0.0
text 565456 565456 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 768398 768398 0 0.0
bss 111076 111076 0 0.0
rodata 87808 87808 0 0.0
text 495012 495012 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 849227 849227 0 0.0
bss 109804 109804 0 0.0
rodata 94228 94228 0 0.0
text 569640 569640 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 842819 842819 0 0.0
bss 109700 109700 0 0.0
rodata 92476 92476 0 0.0
text 565076 565076 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778311 778311 0 0.0
bss 109168 109168 0 0.0
rodata 72996 72996 0 0.0
text 521532 521532 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693350 693350 0 0.0
bss 110152 110152 0 0.0
rodata 67640 67640 0 0.0
text 442140 442140 0 0.0
p6 all-clusters-app default (read/write) 2309592 2309592 0 0.0
.bss 113496 113496 0 0.0
.data 2544 2544 0 0.0
.heap 917304 917304 0 0.0
.text 1267856 1267856 0 0.0
lock-app default (read/write) 2221608 2221608 0 0.0
.bss 101080 101080 0 0.0
.data 2416 2416 0 0.0
.heap 929848 929848 0 0.0
.text 1179872 1179872 0 0.0
qpg lighting-app qpg6100+debug (read only) 498732 498732 0 0.0
(read/write) 114140 114140 0 0.0
.bss 50368 50368 0 0.0
.data 1020 1020 0 0.0
.text 493412 493412 0 0.0
lock-app qpg6100+debug (read only) 472636 472636 0 0.0
(read/write) 114144 114144 0 0.0
.bss 49240 49240 0 0.0
.data 976 976 0 0.0
.text 467316 467316 0 0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8986 8986 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 772402 772402 0 0.0
bss 79208 79208 0 0.0
noinit 37160 37160 0 0.0
text 536460 536460 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 26, 2021

PR #12223: Size comparison from 65f4475 to deec40c

Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 65f4475 deec40c change % change
efr32 lighting-app BRD4161A (read only) 762072 762072 0 0.0
(read/write) 119836 119836 0 0.0
.bss 118012 118012 0 0.0
.data 1820 1820 0 0.0
.text 762064 762064 0 0.0
BRD4161A+rpc (read only) 749740 749740 0 0.0
(read/write) 136460 136460 0 0.0
.bss 134516 134516 0 0.0
.data 1944 1944 0 0.0
.text 749732 749732 0 0.0
lock-app BRD4161A (read only) 736032 736032 0 0.0
(read/write) 117540 117540 0 0.0
.bss 115764 115764 0 0.0
.data 1776 1776 0 0.0
.text 736024 736024 0 0.0
window-app BRD4161A (read only) 739096 739096 0 0.0
(read/write) 117972 117972 0 0.0
.bss 116188 116188 0 0.0
.data 1784 1784 0 0.0
.text 739088 739088 0 0.0
esp32 all-clusters-app c3devkit (read only) 836422 836422 0 0.0
(read/write) 1224474 1224474 0 0.0
.dram0.bss 59144 59144 0 0.0
.dram0.data 14100 14100 0 0.0
.flash.rodata 165968 165968 0 0.0
.flash.text 836422 836422 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 907835 907835 0 0.0
(read/write) 423692 423692 0 0.0
.dram0.bss 64536 64536 0 0.0
.dram0.data 34072 34072 0 0.0
.flash.rodata 193804 193804 0 0.0
.flash.text 902451 902451 0 0.0
.iram0.text 122943 122943 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 723208 723208 0 0.0
.bss 78292 78292 0 0.0
.data 1956 1956 0 0.0
.text 637160 637160 0 0.0
lock-app k32w061+debug (read/write) 612280 612280 0 0.0
.bss 68740 68740 0 0.0
.data 1920 1920 0 0.0
.text 535820 535820 0 0.0
shell k32w061+debug (read/write) 677600 677600 0 0.0
.bss 79892 79892 0 0.0
.data 1892 1892 0 0.0
.text 590016 590016 0 0.0
linux all-clusters-app debug (read only) 1774185 1774185 0 0.0
(read/write) 131544 131544 0 0.0
.bss 60144 60144 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 64928 64928 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 576 0 0.0
.rodata 138869 138869 0 0.0
.text 1496946 1496946 0 0.0
bridge-app debug+rpc (read only) 1348509 1348509 0 0.0
(read/write) 77856 77856 0 0.0
.bss 41744 41744 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 113500 113500 0 0.0
.text 1134917 1134917 0 0.0
chip-tool debug (read only) 6085653 6085653 0 0.0
(read/write) 199920 199920 0 0.0
.bss 40064 40064 0 0.0
.data 2384 2384 0 0.0
.data.rel.ro 151888 151888 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 291816 291816 0 0.0
.text 5404709 5404709 0 0.0
lighting-app debug+rpc (read only) 1628153 1628153 0 0.0
(read/write) 111104 111104 0 0.0
.bss 47440 47440 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131793 131793 0 0.0
.text 1358642 1358642 0 0.0
ota-provider-app debug (read only) 1309537 1309537 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114832 114832 0 0.0
.text 1094354 1094354 0 0.0
ota-requestor-app debug (read only) 1405977 1405977 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126304 126304 0 0.0
.text 1176530 1176530 0 0.0
shell debug (read only) 820321 820321 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 79023 79023 0 0.0
.text 634610 634610 0 0.0
tv-app debug (read only) 1918385 1918385 0 0.0
(read/write) 320152 320152 0 0.0
.bss 250232 250232 0 0.0
.data 2880 2880 0 0.0
.data.rel.ro 61368 61368 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 632 632 0 0.0
.rodata 159848 159848 0 0.0
.text 1610338 1610338 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2294736 2294736 0 0.0
.bss 181884 181884 0 0.0
.data 5240 5240 0 0.0
.heap 849320 849320 0 0.0
.text 1257336 1257336 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2279952 2279952 0 0.0
.bss 172492 172492 0 0.0
.data 5600 5600 0 0.0
.heap 858352 858352 0 0.0
.text 1242552 1242552 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2253096 2253096 0 0.0
.bss 171308 171308 0 0.0
.data 5584 5584 0 0.0
.heap 859552 859552 0 0.0
.text 1215696 1215696 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2050936 2050936 0 0.0
.bss 156496 156496 0 0.0
.data 4984 4984 0 0.0
.heap 874968 874968 0 0.0
.text 1013536 1013536 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 875499 875499 0 0.0
bss 112660 112660 0 0.0
rodata 97188 97188 0 0.0
text 590008 590008 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 838075 838075 0 0.0
bss 109012 109012 0 0.0
rodata 88436 88436 0 0.0
text 564312 564312 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 800538 800538 0 0.0
bss 114036 114036 0 0.0
rodata 92444 92444 0 0.0
text 519472 519472 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 846427 846427 0 0.0
bss 109700 109700 0 0.0
rodata 92972 92972 0 0.0
text 568280 568280 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 771698 771698 0 0.0
bss 111108 111108 0 0.0
rodata 88260 88260 0 0.0
text 497832 497832 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 852399 852399 0 0.0
bss 109836 109836 0 0.0
rodata 94680 94680 0 0.0
text 572324 572324 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 845523 845523 0 0.0
bss 109712 109712 0 0.0
rodata 92844 92844 0 0.0
text 567408 567408 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778447 778447 0 0.0
bss 109180 109180 0 0.0
rodata 73084 73084 0 0.0
text 521576 521576 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693482 693482 0 0.0
bss 110164 110164 0 0.0
rodata 67724 67724 0 0.0
text 442184 442184 0 0.0
p6 all-clusters-app default (read/write) 2311176 2311176 0 0.0
.bss 114688 114688 0 0.0
.data 2544 2544 0 0.0
.heap 916112 916112 0 0.0
.text 1269440 1269440 0 0.0
lock-app default (read/write) 2222992 2222992 0 0.0
.bss 100976 100976 0 0.0
.data 2416 2416 0 0.0
.heap 929952 929952 0 0.0
.text 1181256 1181256 0 0.0
qpg lighting-app qpg6100+debug (read only) 502992 502992 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50400 50400 0 0.0
.data 1024 1024 0 0.0
.text 497672 497672 0 0.0
lock-app qpg6100+debug (read only) 475708 475708 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49272 49272 0 0.0
.data 980 980 0 0.0
.text 470388 470388 0 0.0
persistent-storage-app qpg6100+debug (read only) 105424 105424 0 0.0
(read/write) 114138 114138 0 0.0
.bss 12002 12002 0 0.0
.data 276 276 0 0.0
.text 100104 100104 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 777286 777286 0 0.0
bss 79236 79236 0 0.0
noinit 37160 37160 0 0.0
text 540616 540616 0 0.0

The following are made explicitly illegal and will abort:

* Dispatch from Exit() or LogTransition() state methods
* Dispatch from transitions table w/ returned transition
@github-actions
Copy link

github-actions bot commented Nov 29, 2021

PR #12223: Size comparison from 77258f7 to 5baa5a2

Decreases (2 builds for linux)
platform target config section 77258f7 5baa5a2 change % change
linux chip-tool debug (read only) 6088629 6088437 -192 -0.0
.text 5406517 5406325 -192 -0.0
tv-app debug (read only) 1921377 1921185 -192 -0.0
.text 1612162 1611970 -192 -0.0
Full report (37 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg)
platform target config section 77258f7 5baa5a2 change % change
efr32 lighting-app BRD4161A (read only) 762200 762200 0 0.0
(read/write) 119836 119836 0 0.0
.bss 118012 118012 0 0.0
.data 1820 1820 0 0.0
.text 762192 762192 0 0.0
BRD4161A+rpc (read only) 790632 790632 0 0.0
(read/write) 138132 138132 0 0.0
.bss 136212 136212 0 0.0
.data 1920 1920 0 0.0
.text 790624 790624 0 0.0
lock-app BRD4161A (read only) 736144 736144 0 0.0
(read/write) 117540 117540 0 0.0
.bss 115764 115764 0 0.0
.data 1776 1776 0 0.0
.text 736136 736136 0 0.0
window-app BRD4161A (read only) 739208 739208 0 0.0
(read/write) 117972 117972 0 0.0
.bss 116188 116188 0 0.0
.data 1784 1784 0 0.0
.text 739200 739200 0 0.0
esp32 all-clusters-app c3devkit (read only) 836536 836536 0 0.0
(read/write) 1224474 1224474 0 0.0
.dram0.bss 59144 59144 0 0.0
.dram0.data 14100 14100 0 0.0
.flash.rodata 165968 165968 0 0.0
.flash.text 836536 836536 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 907919 907919 0 0.0
(read/write) 423692 423692 0 0.0
.dram0.bss 64536 64536 0 0.0
.dram0.data 34072 34072 0 0.0
.flash.rodata 193804 193804 0 0.0
.flash.text 902535 902535 0 0.0
.iram0.text 122943 122943 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 723320 723320 0 0.0
.bss 78292 78292 0 0.0
.data 1956 1956 0 0.0
.text 637272 637272 0 0.0
lock-app k32w061+debug (read/write) 612392 612392 0 0.0
.bss 68740 68740 0 0.0
.data 1920 1920 0 0.0
.text 535932 535932 0 0.0
shell k32w061+debug (read/write) 677712 677712 0 0.0
.bss 79892 79892 0 0.0
.data 1892 1892 0 0.0
.text 590128 590128 0 0.0
linux all-clusters-app debug (read only) 1775081 1775081 0 0.0
(read/write) 131544 131544 0 0.0
.bss 60144 60144 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 64928 64928 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 576 0 0.0
.rodata 138965 138965 0 0.0
.text 1497746 1497746 0 0.0
bridge-app debug+rpc (read only) 1349405 1349405 0 0.0
(read/write) 77856 77856 0 0.0
.bss 41744 41744 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 113596 113596 0 0.0
.text 1135717 1135717 0 0.0
chip-tool debug (read only) 6088629 6088437 -192 -0.0
(read/write) 198808 198808 0 0.0
.bss 40096 40096 0 0.0
.data 1136 1136 0 0.0
.data.rel.ro 152000 152000 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 496 496 0 0.0
.rodata 292840 292840 0 0.0
.text 5406517 5406325 -192 -0.0
lighting-app debug+rpc (read only) 1629065 1629065 0 0.0
(read/write) 111104 111104 0 0.0
.bss 47440 47440 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131889 131889 0 0.0
.text 1359458 1359458 0 0.0
ota-provider-app debug (read only) 1310401 1310401 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114896 114896 0 0.0
.text 1095154 1095154 0 0.0
ota-requestor-app debug (read only) 1406873 1406873 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126400 126400 0 0.0
.text 1177330 1177330 0 0.0
shell debug (read only) 820321 820321 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 79023 79023 0 0.0
.text 634610 634610 0 0.0
tv-app debug (read only) 1921377 1921185 -192 -0.0
(read/write) 319072 319072 0 0.0
.bss 250264 250264 0 0.0
.data 1632 1632 0 0.0
.data.rel.ro 61480 61480 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 160872 160872 0 0.0
.text 1612162 1611970 -192 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2294976 2294976 0 0.0
.bss 181884 181884 0 0.0
.data 5240 5240 0 0.0
.heap 849320 849320 0 0.0
.text 1257576 1257576 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2280256 2280256 0 0.0
.bss 172492 172492 0 0.0
.data 5600 5600 0 0.0
.heap 858352 858352 0 0.0
.text 1242856 1242856 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2253336 2253336 0 0.0
.bss 171308 171308 0 0.0
.data 5584 5584 0 0.0
.heap 859552 859552 0 0.0
.text 1215936 1215936 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2050936 2050936 0 0.0
.bss 156496 156496 0 0.0
.data 4984 4984 0 0.0
.heap 874968 874968 0 0.0
.text 1013536 1013536 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 875611 875611 0 0.0
bss 112660 112660 0 0.0
rodata 97188 97188 0 0.0
text 590116 590116 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 838187 838187 0 0.0
bss 109012 109012 0 0.0
rodata 88436 88436 0 0.0
text 564432 564432 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 800650 800650 0 0.0
bss 114036 114036 0 0.0
rodata 92444 92444 0 0.0
text 519580 519580 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 846539 846539 0 0.0
bss 109700 109700 0 0.0
rodata 92972 92972 0 0.0
text 568388 568388 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 771810 771810 0 0.0
bss 111108 111108 0 0.0
rodata 88260 88260 0 0.0
text 497940 497940 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 852511 852511 0 0.0
bss 109836 109836 0 0.0
rodata 94680 94680 0 0.0
text 572432 572432 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 845619 845619 0 0.0
bss 109712 109712 0 0.0
rodata 92844 92844 0 0.0
text 567512 567512 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778447 778447 0 0.0
bss 109180 109180 0 0.0
rodata 73084 73084 0 0.0
text 521576 521576 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693482 693482 0 0.0
bss 110164 110164 0 0.0
rodata 67724 67724 0 0.0
text 442184 442184 0 0.0
p6 all-clusters-app default (read/write) 2311304 2311304 0 0.0
.bss 114688 114688 0 0.0
.data 2544 2544 0 0.0
.heap 916112 916112 0 0.0
.text 1269568 1269568 0 0.0
lock-app default (read/write) 2223120 2223120 0 0.0
.bss 100976 100976 0 0.0
.data 2416 2416 0 0.0
.heap 929952 929952 0 0.0
.text 1181384 1181384 0 0.0
qpg lighting-app qpg6100+debug (read only) 503096 503096 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50400 50400 0 0.0
.data 1024 1024 0 0.0
.text 497776 497776 0 0.0
lock-app qpg6100+debug (read only) 475804 475804 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49272 49272 0 0.0
.data 980 980 0 0.0
.text 470484 470484 0 0.0
persistent-storage-app qpg6100+debug (read only) 105424 105424 0 0.0
(read/write) 114138 114138 0 0.0
.bss 12002 12002 0 0.0
.data 276 276 0 0.0
.text 100104 100104 0 0.0

@woody-apple
Copy link
Contributor

Fast tracking, given this has been up for a while, and has had no further feedback.

@woody-apple woody-apple merged commit 176e40b into project-chip:master Nov 30, 2021
@msandstedt msandstedt deleted the fsm branch December 21, 2021 00:36
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