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  }