2014-05-02 17:22:05 -05:00
|
|
|
package pebble
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/hybridgroup/gobot"
|
|
|
|
)
|
|
|
|
|
|
|
|
type PebbleDriver struct {
|
|
|
|
gobot.Driver
|
2014-05-23 17:09:18 -05:00
|
|
|
Messages []string
|
|
|
|
Adaptor *PebbleAdaptor
|
2014-05-02 17:22:05 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
type PebbleInterface interface {
|
|
|
|
}
|
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
func NewPebbleDriver(adaptor *PebbleAdaptor, name string) *PebbleDriver {
|
|
|
|
return &PebbleDriver{
|
|
|
|
Driver: gobot.Driver{
|
|
|
|
Name: name,
|
|
|
|
Events: map[string]chan interface{}{
|
|
|
|
"button": make(chan interface{}),
|
|
|
|
"accel": make(chan interface{}),
|
|
|
|
"tap": make(chan interface{}),
|
|
|
|
},
|
|
|
|
Commands: []string{
|
|
|
|
"PublishEventC",
|
|
|
|
"SendNotificationC",
|
|
|
|
"PendingMessageC",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
Messages: []string{},
|
|
|
|
Adaptor: adaptor,
|
|
|
|
}
|
2014-05-02 17:22:05 -05:00
|
|
|
}
|
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
func (d *PebbleDriver) Start() bool { return true }
|
2014-05-02 17:22:05 -05:00
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
func (d *PebbleDriver) Halt() bool { return true }
|
|
|
|
|
|
|
|
func (d *PebbleDriver) PublishEvent(name string, data string) {
|
|
|
|
gobot.Publish(d.Events[name], data)
|
2014-05-02 17:22:05 -05:00
|
|
|
}
|
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
func (d *PebbleDriver) SendNotification(message string) string {
|
|
|
|
d.Messages = append(d.Messages, message)
|
|
|
|
return message
|
|
|
|
}
|
2014-05-02 17:22:05 -05:00
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
func (d *PebbleDriver) PendingMessage() string {
|
|
|
|
if len(d.Messages) < 1 {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
m := d.Messages[0]
|
|
|
|
d.Messages = d.Messages[1:]
|
2014-05-02 17:22:05 -05:00
|
|
|
|
2014-05-23 17:09:18 -05:00
|
|
|
return m
|
2014-05-02 17:22:05 -05:00
|
|
|
}
|