package main import ( "fmt" "os" "time" "gobot.io/x/gobot" "gobot.io/x/gobot/platforms/ble" "gobot.io/x/gobot/platforms/parrot/minidrone" ) func main() { bleAdaptor := ble.NewClientAdaptor(os.Args[1]) drone := minidrone.NewDriver(bleAdaptor) work := func() { drone.On(minidrone.Battery, func(data interface{}) { fmt.Printf("battery: %d\n", data) }) drone.On(minidrone.FlightStatus, func(data interface{}) { fmt.Printf("flight status: %d\n", data) }) drone.On(minidrone.Takeoff, func(data interface{}) { fmt.Println("taking off...") }) drone.On(minidrone.Hovering, func(data interface{}) { fmt.Println("hovering!") gobot.After(5*time.Second, func() { drone.Land() }) }) drone.On(minidrone.Landing, func(data interface{}) { fmt.Println("landing...") }) drone.On(minidrone.Landed, func(data interface{}) { fmt.Println("landed.") }) time.Sleep(1000 * time.Millisecond) drone.TakeOff() } robot := gobot.NewRobot("minidrone", []gobot.Connection{bleAdaptor}, []gobot.Device{drone}, work, ) robot.Start() }