xmodem

package module
v0.0.0-...-705b546 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2023 License: MIT Imports: 8 Imported by: 0

README

xmodem-go

support feature:

  • XModem
  • YModem
  • CRC checksum for all
  • 1k block support for all
  • double CAN to break transport
  • g-option for YModem

An example in folder example.

Documentation

Index

Constants

View Source
const (
	XModem modemMode = iota
	YModem
)
View Source
const (
	ModemFn1k ModemFn = 1 << iota
	ModemFnCRC
	ModemFnCANCAN
	ModemFnBatch
	ModemFnG
	ModemXMin = 0
	ModemXMax = ModemXMin | ModemFn1k | ModemFnCRC | ModemFnCANCAN
	ModemYMin = ModemXMax | ModemFnBatch
	ModemYMax = ModemYMin | ModemFnG
)

Variables

View Source
var FileTooLong = errors.New("file too long")
View Source
var GModeWithWrong = errors.New("g mode with wrong")
View Source
var IOCan = errors.New("send/receive break")
View Source
var NAKTenTimes = errors.New("NAK*10")
View Source
var TooLongFileInfo = errors.New("too long file info")
View Source
var WrongModemType = errors.New("wrong modem type")

Functions

This section is empty.

Types

type File

type File struct {
	Path    string
	Length  int64
	ModTime time.Time
	Mode    fs.FileMode
	Body    io.Reader
}

type Modem

type Modem struct {
	Config ModemConfig
	// contains filtered or unexported fields
}

func NewModem

func NewModem(config ModemConfig, reader io.Reader, writer io.Writer) (*Modem, io.Reader, io.Writer)

NewModem create a modem adapter over a (reader, writer), return the modem and a filtered (reader, writer).

func (*Modem) Receive

func (m *Modem) Receive(fn Receiver) error

Receive receive file/files for any config.

func (*Modem) SendBreak

func (m *Modem) SendBreak() error

func (*Modem) SendBytes

func (m *Modem) SendBytes(file io.Reader) error

SendBytes send a file.

func (*Modem) SendList

func (m *Modem) SendList(files []File) error

SendList send a list of files, only for YModem.

type ModemConfig

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

func XModemConfig

func XModemConfig(fn ModemFn) ModemConfig

func YModemConfig

func YModemConfig(fn ModemFn) ModemConfig

type ModemFn

type ModemFn uint32

type Receiver

type Receiver func(file File)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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