GitXplorerGitXplorer
j

go-serial

public
634 stars
122 forks
24 issues

Commits

List of commits on branch master.
Unverified
15cf729a72d49e837fa047a4142fa6e4d5ab45a1

Update README.markdown

uunfernandito committed 7 years ago
Unverified
5786d1b837823f99ac8751a7e40811a546287bf3

Add support for RTS/CTS flow control

ssvenschwermer committed 7 years ago
Unverified
c12c5fda6c6f61e8420a95ff84dcb86240921a10

Updated README regarding windows

JJoakimSoderberg committed 7 years ago
Unverified
30e16169a71e9998d4d6932c4971d85357263c00

Restore support for virtual serial devices on OSX (#10).

eereOn committed 8 years ago
Unverified
6f298b3ae27eacbbad51a827dcce21d792fb45e1

Merge pull request #19 from cbrake/master

jjacobsa committed 9 years ago
Unverified
6470743683b0127d88c2b7ae6e1a6cac890eae83

switch to github.com/jacobsa import

ccbrake committed 9 years ago

README

The README file for this repository.

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:

    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.