main.go 736 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. import (
  3. "flag"
  4. "log"
  5. "net/http"
  6. "douglasthrift.net/dtrobots/gamepad"
  7. )
  8. func main() {
  9. var (
  10. device string
  11. listen string
  12. mode driveMode
  13. )
  14. flag.StringVar(&device, "gamepad", "/dev/input/event0", "the gamepad device path")
  15. flag.StringVar(&listen, "listen", "localhost:8080", "the HTTP listen address and port")
  16. flag.Var(&mode, "mode", "the drive mode (default \"tank\")")
  17. flag.Parse()
  18. g, err := gamepad.NewGamepad(device, gamepad.All)
  19. if err != nil {
  20. log.Fatalf("error creating gamepad: %v", err)
  21. }
  22. go control(mode, g)
  23. go log.Fatalf("error reading from gamepad: %v", g.Read())
  24. log.Print("HTTP server started")
  25. log.Fatalf("error listening and serving: %v", http.ListenAndServe(listen, nil))
  26. }