go-serial

A Go library for dealing with serial ports.

  • Owner: jacobsa/go-serial
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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.

Main metrics

Overview
Name With Ownerjacobsa/go-serial
Primary LanguageGo
Program languageProcessing (Language Count: 3)
Platform
License:Apache License 2.0
所有者活动
Created At2011-10-19 03:59:12
Pushed At2021-09-29 14:28:39
Last Commit At2018-01-30 13:41:00
Release Count0
用户参与
Stargazers Count643
Watchers Count23
Fork Count123
Commits Count70
Has Issues Enabled
Issues Count31
Issue Open Count19
Pull Requests Count13
Pull Requests Open Count5
Pull Requests Close Count3
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private