/
shutter.go
31 lines (27 loc) · 873 Bytes
/
shutter.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
package integration
import (
"github.com/balazsgrill/wscgo/config"
"github.com/balazsgrill/wscgo/devices"
"github.com/balazsgrill/wscgo/protocol"
)
type shutterConfigPartParser struct{}
func (*shutterConfigPartParser) ParseConfiguration(section config.ConfigurationSection, context config.ConfigurationContext) error {
s := &devices.ShutterConfig{}
section.FillData(s)
c := protocol.CreateCoverConfig(section.GetID())
section.FillData(&c.BasicDeviceConfig)
section.FillData(c)
context.AddDeviceInitializer(config.SLDevice, func(context config.RuntimeContext) error {
shutter, err := devices.CreateShutter(s)
if err != nil {
return err
}
context.AddDevice(shutter)
context.AddProtocol(protocol.IntegrateCover(shutter, c))
return nil
})
return nil
}
func init() {
config.RegisterConfigurationPartParser("shutter", &shutterConfigPartParser{})
}