package main import ( "flag" "fmt" "log" "os" "git.jettsang.com/drivers/lobot/network" "git.jettsang.com/drivers/lobot/servo" "git.jettsang.com/drivers/lobot/servo/lx" "github.com/jacobsa/go-serial/serial" ) var ( portName = flag.String("port", "/dev/tty.usbserial-A9ITPZVR", "the serial port path") servoID = flag.Int("id", 1, "the ID of the servo to move") position = flag.Int("position", 512, "the goal position to set") debug = flag.Bool("debug", false, "show serial traffic") ) func main() { flag.Parse() options := serial.OpenOptions{ PortName: *portName, BaudRate: 115200, DataBits: 8, StopBits: 1, MinimumReadSize: 0, InterCharacterTimeout: 100, } serial, err := serial.Open(options) if err != nil { fmt.Printf("open error: %s\n", err) os.Exit(1) } network := network.New(serial) if *debug { network.Logger = log.New(os.Stderr, "", log.LstdFlags) } network.Flush() var servo *servo.Servo servo, err = lx.New(network, *servoID) err = servo.MoveTimeWrite(uint16(*position), 500) if err != nil { fmt.Printf("move error: %s\n", err) os.Exit(1) } }