termios

package
v0.0.0-...-ba47a78 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2020 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Overview

Package termios implements basic termios operations including getting a tty struct, termio struct, a winsize struct, and setting raw mode. To get a TTY, call termios.New. To get a Termios, call tty.Get(); to set it, call tty.Set(*Termios) To set raw mode and then restore, one can do: tty := termios.NewTTY() restorer, err := tty.Raw() do things tty.Set(restorer)

Index

Constants

View Source
const (
	I = iota // Input control
	O        // Output control
	C        // Control
	L        // Line control
)

These consts describe the offsets into the termios struct of various elements.

Variables

This section is empty.

Functions

func GTTY

func GTTY(fd int) (*tty, error)

GTTY returns the tty struct for a given fd. It is like a New in many packages but the name GTTY is a tradition.

func GetTermios

func GetTermios(fd uintptr) (*unix.Termios, error)

func GetWinSize

func GetWinSize(fd uintptr) (*unix.Winsize, error)

func MakeRaw

func MakeRaw(term *unix.Termios) *unix.Termios

func MakeSerialBaud

func MakeSerialBaud(term *unix.Termios, baud int) (*unix.Termios, error)

MakeSerialBaud updates the Termios to set the baudrate

func MakeSerialDefault

func MakeSerialDefault(term *unix.Termios) *unix.Termios

MakeSerialDefault updates the Termios to typical serial configuration:

  • Ignore all flow control (modem, hardware, software...)
  • Translate carriage return to newline on input
  • Enable canonical mode: Input is available line by line, with line editing enabled (ERASE, KILL are supported)
  • Local ECHO is added (and handled by line editing)
  • Map newline to carriage return newline on output

func Raw

func Raw(fd int) (*tty, error)

Raw sets a tty into raw more, returning a tty struct

func SetTermios

func SetTermios(fd uintptr, ti *unix.Termios) error

func SetWinSize

func SetWinSize(fd uintptr, w *unix.Winsize) error

Types

type TTY

type TTY struct {
	// contains filtered or unexported fields
}

TTY is a wrapper that only allows Read and Write.

func New

func New() (*TTY, error)

New creates a new TTY using /dev/tty

func NewTTYS

func NewTTYS(port string) (*TTY, error)

func NewWithDev

func NewWithDev(device string) (*TTY, error)

NewWithDev creates a new TTY with the specified device

func (*TTY) Ctty

func (t *TTY) Ctty(c *exec.Cmd)

func (*TTY) Get

func (t *TTY) Get() (*unix.Termios, error)

func (*TTY) GetWinSize

func (t *TTY) GetWinSize() (*unix.Winsize, error)

func (*TTY) Raw

func (t *TTY) Raw() (*unix.Termios, error)

func (*TTY) Read

func (t *TTY) Read(b []byte) (int, error)

func (*TTY) Serial

func (t *TTY) Serial(baud int) (*unix.Termios, error)

Serial configure the serial TTY at given baudrate with ECHO and character conversion (CRNL, ERASE, KILL)

func (*TTY) Set

func (t *TTY) Set(ti *unix.Termios) error

func (*TTY) SetWinSize

func (t *TTY) SetWinSize(w *unix.Winsize) error

func (*TTY) Write

func (t *TTY) Write(b []byte) (int, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL