Skip to content

[EL15] Improve BLE write reliability, CAP setpoint handling, and status decoding#12

Open
maj113 wants to merge 7 commits intomasterfrom
el15-more-features
Open

[EL15] Improve BLE write reliability, CAP setpoint handling, and status decoding#12
maj113 wants to merge 7 commits intomasterfrom
el15-more-features

Conversation

@maj113
Copy link
Copy Markdown
Owner

@maj113 maj113 commented Apr 29, 2026

Summary

This PR improves the EL15 BLE integration in a few focused areas:

  • serialize EL15 writes so set/mode actions do not race against polling
  • add proper CAP-mode setpoint handling using the CAP-specific write/readback path
  • treat CAP setpoints as integer mA values in the UI and protocol bridge
  • improve fault and cycle-end handling, including clear support and short status codes
  • show timer status when the timer flag is active during load-on
  • fix DCR mode so the main readings show actual current and computed power, while DCR-specific values remain in the detail field

Details

Write reliability

EL15 writes now wait for the device notification path instead of racing a poll request. This fixes cases where setpoint or mode changes were unreliable.

CAP mode

CAP mode now uses its dedicated BLE command flow instead of the normal setpoint path:

  • CAP set uses the CAP-specific write opcode
  • CAP readback uses the CAP-specific read opcode
  • the UI displays CAP setpoint in whole mA
  • CAP values are quantized/clamped to the supported integer mA range

Fault and cycle handling

Fault decoding is more explicit now:

  • cycle/timer end / alarm clear goes through the proper packed control command
  • load and lock controls both use the packed control path correctly

Runtime / timer display

When the EL15 timer flag is set and load is on, the runtime field is shown as Timer ... instead of Runtime ....

DCR mode

DCR packets carry a real current field that can be used to compute power. The UI now shows:

  • main readings: voltage / current / computed power
  • detail field: I1 / I2 / R

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant