]> git.giacomolli.uk - onehouse/blob - driver/m31/client.go
140e13e76abbf07135295fdded541311083a5057
[onehouse] / driver / m31 / client.go
1 package m31
2
3 import "context"
4
5 // Client owns one serialized Modbus connection. Connect replaces a closed
6 // connection and selects a unit from one through 247. Reads must return the
7 // exact requested count. Writes validate their acknowledgements. All operations
8 // honor caller cancellation. The driver closes each connection before retry.
9 // A caller must not use the client concurrently.
10 type Client interface {
11 Connect(ctx context.Context, address string, unit byte) error
12 Close() error
13 ReadInputs(ctx context.Context, count uint16) ([]bool, error)
14 ReadCoils(ctx context.Context, count uint16) ([]bool, error)
15 ReadRegisters(ctx context.Context, address uint16, count uint16) ([]uint16, error)
16 WriteCoil(ctx context.Context, address uint16, value bool) error
17 WriteCoils(ctx context.Context, address uint16, values []bool) error
18 WriteRegister(ctx context.Context, address uint16, value uint16) error
19 }