@@ -3,6 +3,8 @@ package config
33import (
44 "fmt"
55 "io"
6+ "os"
7+ "time"
68
79 "github.com/lazy-electron-consulting/ve-direct-exporter/internal/util"
810 "gopkg.in/yaml.v2"
@@ -14,21 +16,24 @@ const (
1416 DefaultDataBits = 8
1517 DefaultStopBits = 1
1618 DefaultParity = "N"
19+ DefaultTimeout = 5 * time .Second
1720)
1821
1922type Serial struct {
20- Path string `json:"path,omitempty" yaml:"path,omitempty"`
21- BaudRate int `json:"baudRate,omitempty" yaml:"baudRate,omitempty"`
22- DataBits int `json:"dataBits,omitempty" yaml:"dataBits,omitempty"`
23- StopBits int `json:"stopBits,omitempty" yaml:"stopBits,omitempty"`
24- Parity string `json:"parity,omitempty" yaml:"parity,omitempty"`
23+ Path string `json:"path,omitempty" yaml:"path,omitempty"`
24+ BaudRate int `json:"baudRate,omitempty" yaml:"baudRate,omitempty"`
25+ DataBits int `json:"dataBits,omitempty" yaml:"dataBits,omitempty"`
26+ StopBits int `json:"stopBits,omitempty" yaml:"stopBits,omitempty"`
27+ Parity string `json:"parity,omitempty" yaml:"parity,omitempty"`
28+ Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
2529}
2630
27- func (m * Serial ) defaults () {
28- m .BaudRate = util .Default (m .BaudRate , DefaultBaudRate )
29- m .DataBits = util .Default (m .DataBits , DefaultDataBits )
30- m .StopBits = util .Default (m .StopBits , DefaultStopBits )
31- m .Parity = util .Default (m .Parity , DefaultParity )
31+ func (s * Serial ) defaults () {
32+ s .BaudRate = util .Default (s .BaudRate , DefaultBaudRate )
33+ s .DataBits = util .Default (s .DataBits , DefaultDataBits )
34+ s .StopBits = util .Default (s .StopBits , DefaultStopBits )
35+ s .Parity = util .Default (s .Parity , DefaultParity )
36+ s .Timeout = util .Default (s .Timeout , DefaultTimeout )
3237}
3338
3439type Gauge struct {
@@ -61,3 +66,11 @@ func ParseYaml(r io.Reader) (*Config, error) {
6166 config .defaults ()
6267 return & config , nil
6368}
69+
70+ func ReadYaml (path string ) (* Config , error ) {
71+ f , err := os .Open (path )
72+ if err != nil {
73+ return nil , err
74+ }
75+ return ParseYaml (f )
76+ }
0 commit comments