1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-04-26 13:48:49 +08:00

Add GrovePiezoVibrationSensorDriver

This commit is contained in:
Adrian Zankich 2015-07-08 09:29:36 -07:00
parent 81bc4d2374
commit ae67df6562
2 changed files with 23 additions and 0 deletions

View File

@ -36,6 +36,8 @@ const (
Error = "error"
// Data event
Data = "data"
// Vibration event
Vibration = "vibration"
)
// PwmWriter interface represents an Adaptor which has Pwm capabilities

View File

@ -11,6 +11,7 @@ var _ gobot.Driver = (*GroveSoundSensorDriver)(nil)
var _ gobot.Driver = (*GroveButtonDriver)(nil)
var _ gobot.Driver = (*GroveBuzzerDriver)(nil)
var _ gobot.Driver = (*GroveLightSensorDriver)(nil)
var _ gobot.Driver = (*GrovePiezoVibrationSensorDriver)(nil)
var _ gobot.Driver = (*GroveLedDriver)(nil)
var _ gobot.Driver = (*GroveRotaryDriver)(nil)
var _ gobot.Driver = (*GroveRelayDriver)(nil)
@ -31,6 +32,10 @@ type GroveLightSensorDriver struct {
*AnalogSensorDriver
}
type GrovePiezoVibrationSensorDriver struct {
*AnalogSensorDriver
}
type GroveBuzzerDriver struct {
*BuzzerDriver
}
@ -89,6 +94,22 @@ func NewGroveLightSensorDriver(a AnalogReader, name string, pin string, v ...tim
}
}
func NewGrovePiezoVibrationSensorDriver(a AnalogReader, name string, pin string, v ...time.Duration) *GrovePiezoVibrationSensorDriver {
sensor := &GrovePiezoVibrationSensorDriver{
AnalogSensorDriver: NewAnalogSensorDriver(a, name, pin, v...),
}
sensor.AddEvent(Vibration)
gobot.On(sensor.Event(Data), func(data interface{}) {
if data.(int) == 1023 {
gobot.Publish(sensor.Event(Vibration), data)
}
})
return sensor
}
func NewGroveSoundSensorDriver(a AnalogReader, name string, pin string, v ...time.Duration) *GroveSoundSensorDriver {
return &GroveSoundSensorDriver{
AnalogSensorDriver: NewAnalogSensorDriver(a, name, pin, v...),