Documentation ¶
Overview ¶
Package joystick provides the Gobot adaptor and drivers for game controllers that are compatible with SDL.
Installing:
This package requires `sdl2` to be installed on your system Then install package with:
go get github.com/hybridgroup/gobot/platforms/joystick
Example:
package main import ( "fmt" "github.com/hybridgroup/gobot" "github.com/hybridgroup/gobot/platforms/joystick" ) func main() { gbot := gobot.NewGobot() joystickAdaptor := joystick.NewJoystickAdaptor("ps3") joystick := joystick.NewJoystickDriver(joystickAdaptor, "ps3", "./platforms/joystick/configs/dualshock3.json", ) work := func() { gobot.On(joystick.Event("square_press"), func(data interface{}) { fmt.Println("square_press") }) gobot.On(joystick.Event("square_release"), func(data interface{}) { fmt.Println("square_release") }) gobot.On(joystick.Event("triangle_press"), func(data interface{}) { fmt.Println("triangle_press") }) gobot.On(joystick.Event("triangle_release"), func(data interface{}) { fmt.Println("triangle_release") }) gobot.On(joystick.Event("left_x"), func(data interface{}) { fmt.Println("left_x", data) }) gobot.On(joystick.Event("left_y"), func(data interface{}) { fmt.Println("left_y", data) }) gobot.On(joystick.Event("right_x"), func(data interface{}) { fmt.Println("right_x", data) }) gobot.On(joystick.Event("right_y"), func(data interface{}) { fmt.Println("right_y", data) }) } robot := gobot.NewRobot("joystickBot", []gobot.Connection{joystickAdaptor}, []gobot.Device{joystick}, work, ) gbot.AddRobot(robot) gbot.Start() }
For further information refer to joystick README: https://github.com/hybridgroup/gobot/blob/master/platforms/joystick/README.md
Index ¶
Constants ¶
const ( // left X joystick event LeftX = "left_x" // left Y joystick event LeftY = "left_y" // right X joystick event RightX = "right_x" // right Y joystick event RightY = "right_y" // L1 button joystick event L1 = "l1" // L2 joystick event L2 = "l2" // R1 button joystick event R1 = "r1" // R2 joystick event R2 = "r2" // up gamepad event Up = "up" // down gamepad event Down = "down" // left gamepad event Left = "left" // right gamepad event Right = "right" // square button press event SquarePress = "square_press" // square button release event SquareRelease = "square_release" // circle button press event CirclePress = "circle_press" // circle button release event CircleRelease = "circle_release" // triangle button press event TrianglePress = "triangle_press" // triangle button release event TriangleRelease = "triangle_release" // X button press event XPress = "x_press" // X button release event XRelease = "x_release" SharePress = "share_press" ShareRelease = "share_release" // options button press event OptionsPress = "options_press" // options button release event OptionsRelease = "options_release" // home button press event HomePress = "home_press" // home button release event HomeRelease = "home_release" // start button press event StartPress = "start_press" // start button release event StartRelease = "start_release" // rt button press event RTPress = "rt_press" // rt button release event RTRelease = "rt_release" // lt button press event LTPress = "lt_press" // lt button release event LTRelease = "lt_release" // Y button press event YPress = "y_press" // Y button release event YRelease = "y_release" // A button press event APress = "a_press" // A button release event ARelease = "a_release" // B button press event BPress = "b_press" // B button release event BRelease = "b_release" // rb button press event RBPress = "rb_press" // rb button release event RBRelease = "rb_release" // lb button press event LBPress = "lb_press" // lb button release event LBRelease = "lb_release" // back button press event BackPress = "back_press" // back button release event BackRelease = "back_release" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type JoystickAdaptor ¶
type JoystickAdaptor struct {
// contains filtered or unexported fields
}
JoystickAdaptor represents a connection to a joystick
func NewJoystickAdaptor ¶
func NewJoystickAdaptor(name string) *JoystickAdaptor
NewJoystickAdaptor returns a new JoystickAdaptor with specified name.
func (*JoystickAdaptor) Connect ¶
func (j *JoystickAdaptor) Connect() (errs []error)
Connect connects to the joystick
func (*JoystickAdaptor) Finalize ¶
func (j *JoystickAdaptor) Finalize() (errs []error)
Finalize closes connection to joystick
func (*JoystickAdaptor) Name ¶
func (j *JoystickAdaptor) Name() string
Name returns the JoystickAdaptors name
type JoystickDriver ¶
JoystickDriver represents a joystick
func NewJoystickDriver ¶
func NewJoystickDriver(a *JoystickAdaptor, name string, config string, v ...time.Duration) *JoystickDriver
NewJoystickDriver returns a new JoystickDriver with a polling interval of 10 Milliseconds given a JoystickAdaptor, name and json button configuration file location.
Optionally accepts:
time.Duration: Interval at which the JoystickDriver is polled for new information
func (*JoystickDriver) Connection ¶
func (j *JoystickDriver) Connection() gobot.Connection
Connection returns the JoystickDrivers connection
func (*JoystickDriver) Halt ¶
func (j *JoystickDriver) Halt() (errs []error)
Halt stops joystick driver
func (*JoystickDriver) Name ¶
func (j *JoystickDriver) Name() string
Name returns the JoystickDrivers name
func (*JoystickDriver) Start ¶
func (j *JoystickDriver) Start() (errs []error)
Start and polls the state of the joystick at the given interval.
Emits the Events:
Error error - On button error Events defined in the json button configuration file. They will have the format: [button]_press [button]_release [axis]