core

package
v2.0.24+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2018 License: LGPL-3.0 Imports: 12 Imported by: 5

Documentation

Index

Constants

View Source
const (
	VendorT1            = 0x534c
	ProductT1Firmware   = 0x0001
	VendorT2            = 0x1209
	ProductT2Bootloader = 0x53C0
	ProductT2Firmware   = 0x53C1
)

Variables

View Source
var (
	ErrWrongPrevSession = errors.New("wrong previous session")
	ErrSessionNotFound  = errors.New("session not found")
	ErrMalformedData    = errors.New("malformed data")
	ErrOtherCall        = errors.New("other call in progress")
)

Functions

This section is empty.

Types

type Core

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

func New

func New(bus USBBus, log *memorywriter.MemoryWriter) *Core

func (*Core) Acquire

func (c *Core) Acquire(path, prev string) (string, error)

func (*Core) Call

func (c *Core) Call(body []byte, session string, skipRead bool, closeNotify <-chan bool) ([]byte, error)

func (*Core) Enumerate

func (c *Core) Enumerate() ([]EnumerateEntry, error)

func (*Core) Listen

func (c *Core) Listen(entries []EnumerateEntry, closeNotify <-chan bool) ([]EnumerateEntry, error)

func (*Core) Log

func (c *Core) Log(s string)

func (*Core) Release

func (c *Core) Release(session string) error

type DeviceType

type DeviceType int
const (
	TypeT1Hid        DeviceType = 0
	TypeT1Webusb     DeviceType = 1
	TypeT1WebusbBoot DeviceType = 2
	TypeT2           DeviceType = 3
	TypeT2Boot       DeviceType = 4
	TypeEmulator     DeviceType = 5
)

type EnumerateEntries

type EnumerateEntries []EnumerateEntry

func (EnumerateEntries) Len

func (entries EnumerateEntries) Len() int

func (EnumerateEntries) Less

func (entries EnumerateEntries) Less(i, j int) bool

func (EnumerateEntries) Sort

func (entries EnumerateEntries) Sort()

func (EnumerateEntries) Swap

func (entries EnumerateEntries) Swap(i, j int)

type EnumerateEntry

type EnumerateEntry struct {
	Path    string     `json:"path"`
	Vendor  int        `json:"vendor"`
	Product int        `json:"product"`
	Session *string    `json:"session"`
	Type    DeviceType `json:"-"` // used only in status page, not in JSON
}

type USBBus

type USBBus interface {
	Enumerate() ([]USBInfo, error)
	Connect(path string) (USBDevice, error)
	Has(path string) bool
}

type USBDevice

type USBDevice interface {
	io.ReadWriter
	Close(disconnected bool) error
}

type USBInfo

type USBInfo struct {
	Path      string
	VendorID  int
	ProductID int
	Type      DeviceType
}

Jump to

Keyboard shortcuts

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