A Go library for dealing with serial ports.
This is a package that allows you to read from and write to serial ports in Go.
Currently this package works only on OS X, Linux and Windows. It could probably be ported to other Unix-like platforms simply by updating a few constants; get in touch if you are interested in helping and have hardware to test with.
Simply use
go get:
go get github.com/jacobsa/go-serial/serial
To update later:
go get -u github.com/jacobsa/go-serial/serial
Set up a
serial.OpenOptionsstruct, then call
serial.Open. For example:
import "fmt" import "log" import "github.com/jacobsa/go-serial/serial"... // Set up options. options := serial.OpenOptions{ PortName: "/dev/tty.usbserial-A8008HlV", BaudRate: 19200, DataBits: 8, StopBits: 1, MinimumReadSize: 4, } // Open the port. port, err := serial.Open(options) if err != nil { log.Fatalf("serial.Open: %v", err) } // Make sure to close it later. defer port.Close() // Write 4 bytes to the port. b := []byte{0x00, 0x01, 0x02, 0x03} n, err := port.Write(b) if err != nil { log.Fatalf("port.Write: %v", err) } fmt.Println("Wrote", n, "bytes.")
See the documentation for the
OpenOptionsstruct in
serial.gofor more information on the supported options.