Edge2Edge: filter undefined integer modbus values
This change fixes an issue with the internal OpenEMS Edge-2-Edge communication. It has been discussed in this forum post.
Short Summary: when an OpenEMS edge has an undefined integer channel value, it sets the value to the max. int value (e.g. 65535 for 16bit unsigned integer) in the Modbus API. The master edge then reads this Modbus value, but doesn't recognize it as undefined. Instead, the value gets used just like any other value. This can lead to problems like SOC of 65535%.
This fix adds a converter for integer values to the AbstractEdge2Edge class, that sets channel values to null, if the Modbus value is undefined.
Codecov Report
:x: Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.
:x: Your patch check has failed because the patch coverage (0.00%) is below the target coverage (75.00%). You can increase the patch coverage or adjust the target coverage.
Additional details and impacted files
@@ Coverage Diff @@
## develop #3479 +/- ##
=============================================
- Coverage 59.60% 59.60% -0.00%
Complexity 112 112
=============================================
Files 2922 2922
Lines 126328 126333 +5
Branches 9412 9412
=============================================
+ Hits 75285 75286 +1
- Misses 48185 48188 +3
- Partials 2858 2859 +1
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Is it feasible to add some kind of unit test for this?