gobot.io/x/gobot/v2@v2.1.0/examples/joystick_xbox360.go (about)

     1  //go:build example
     2  // +build example
     3  
     4  //
     5  // Do not build by default.
     6  
     7  package main
     8  
     9  import (
    10  	"fmt"
    11  
    12  	"gobot.io/x/gobot/v2"
    13  	"gobot.io/x/gobot/v2/platforms/joystick"
    14  )
    15  
    16  func main() {
    17  	joystickAdaptor := joystick.NewAdaptor()
    18  	stick := joystick.NewDriver(joystickAdaptor, joystick.Xbox360)
    19  
    20  	work := func() {
    21  		stick.On(joystick.APress, func(data interface{}) {
    22  			fmt.Println("a_press")
    23  		})
    24  		stick.On(joystick.ARelease, func(data interface{}) {
    25  			fmt.Println("a_release")
    26  		})
    27  		stick.On(joystick.BPress, func(data interface{}) {
    28  			fmt.Println("b_press")
    29  		})
    30  		stick.On(joystick.BRelease, func(data interface{}) {
    31  			fmt.Println("b_release")
    32  		})
    33  		stick.On(joystick.UpPress, func(data interface{}) {
    34  			fmt.Println("up", data)
    35  		})
    36  		stick.On(joystick.DownPress, func(data interface{}) {
    37  			fmt.Println("down", data)
    38  		})
    39  		stick.On(joystick.LeftPress, func(data interface{}) {
    40  			fmt.Println("left", data)
    41  		})
    42  		stick.On(joystick.RightPress, func(data interface{}) {
    43  			fmt.Println("right", data)
    44  		})
    45  		stick.On(joystick.LeftX, func(data interface{}) {
    46  			fmt.Println("left_x", data)
    47  		})
    48  		stick.On(joystick.LeftY, func(data interface{}) {
    49  			fmt.Println("left_y", data)
    50  		})
    51  		stick.On(joystick.RightX, func(data interface{}) {
    52  			fmt.Println("right_x", data)
    53  		})
    54  		stick.On(joystick.RightY, func(data interface{}) {
    55  			fmt.Println("right_y", data)
    56  		})
    57  	}
    58  
    59  	robot := gobot.NewRobot("joystickBot",
    60  		[]gobot.Connection{joystickAdaptor},
    61  		[]gobot.Device{stick},
    62  		work,
    63  	)
    64  
    65  	robot.Start()
    66  }