Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jacobsa/go-serial
A Go library for dealing with serial ports.
https://github.com/jacobsa/go-serial
Last synced: 8 days ago
JSON representation
A Go library for dealing with serial ports.
- Host: GitHub
- URL: https://github.com/jacobsa/go-serial
- Owner: jacobsa
- License: apache-2.0
- Created: 2011-10-19T03:59:12.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2021-09-29T14:28:39.000Z (about 3 years ago)
- Last Synced: 2024-08-01T13:29:11.920Z (3 months ago)
- Language: Go
- Homepage:
- Size: 49.8 KB
- Stars: 624
- Watchers: 24
- Forks: 120
- Open Issues: 24
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE
Awesome Lists containing this project
README
go-serial
=========This is a package that allows you to read from and write to serial ports in Go.
OS support
----------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.Installation
------------Simply use `go get`:
go get github.com/jacobsa/go-serial/serial
To update later:
go get -u github.com/jacobsa/go-serial/serial
Use
---Set up a `serial.OpenOptions` struct, then call `serial.Open`. For example:
````go
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 `OpenOptions` struct in `serial.go` for more
information on the supported options.