package main

import (
	"fmt"
        "os"
        /*"time"*/

        "gobot.io/x/gobot"
        "gobot.io/x/gobot/platforms/ble"
        "gobot.io/x/gobot/platforms/sphero/bb8"
	"gobot.io/x/gobot/platforms/keyboard"
)

func main() {
        bleAdaptor := ble.NewClientAdaptor(os.Args[1])
        bb8 := bb8.NewDriver(bleAdaptor)
        keys := keyboard.NewDriver()

        work := func() {
            /*    gobot.Every(1*time.Second, func() {
                        r := uint8(gobot.Rand(255))
                        g := uint8(gobot.Rand(255))
                        b := uint8(gobot.Rand(255))
                        bb8.SetRGB(r, g, b)
                }) */
	keys.On(keyboard.Key, func(data interface{}) {
            key := data.(keyboard.KeyEvent)

            if key.Key == keyboard.ArrowUp{
                fmt.Println("go foward")
		bb8.Roll(60, 0)
            } else if key.Key == keyboard.ArrowDown{
                fmt.Println("go backward")
                bb8.Roll(60, 180)
            } else if key.Key == keyboard.ArrowRight{
                fmt.Println("go right")
                bb8.Roll(60, 90)
            } else if key.Key == keyboard.ArrowLeft{
                fmt.Println("go left")
		bb8.Roll(60, 270)
            } else if key.Key == keyboard.S{
                fmt.Println("Stop!")
		bb8.Stop()
            } else {
                fmt.Println("keyboard event!", key, key.Char)
            }
        })

        }

        robot := gobot.NewRobot("bb",
                []gobot.Connection{bleAdaptor},
                []gobot.Device{bb8, keys},
                work,
        )

        robot.Start()
}

