Closed jonsmirl closed 4 months ago
If I add this line to my app:
attribute_t *cModeAttr = mode_select::attribute::create_start_up_mode(mode_select_cluster, 0);
I will fault when the attribute is reported.
Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled. Core 0 register dump: PC : 0x420a9eb4 PS : 0x00060730 A0 : 0x820abb0b A1 : 0x3fcd2300 0x420a9eb4: chip::app::DataModel::Encode(chip::TLV::TLVWriter&, chip::TLV::Tag, chip::Span<char const>) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/app/data-model/Encode.h:95 (inlined by) void chip::app::DataModel::WrappedStructEncoder::Encode<chip::Span<char const> const&>(unsigned char, chip::Span<char const> const&) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/app/data-model/WrappedStructEncoder.h:45 (inlined by) void chip::app::DataModel::WrappedStructEncoder::Encode<chip::Span<char const> const&>(unsigned char, chip::Span<char const> const&) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/app/data-model/WrappedStructEncoder.h:42 A2 : 0x3fcd2330 A3 : 0x00000000 A4 : 0xbaad5678 A5 : 0x00000000 A6 : 0x00000016 A7 : 0x3fcd2604 A8 : 0x00000000 A9 : 0x3fcd22f0 A10 : 0x00000000 A11 : 0x3fcd2604 A12 : 0x00000000 A13 : 0x00000000 A14 : 0x00000015 A15 : 0x3fcd2338 SAR : 0x00000010 EXCCAUSE: 0x0000001c EXCVADDR: 0xbaad5678 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0x00000000 0x40056f5c: memcpy in ROM 0x40056f72: memcpy in ROM Backtrace: 0x420a9eb1:0x3fcd2300 0x420abb08:0x3fcd2330 0x4205f002:0x3fcd2360 0x42053b71:0x3fcd23c0 0x420548dc:0x3fcd2460 0x42054a00:0x3fcd2480 0x42055004:0x3fcd2550 0x42055223:0x3fcd2670 0x42055294:0x3fcd26b0 0x42096ded:0x3fcd26d0 0x42096dfd:0x3fcd26f0 0x420ae2c5:0x3fcd2710 0x420ae5f1:0x3fcd2730 0x420ae625:0x3fcd27a0 0x40381b22:0x3fcd27c0 0x420a9eb1: void chip::app::DataModel::WrappedStructEncoder::Encode<chip::Span<char const> const&>(unsigned char, chip::Span<char const> const&) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/app/data-model/WrappedStructEncoder.h:44 (discriminator 2) 0x420abb08: chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type::Encode(chip::TLV::TLVWriter&, chip::TLV::Tag) const at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp:10500 0x4205f002: chip::ChipError chip::app::DataModel::Encode<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type, (chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type*)0>(chip::TLV::TLVWriter&, chip::TLV::Tag, chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/data-model/Encode.h:117 (inlined by) chip::ChipError chip::app::AttributeReportBuilder::EncodeValue<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&, true>(chip::app::AttributeReportIBs::Builder&, chip::TLV::Tag, chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/AttributeAccessInterface.h:82 (inlined by) chip::ChipError chip::app::AttributeValueEncoder::EncodeListItem<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&>(chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/AttributeAccessInterface.h:278 (inlined by) chip::ChipError chip::app::AttributeValueEncoder::ListEncodeHelper::Encode<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&, true>(chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type const&) const at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/AttributeAccessInterface.h:127 (inlined by) operator()<chip::app::AttributeValueEncoder::ListEncodeHelper> at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/clusters/mode-select-server/mode-select-server.cpp:87 (inlined by) EncodeList<(anonymous namespace)::ModeSelectAttrAccess::Read(const chip::app::ConcreteReadAttributePath&, chip::app::AttributeValueEncoder&)::<lambda(const auto:5&)> > at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/AttributeAccessInterface.h:227 (inlined by) Read at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/clusters/mode-select-server/mode-select-server.cpp:82 0x42053b71: chip::app::ReadSingleClusterData(chip::Access::SubjectDescriptor const&, bool, chip::app::ConcreteReadAttributePath const&, chip::app::AttributeReportIBs::Builder&, chip::app::AttributeValueEncoder::AttributeEncodeState*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/util/ember-compatibility-functions.cpp:436 (inlined by) chip::app::ReadSingleClusterData(chip::Access::SubjectDescriptor const&, bool, chip::app::ConcreteReadAttributePath const&, chip::app::AttributeReportIBs::Builder&, chip::app::AttributeValueEncoder::AttributeEncodeState*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/util/ember-compatibility-functions.cpp:570 0x420548dc: chip::app::reporting::Engine::RetrieveClusterData(chip::Access::SubjectDescriptor const&, bool, chip::app::AttributeReportIBs::Builder&, chip::app::ConcreteReadAttributePath const&, chip::app::AttributeValueEncoder::AttributeEncodeState*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/reporting/Engine.cpp:93 0x42054a00: chip::app::reporting::Engine::BuildSingleReportDataAttributeReportIBs(chip::app::ReportDataMessage::Builder&, chip::app::ReadHandler*, bool*, bool*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/reporting/Engine.cpp:203 (discriminator 2) 0x42055004: chip::app::reporting::Engine::BuildAndSendSingleReportData(chip::app::ReadHandler*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/reporting/Engine.cpp:546 0x42055223: chip::app::reporting::Engine::Run() at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/reporting/Engine.cpp:666 0x42055294: chip::app::reporting::Engine::Run(chip::System::Layer*, void*) at /home/jonsmirl/aosp/esp-matter/connectedhomeip/connectedhomeip/src/app/reporting/Engine.cpp:619 0x42096ded: chip::System::TimerData::Callback::Invoke() const at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/system/SystemTimer.h:61 (inlined by) chip::System::TimerPool<chip::System::TimerList::Node>::Invoke(chip::System::TimerList::Node*) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/system/SystemTimer.h:237 0x42096dfd: chip::LambdaBridge::Initialize<chip::System::LayerImplFreeRTOS::ScheduleWork(void (*)(chip::System::Layer*, void*), void*)::{lambda()#1}>(chip::System::LayerImplFreeRTOS::ScheduleWork(void (*)(chip::System::Layer*, void*), void*)::{lambda()#1} const&)::{lambda(std::aligned_storage<24u, 4u>::type const&)#1}::_FUN(std::aligned_storage<24u, 4u>::type const&) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/system/SystemLayerImplFreeRTOS.cpp:143 (inlined by) operator() at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/lib/support/LambdaBridge.h:39 (inlined by) _FUN at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/lib/support/LambdaBridge.h:39 0x420ae2c5: chip::DeviceLayer::Internal::GenericPlatformManagerImpl<chip::DeviceLayer::PlatformManagerImpl>::_DispatchEvent(chip::DeviceLayer::ChipDeviceEvent const*) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/include/platform/internal/GenericPlatformManagerImpl.ipp:290 0x420ae5f1: chip::DeviceLayer::PlatformManager::DispatchEvent(chip::DeviceLayer::ChipDeviceEvent const*) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/include/platform/PlatformManager.h:503 (inlined by) chip::DeviceLayer::Internal::GenericPlatformManagerImpl_FreeRTOS<chip::DeviceLayer::PlatformManagerImpl>::_RunEventLoop() at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp:257 0x420ae625: chip::DeviceLayer::PlatformManager::RunEventLoop() at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/include/platform/PlatformManager.h:403 (inlined by) chip::DeviceLayer::Internal::GenericPlatformManagerImpl_FreeRTOS<chip::DeviceLayer::PlatformManagerImpl>::EventLoopTaskMain(void*) at /home/jonsmirl/l6/build/esp-idf/chip/../../../../aosp/esp-matter/connectedhomeip/connectedhomeip/config/esp32/third_party/connectedhomeip/src/include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp:280 0x40381b22: vPortTaskWrapper at /home/jonsmirl/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:134
Can't just use a zero...
attribute_t *cModeAttr = mode_select::attribute::create_start_up_mode(mode_select_cluster, nullable<uint8_t>(0));
If I add this line to my app:
I will fault when the attribute is reported.