Skip to content

[Bug]: Cannot define DO and RO for more than 16 channels (coil/register overflow issue) #209

@kratochvil01

Description

@kratochvil01

Prerequisites

  • I am running the latest Evok version
  • I have searched other issues

Describe the bug

Currently, EVOK does not support defining Digital Outputs (DO) or Relay Outputs (RO) for more than 16 channels.

The implementation uses coils for writing and registers for reading, but it fails to handle cases where the channel index exceeds 16. In such situations, the logic does not properly manage the overflow into the next register/coil block, making it impossible to work with devices that expose more than 16 outputs.

Evok log

No response

Steps to reproduce

  1. Configure a device with more than 16 DO/RO channels.
  2. Attempt to access channel 17 (or higher).
  3. Observe that the operation fails, as EVOK does not process the overflow into the next register.

Expected behavior

EVOK should handle more than 16 DO/RO channels correctly by managing the overflow into subsequent coil/register addresses.

Actual behavior

Attempts to use channels beyond 16 fail, as EVOK only considers the first register/coil block.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions