README

Package to control USB-LED devices

Supported OS

  • OSX
  • Windows
  • Linux

Supported devices

References

Most of the device control knowledge is taken from the NotifierLight project.

Documentation

See GoDoc

Code example

package main

import (
    "fmt"
    "github.com/boombuler/led"
    "image/color"
    "time"
)

var RED color.RGBA = color.RGBA{0xFF, 0x00, 0x00, 0xFF}

func main() {
    for devInfo := range led.Devices() {
        dev, err := devInfo.Open()
        if err != nil {
            fmt.Println(err)
            continue
        }
        defer dev.Close()
        dev.SetColor(RED)

        time.Sleep(2 * time.Second) // Wait 2 seconds because the device will turn off once it is closed!
    }
}
Expand ▾ Collapse ▴

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDeviceClosed = errors.New("Device is already closed")

    Error: Device was already closed and is not ready for interaction anymore

    View Source
    var ErrKeepActiveNotSupported = errors.New("KeepActive is not supported by this device")

      Some devices does not support KeepActive.

      Functions

      func Devices

      func Devices() <-chan DeviceInfo

        Devices returns a channel with all connected LED devices

        Types

        type Device

        type Device interface {
        	// SetColor sets the color of the LED to the closest supported color.
        	SetColor(c color.Color) error
        
        	// SetKeepActive sets a value that tells the device not turn off the device on calling Close. By default the device is turned off!
        	SetKeepActive(v bool) error
        
        	// Close the device and release all resources
        	Close()
        }

          Device is an opened LED device.

          type DeviceInfo

          type DeviceInfo interface {
          	// GetPath returns a system specific path which can be used to find the device
          	GetPath() string
          	// GetType returns the "driver type" of the device
          	GetType() DeviceType
          	// Open opens the device for usage
          	Open() (Device, error)
          }

            DeviceInfo keeps information about a physical LED device

            func ByPath

            func ByPath(path string) (DeviceInfo, error)

              ByPath searches a device by given system specific path. (The path can be obtained from the GetPath func from DeviceInfo)

              type DeviceType

              type DeviceType int

                Device type identifies the device type. the IDs may change on each program start.

                var Blink1 DeviceType

                  Device type: blink(1)

                  var BlinkM DeviceType

                    Device type: LinkM / BlinkM

                    var BlinkStick DeviceType

                      Device type: BlinkStick

                      var Blync DeviceType

                        Device type: Blync

                        var BusyLightLync DeviceType

                          Device type: BusyLight Lync

                          var BusyLightUC DeviceType

                            Device type: BusyLight UC

                            var DealExtreme DeviceType

                              Device type: DealExtreme USBMailNotifier

                              var DreamCheeky DeviceType

                                Device type: DreamCheeky USBMailNotifier

                                func (DeviceType) String

                                func (dt DeviceType) String() string

                                  String returns a representation of the device type