package m31 import "context" // Client owns one serialized Modbus connection. Connect replaces a closed // connection and selects a unit from one through 247. Reads must return the // exact requested count. Writes validate their acknowledgements. All operations // honor caller cancellation. The driver closes each connection before retry. // A caller must not use the client concurrently. type Client interface { Connect(ctx context.Context, address string, unit byte) error Close() error ReadInputs(ctx context.Context, count uint16) ([]bool, error) ReadCoils(ctx context.Context, count uint16) ([]bool, error) ReadRegisters(ctx context.Context, address uint16, count uint16) ([]uint16, error) WriteCoil(ctx context.Context, address uint16, value bool) error WriteCoils(ctx context.Context, address uint16, values []bool) error WriteRegister(ctx context.Context, address uint16, value uint16) error }