Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added Device Energy Management server.cpp to all-clusters-app (#30957)
* Fix #30665 (EVSE) - Changed to use amperage_mA, energy_mWh - removed max on epoch_s - removed access for operate - removed side for events * Fix #30665 updates to try to get further with ZAP and autogen, but still fails with some parts of regen_all * Added ember-compatibility-functions.cpp which was missing. * Made all types all lowercase to resolve regen_all issues. * Fixed lint issue (trailing whitespace). * Added Device Energy Management server.cpp, added to all-clusters-app.zap and regen_all * Restyled by whitespace * Restyled by clang-format * Fixes based on similar conversations on EVSE review. Made Forecast and PowerAdjustmentCapability Nullable attributes. Added feature support. * Added delegate class to all-clusters-app * Changed ChipLogProgress to Error. Better handling of EnumerateCommands * Aligned EVSE XML to same state as PR#30857 (includes SessionID being Nullable etc and in Fault Event). * Updated Device Energy Management XML to use power_mw, energy_mwh per spec definition. * Updated controller-clusters.zap * regen_all.py * Restyled by whitespace * Regen_all after merging in changes for XML * Fixed types to be signed=true * Fixed 31032 - revert removal of side="server". * regen_all.py * Added Device Energy Management cluster back into all-clusters.zap and regen_all after merging from master. * Compiles but doesn't work. Needs stub to instantiate class * Fixed EnumerateCommands to allow optional ModifyForecastRequest and RequestConstraintBasedForecast commands * Fixed InvokeCommand issues to allow optional commands. * Improved HandleModifyForecastRequest and HandleRequestConstraintBasedForecast in sdk * Updates to add DeviceEnergyManagement to all-clusters. * Compiles and links * Sync file in energy-management-app * Updated DEM to support SetPowerAdjustmentCapability and SetForecast methods. * Updated based on review comments. Changed Epoch to be Matter 2000 based epochs. * Turned on commands in DEM. Added DEM cluster server to energy-management-app. * Added more comments to Delegate to describe expected behaviour. * Updated BUILD.gn to remove duplicated files from all-clusters-common and energy-management-common * Aim to fix compile issues on other platforms due to logging of %d * Restyled by gn * Updated build files to remove duplicate copies from all-clusters-common to energy-management-common * Fixed ESP32 include path * Added DEM into energy-management-app - refactored main.cpp. * Added DEM into EVSEManufacturerImpl.h * Fix - avoid using global namespace in header file * Restyled by gn * Updated CMakeLists.txt to remove duplicate energy-management files. * Added device-energy-management-server to ESP32 all-clusters CMakeLists.txt * Removed return at end of void function. * Added include to all-clusters-minimal in ESP32 * Removed __FUNCTION__ from logs * Removed stray %s * Added FeatureMap handling in sdk (not in ember) * Removed extra chip:: * Used CHIP_ERROR_FORMAT, err.Format() mechanism * Refactored StartTimeAdjust based on review comments. * Removed unnecessary Write Attributes function * Beginnings of Session handling * Added beginnings of EVConnected,EVNotDetected,EnergyTransferStarted,EnergyTransferStopped handling. State machine is not finished. Callback to read Energy Meter added * Added framework for EVSE Test Event triggers * Added EnergyEvseTestEventTrigger delegates * Restyled by whitespace * Restyled by gn * Added :energy-evse-test-event-trigger to public_deps to see if it resolves build errors * Restyled by gn * Fixed Darwin compile error - do not use else after return * Refactored code so that the EvseManufacturer instance could be retrieved for Test Event triggers * Started adding TC_EEVSE_2_2.py * Updated TC_EEVSE_2_2.py to support test events. Still needs to handle reading of Logged Events and verifying they are correct. * Refactored Handling of TestEvents to allow clear, and better error handling. * Refactored state handling by decomposing into state machine events where similar functions are performed based on state transition. Fixed TC chargingEnabledUntil cast to int. Note gets to step 6e * Fixed step 6e caused by not setting the cable limit / maxHardwareCurrentLimit in test events * Added comment to clarify purpose and definition of test eventtrigger field values. * Fixed several bugs in test script * Made SetChargingEnabledUntil take a nullable type. * Removed Reference to step 5c, and moved reading of SessionID to step 4b. More TC_EEVSE_2_2 bug fixes. Added event checking. Still fails at step 14. Does not have enable timeout timer implemented * Fixed issue with not detecting 2nd plug in event, and session ID not incrementing. Now test case passes all the way. * Restyled by isort * Made some attributes persisted per spec. * Added attributes to zcl.json to mark them as implemented in attributeAccessInterfaceAttributes * Ran regen_all.py after changing zcl.json * Fixed incorrect type - not picked up by all compilers. * Re-ran bootstrap, and then regen-all - to pick up more zap generated fixes * Added provisional handling for Faults * Added new test event triggers to help test Fault and Diagnostics * Added TC_EEVSE_2_4 * Fix lint issue - unused datetime modules. * Committed suggested change to comment * Added TC_EEVSE_2_5.py to support DiagnosticsCommand testing. Also changed the SupplyState reverting to Disabled once diagnostics is complete to match the spec. * Created a helper EEVSE base class to avoid repetition in the different test cases. * Restyled by isort * Fixed Lint issues * Revamped TC_EEVSE_2_5 to match spec behaviour (cannot start diagnostics unless Disabled). Also removed hard-coded endpoint ids in Utils * Implemented timer to disable the EVSE automatically. * Added documentation to cover concern about long-lived bytespan in enableKey * Fixed Lint and build issues on other platforms * Restyled by isort * Implemented some of the feedback on PR * Refactored HwSetState to use nested switch statements to be clear that all enums are caught. * Fixed error messages * Test scripts: Removed hardcoded endpoint 1 (use --endpoint 1 in args), allowed the enableKey to be passed in using --hex-arg enableKey:000102030405060708090a0b0c0d0e0f * Made enum class for callbacks and improved documentation comments based on feedback. * Fixed another python lint issue. * Updated README.md with help on how to build for test event triggers, using chip-repl and python testing. * Tweaks to README.md to avoid Myst syntax highlighting issues. * Improved error logging around GetEpochTS() * Made main use std::unique_ptr instead of using new/delete per PR comments. Also moved GetEVSEManufacturer declaration to header file. * Fixing MISSPELL issues in README.md * Small change missed in main.cpp missed in unique_ptr change. * Changed all-clusters app stubs to use unique_ptr style instead of new/delete. * Removed unhelpful comment * Restyled by whitespace * Fixes #31061 Updated DEVICE_TYPE to 0x050C now this has been allocated * Small correction to description in test case. * Update examples/energy-management-app/energy-management-common/include/EnergyEvseDelegateImpl.h Co-authored-by: Boris Zbarsky <[email protected]> * Touched file to retrigger restyled job * Removed whitespace which was added to trigger restyled to rerun * Removed potentially unsafe code before merging into PR #30957 * Renamed variable and replaced auto with type so it is clearer to reader. --------- Co-authored-by: Restyled.io <[email protected]> Co-authored-by: Boris Zbarsky <[email protected]>
- Loading branch information