Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
Combines the segment summary stats and cell heatmap into unified segment rows on the BMS debug page. Each row has a dark controls zone (segment label, view selector, "See more" link) and a light content zone with the hex-tile heatmap and overview stats side by side.
Key architectural decisions:
SegmentRowComponent,SegmentHeatmapComponent,SegmentOverviewComponent, andHexTileComponent— each segment row is self-contained with its own view selectorCellReadingto a single-cell model (from paired cells) so each hex tile maps 1:1 to a cell reading. This simplifies the data flow and makes the heatmap config-driven viaBMS_CONFIGBMS_CONFIGtobms.config.tsto break a circular import betweenbms.utils.tsandtopic.utils.tsALPHA_THERM_CELL_MAP/BETA_THERM_CELL_MAP. The double-hex shape uses a V-notch clip-path polygon to visually distinguish temperature tiles from single-cell voltage/balancing tilesHeatMapService— aglobalView$BehaviorSubject drives the "Set ALL Maps" selector and the initial default for per-row selectors. Per-row selectors subscribe to their segment's view and stay in sync when the global selector changes. TheSelectDropdownComponentnow uses aneffect()to reactively trackdefaultValuechangesclamp()for hex tiles and row heights to support 70–150% browser zoomNotes
#525commits at the base are from the525-generalize-bms-cell-data-modelbranch which this depends onsetIntervalpolling to refresh MQTT values — this could be replaced with proper observable subscriptions in a follow-upTest Cases
Checklist
It can be helpful to check the
ChecksandFiles changedtabs.Please review the contributor guide and reach out to your Tech Lead if anything is unclear.
Please request reviewers and ping on slack only after you've gone through this whole checklist.
package-lock.jsonchanges (unless dependencies have changed)Closes #527