hybridgroup.gobot/driver.go

46 lines
1.1 KiB
Go
Raw Normal View History

2014-04-30 23:10:44 +08:00
package gobot
2013-10-24 13:00:03 +08:00
2014-05-03 18:31:11 +08:00
import "time"
2013-10-24 13:00:03 +08:00
type Driver struct {
2014-06-12 08:41:04 +08:00
Interval time.Duration `json:"interval"`
Pin string `json:"pin"`
Name string `json:"name"`
Commands map[string]func(map[string]interface{}) interface{} `json:"commands"`
Events map[string]*Event `json:"-"`
2013-10-24 13:00:03 +08:00
}
type DriverInterface interface {
Start() bool
2014-04-01 05:25:20 +08:00
Halt() bool
2014-06-07 05:44:16 +08:00
setInterval(time.Duration)
2014-06-14 01:09:03 +08:00
interval() time.Duration
2014-06-07 05:44:16 +08:00
setName(string)
2014-06-14 01:09:03 +08:00
name() string
commands() map[string]func(map[string]interface{}) interface{}
2014-06-07 05:44:16 +08:00
}
func (d *Driver) setInterval(t time.Duration) {
d.Interval = t
}
2014-06-14 01:09:03 +08:00
func (d *Driver) interval() time.Duration {
2014-06-07 05:44:16 +08:00
return d.Interval
}
func (d *Driver) setName(s string) {
d.Name = s
}
2014-06-14 01:09:03 +08:00
func (d *Driver) name() string {
2014-06-07 05:44:16 +08:00
return d.Name
2013-10-24 13:00:03 +08:00
}
2014-06-12 08:41:04 +08:00
2014-06-14 01:09:03 +08:00
func (d *Driver) commands() map[string]func(map[string]interface{}) interface{} {
return d.Commands
2014-06-12 08:41:04 +08:00
}
2014-06-14 01:09:03 +08:00
func (d *Driver) AddCommand(name string, f func(map[string]interface{}) interface{}) {
d.Commands[name] = f
2014-06-12 08:41:04 +08:00
}