forked from things-go/go-modbus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient_option.go
38 lines (31 loc) · 896 Bytes
/
client_option.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package modbus
import (
"time"
"github.com/goburrow/serial"
)
// ClientProviderOption client provider option for user.
type ClientProviderOption func(ClientProvider)
// WithLogProvider set logger provider.
func WithLogProvider(provider LogProvider) ClientProviderOption {
return func(p ClientProvider) {
p.setLogProvider(provider)
}
}
// WithEnableLogger enable log output when you has set logger.
func WithEnableLogger() ClientProviderOption {
return func(p ClientProvider) {
p.LogMode(true)
}
}
// WithSerialConfig set serial config, only valid on serial.
func WithSerialConfig(config serial.Config) ClientProviderOption {
return func(p ClientProvider) {
p.setSerialConfig(config)
}
}
// WithTCPTimeout set tcp Connect & Read timeout, only valid on TCP.
func WithTCPTimeout(t time.Duration) ClientProviderOption {
return func(p ClientProvider) {
p.setTCPTimeout(t)
}
}