gobot.io/x/gobot/v2@v2.1.0/examples/joystick_xboxone.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 joystick := joystick.NewDriver(joystickAdaptor, joystick.XboxOne) 19 20 work := func() { 21 22 // start button 23 joystick.On(joystick.Event("start_press"), func(data interface{}) { 24 fmt.Println("start_press") 25 }) 26 joystick.On(joystick.Event("start_release"), func(data interface{}) { 27 fmt.Println("start_release") 28 }) 29 30 // back button 31 joystick.On(joystick.Event("back_press"), func(data interface{}) { 32 fmt.Println("back_press") 33 }) 34 joystick.On(joystick.Event("back_release"), func(data interface{}) { 35 fmt.Println("back_release") 36 }) 37 38 // a button 39 joystick.On(joystick.Event("a_press"), func(data interface{}) { 40 fmt.Println("a_press") 41 }) 42 joystick.On(joystick.Event("a_release"), func(data interface{}) { 43 fmt.Println("a_release") 44 }) 45 46 // b button 47 joystick.On(joystick.Event("b_press"), func(data interface{}) { 48 fmt.Println("b_press") 49 }) 50 joystick.On(joystick.Event("b_release"), func(data interface{}) { 51 fmt.Println("b_release") 52 }) 53 54 // x button 55 joystick.On(joystick.Event("x_press"), func(data interface{}) { 56 fmt.Println("x_press") 57 }) 58 joystick.On(joystick.Event("x_release"), func(data interface{}) { 59 fmt.Println("x_release") 60 }) 61 62 // y button 63 joystick.On(joystick.Event("y_press"), func(data interface{}) { 64 fmt.Println("y_press") 65 }) 66 joystick.On(joystick.Event("y_release"), func(data interface{}) { 67 fmt.Println("y_release") 68 }) 69 70 // up dpad 71 joystick.On(joystick.Event("up_press"), func(data interface{}) { 72 fmt.Println("up_press", data) 73 }) 74 joystick.On(joystick.Event("up_release"), func(data interface{}) { 75 fmt.Println("up_release", data) 76 }) 77 78 // down dpad 79 joystick.On(joystick.Event("down_press"), func(data interface{}) { 80 fmt.Println("down_press") 81 }) 82 joystick.On(joystick.Event("down_release"), func(data interface{}) { 83 fmt.Println("down_release") 84 }) 85 86 // left dpad 87 joystick.On(joystick.Event("left_press"), func(data interface{}) { 88 fmt.Println("left_press") 89 }) 90 joystick.On(joystick.Event("left_release"), func(data interface{}) { 91 fmt.Println("left_release") 92 }) 93 94 // right dpad 95 joystick.On(joystick.Event("right_press"), func(data interface{}) { 96 fmt.Println("right_press") 97 }) 98 joystick.On(joystick.Event("right_release"), func(data interface{}) { 99 fmt.Println("right_release") 100 }) 101 102 // rt trigger 103 joystick.On(joystick.Event("rt"), func(data interface{}) { 104 fmt.Println("rt", data) 105 }) 106 107 // lt trigger 108 joystick.On(joystick.Event("lt"), func(data interface{}) { 109 fmt.Println("lt", data) 110 }) 111 112 // lb button 113 joystick.On(joystick.Event("lb_press"), func(data interface{}) { 114 fmt.Println("lb_press") 115 }) 116 joystick.On(joystick.Event("lb_release"), func(data interface{}) { 117 fmt.Println("lb_release") 118 }) 119 120 //rb button 121 joystick.On(joystick.Event("rb_press"), func(data interface{}) { 122 fmt.Println("rb_press") 123 }) 124 joystick.On(joystick.Event("rb_release"), func(data interface{}) { 125 fmt.Println("rb_release") 126 }) 127 128 // rx stick 129 joystick.On(joystick.Event("right_x"), func(data interface{}) { 130 fmt.Println("right_x", data) 131 }) 132 133 //ry stick 134 joystick.On(joystick.Event("right_y"), func(data interface{}) { 135 fmt.Println("right_y", data) 136 }) 137 138 // right_stick button 139 joystick.On(joystick.Event("right_stick_press"), func(data interface{}) { 140 fmt.Println("right_stick_press") 141 }) 142 joystick.On(joystick.Event("right_stick_release"), func(data interface{}) { 143 fmt.Println("right_stick_release") 144 }) 145 146 //lx stick 147 joystick.On(joystick.Event("left_x"), func(data interface{}) { 148 fmt.Println("left_x", data) 149 }) 150 151 //ly stick 152 joystick.On(joystick.Event("left_y"), func(data interface{}) { 153 fmt.Println("left_y", data) 154 }) 155 156 // left_stick button 157 joystick.On(joystick.Event("left_stick_press"), func(data interface{}) { 158 fmt.Println("left_stick_press") 159 }) 160 joystick.On(joystick.Event("left_stick_release"), func(data interface{}) { 161 fmt.Println("left_stick_release") 162 }) 163 164 } 165 166 robot := gobot.NewRobot("joystickBot", 167 []gobot.Connection{joystickAdaptor}, 168 []gobot.Device{joystick}, 169 work, 170 ) 171 172 robot.Start() 173 }