gobot.io/x/gobot/v2@v2.1.0/drivers/gpio/grove_drivers.go (about) 1 package gpio 2 3 import ( 4 "time" 5 ) 6 7 // GroveRelayDriver represents a Relay with a Grove connector 8 type GroveRelayDriver struct { 9 *RelayDriver 10 } 11 12 // NewGroveRelayDriver return a new GroveRelayDriver given a DigitalWriter and pin. 13 // 14 // Adds the following API Commands: 15 // "Toggle" - See RelayDriver.Toggle 16 // "On" - See RelayDriver.On 17 // "Off" - See RelayDriver.Off 18 func NewGroveRelayDriver(a DigitalWriter, pin string) *GroveRelayDriver { 19 return &GroveRelayDriver{ 20 RelayDriver: NewRelayDriver(a, pin), 21 } 22 } 23 24 // GroveLedDriver represents an LED with a Grove connector 25 type GroveLedDriver struct { 26 *LedDriver 27 } 28 29 // NewGroveLedDriver return a new GroveLedDriver given a DigitalWriter and pin. 30 // 31 // Adds the following API Commands: 32 // "Brightness" - See LedDriver.Brightness 33 // "Toggle" - See LedDriver.Toggle 34 // "On" - See LedDriver.On 35 // "Off" - See LedDriver.Off 36 func NewGroveLedDriver(a DigitalWriter, pin string) *GroveLedDriver { 37 return &GroveLedDriver{ 38 LedDriver: NewLedDriver(a, pin), 39 } 40 } 41 42 // GroveBuzzerDriver represents a buzzer 43 // with a Grove connector 44 type GroveBuzzerDriver struct { 45 *BuzzerDriver 46 } 47 48 // NewGroveBuzzerDriver return a new GroveBuzzerDriver given a DigitalWriter and pin. 49 func NewGroveBuzzerDriver(a DigitalWriter, pin string) *GroveBuzzerDriver { 50 return &GroveBuzzerDriver{ 51 BuzzerDriver: NewBuzzerDriver(a, pin), 52 } 53 } 54 55 // GroveButtonDriver represents a button sensor 56 // with a Grove connector 57 type GroveButtonDriver struct { 58 *ButtonDriver 59 } 60 61 // NewGroveButtonDriver returns a new GroveButtonDriver with a polling interval of 62 // 10 Milliseconds given a DigitalReader and pin. 63 // 64 // Optionally accepts: 65 // time.Duration: Interval at which the ButtonDriver is polled for new information 66 func NewGroveButtonDriver(a DigitalReader, pin string, v ...time.Duration) *GroveButtonDriver { 67 return &GroveButtonDriver{ 68 ButtonDriver: NewButtonDriver(a, pin, v...), 69 } 70 } 71 72 // GroveTouchDriver represents a touch button sensor 73 // with a Grove connector 74 type GroveTouchDriver struct { 75 *ButtonDriver 76 } 77 78 // NewGroveTouchDriver returns a new GroveTouchDriver with a polling interval of 79 // 10 Milliseconds given a DigitalReader and pin. 80 // 81 // Optionally accepts: 82 // time.Duration: Interval at which the ButtonDriver is polled for new information 83 func NewGroveTouchDriver(a DigitalReader, pin string, v ...time.Duration) *GroveTouchDriver { 84 return &GroveTouchDriver{ 85 ButtonDriver: NewButtonDriver(a, pin, v...), 86 } 87 } 88 89 // GroveMagneticSwitchDriver represent a magnetic 90 // switch sensor with a Grove connector 91 type GroveMagneticSwitchDriver struct { 92 *ButtonDriver 93 } 94 95 // NewGroveMagneticSwitchDriver returns a new GroveMagneticSwitchDriver with a polling interval of 96 // 10 Milliseconds given a DigitalReader, name and pin. 97 // 98 // Optionally accepts: 99 // time.Duration: Interval at which the ButtonDriver is polled for new information 100 func NewGroveMagneticSwitchDriver(a DigitalReader, pin string, v ...time.Duration) *GroveMagneticSwitchDriver { 101 return &GroveMagneticSwitchDriver{ 102 ButtonDriver: NewButtonDriver(a, pin, v...), 103 } 104 }