Skip to content

getMultipleHoldingRegisters() in Modbus-TCP Server causes a failure when returning a Promise #572

@romor

Description

@romor

According the TypeScript definitions, IServiceVector::getMultipleHoldingRegisters() support returning Promise<number[]>.

However, when this is used, the return length check in servertcp_handler.js::300 will always fail. The corresponding code part is:

        const values = vector.getMultipleHoldingRegisters(address, length, unitID);
        if (values.length === length) {

As values is Promise{[...]} its length check fails and this results in a Modbus exception sent to client instead of the provided read result.

When getMultipleHoldingRegisters() returns number[] directly, without a Promise, everything works as expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions