Skip to content

Plot individual CCR O2 cells as their own curves #854

Description

@readme42

Split out of #810.

Current state

Per-cell O2 readings reach the chart as o2SensorCurves, but are rendered only as tooltip rows -- Sensor 1/2/3 in the hover tooltip (dive_profile_chart.dart:1227) and the playback tooltip (:2937), both gated behind the ppO2 overlay. There is no LineChartBarData for the cells, no legend entry and no toggle.

The only plotted curve is the aggregate: the computer's voted ppO2, or the average of the cells when the computer logs no aggregate (ppO2FromSensorAverage).

Why it matters

The aggregate is what hides a failing cell. A cell drifting away from its neighbours is visible as a divergence between traces and invisible in a voted average -- which is the reason CCR divers look at cells at all. Shearwater Cloud plots them, and the reporter of #810 expected the same.

Scope

Plot each populated cell as its own line, on the ppO2 axis mapping, behind its own legend toggle.

  • _buildPpO2Line (dive_profile_chart.dart:4456) is the template: same normalization, same axis.
  • Legend needs a hasO2SensorData config flag, a toggle in ProfileLegendState, and a chip.
  • Colours must stay distinct from the aggregate (0xFF00ACC1) and read as a family; the tooltip bullet currently uses 0xFF80DEEA for every cell, which needs to become per-cell once they are traces.
  • Cells are null where a computer reports only some, so segments must break rather than bridge.

Notes

Depends on data actually arriving: #853 (Shearwater Cloud DB import drops the cells) and the libdivecomputer default-calibration guard discussed in #810.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions