func (k *KeyboardDriver) Halt() (errs []error) {
	if originalState != "" {
		return restore()
	}
	return
}
Halt stops camera driver
package keyboard
import (
	"log"
	"os"
	"github.com/hybridgroup/gobot"
)
const (
	Key = "key"
)
type KeyboardDriver struct {
	name    string
	connect func(*KeyboardDriver) (err error)
	listen  func(*KeyboardDriver)
	stdin   *os.File
	gobot.Eventer
}
func NewKeyboardDriver(name string) *KeyboardDriver {
	k := &KeyboardDriver{
		name: name,
		connect: func(k *KeyboardDriver) (err error) {
			if err := configure(); err != nil {
				return err
			}
			k.stdin = os.Stdin
			return
		},
		listen: func(k *KeyboardDriver) {
			ctrlc := bytes{3}
			for {
				var keybuf bytes
				k.stdin.Read(keybuf[0:3])
				if keybuf == ctrlc {
					proc, err := os.FindProcess(os.Getpid())
					if err != nil {
						log.Fatal(err)
					}
					proc.Signal(os.Interrupt)
					break
				}
				k.Publish(Key, Parse(keybuf))
			}
		},
		Eventer: gobot.NewEventer(),
	}
	k.AddEvent(Key)
	return k
}
func (k *KeyboardDriver) Name() string                 { return k.name }
func (k *KeyboardDriver) Connection() gobot.Connection { return nil }
func (k *KeyboardDriver) Start() (errs []error) {
	if err := k.connect(k); err != nil {
		return []error{err}
	}
	go k.listen(k)
	return
}