stdfu

package module
v1.0.17 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2019 License: LGPL-3.0 Imports: 4 Imported by: 1

README

STDFU Library for using the MD-380 (and other) DMR Radios in DFU mode

This library provides a go API for using the MD-380 (and other DMR radios) in DFU (Device Firmware Update) mode.

Author

Dale Farnsworth

dale@farnsworth.org

IRC: freenode channel: #md380, user: dfarnsworth

Documentation

Index

Constants

View Source
const (
	StDfuErrorOffset = 0x12340000

	StDfuNoError      = StDfuErrorOffset
	StDfuMemory       = (StDfuErrorOffset + 1)
	StDfuBadParameter = (StDfuErrorOffset + 2)

	StDfuNotImplemented  = (StDfuErrorOffset + 3)
	StDfuEnumFinished    = (StDfuErrorOffset + 4)
	StDfuOpenDriverError = (StDfuErrorOffset + 5)

	StDfuErrorDescriptorBuilding = (StDfuErrorOffset + 6)
	StDfuPipeCreationError       = (StDfuErrorOffset + 7)
	StDfuPipeResetError          = (StDfuErrorOffset + 8)
	StDfuPipeAbortError          = (StDfuErrorOffset + 9)
	StDfuStringDescriptorError   = (StDfuErrorOffset + 0xA)

	StDfuDriverIsClosed      = (StDfuErrorOffset + 0xB)
	StDfuVendorRqPB          = (StDfuErrorOffset + 0xC)
	StDfuErrorWhileReading   = (StDfuErrorOffset + 0xD)
	StDfuErrorBeforeReading  = (StDfuErrorOffset + 0xE)
	StDfuErrorWhileWriting   = (StDfuErrorOffset + 0xF)
	StDfuErrorBeforeWriting  = (StDfuErrorOffset + 0x10)
	StDfuDeviceResetError    = (StDfuErrorOffset + 0x11)
	StDfuCantUseUnplugEvent  = (StDfuErrorOffset + 0x12)
	StDfuIncorrectBufferSize = (StDfuErrorOffset + 0x13)
	StDfuDescriptorNotFound  = (StDfuErrorOffset + 0x14)
	StDfuPipesAreClosed      = (StDfuErrorOffset + 0x15)
	StDfuPipesAreOpen        = (StDfuErrorOffset + 0x16)

	StDfuTimeoutWaitingForReset = (StDfuErrorOffset + 0x17)

	StateIdle                 = 0x00
	StateDetach               = 0x01
	StateDfuIdle              = 0x02
	StateDfuDownloadSync      = 0x03
	StateDfuDownloadBusy      = 0x04
	StateDfuDownloaDIdle      = 0x05
	StateDfuManifestSync      = 0x06
	StateDfuManifest          = 0x07
	StateDfuManifestWaitReset = 0x08
	StateDfuUploadIdle        = 0x09
	StateDfuError             = 0x0A

	StateDfuUploadSync = 0x91
	StateDfuUploadBusy = 0x92

	StatusOK            = 0x00
	StatusErrTarget     = 0x01
	StatusErrFile       = 0x02
	StatusErrWrite      = 0x03
	StatusErrErase      = 0x04
	StatusErrCheckerase = 0x05
	StatusErrProg       = 0x06
	StatusErrVerify     = 0x07
	StatusErrAddress    = 0x08
	StatusErrNotDone    = 0x09
	StatusErrFirmware   = 0x0A
	StatusErrVendor     = 0x0B
	StatusErrUSBR       = 0x0C
	StatusErrPOR        = 0x0D
	StatusErrUnknown    = 0x0E
	StatusErrStalledPkt = 0x0F

	AttrDnloadCapable         = 0x01
	AttrUploadCapable         = 0x02
	AttrManifestationTolerant = 0x04
	AttrWillDetach            = 0x08
	AttrSTCanAccelerate       = 0x80
)

Variables

View Source
var ErrDevNotFound = fmt.Errorf("No devices found")
View Source
var ErrMultipleDevs = fmt.Errorf("Multiple devices found")

Functions

This section is empty.

Types

type DfuStatus

type DfuStatus struct {
	Status      Status
	PollTimeout int
	State       State
	IString     int
}

type StDfu

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

func New

func New() (*StDfu, error)

func (*StDfu) Abort

func (dfu *StDfu) Abort() error

func (*StDfu) Close

func (dfu *StDfu) Close() error

func (*StDfu) ClrStatus

func (dfu *StDfu) ClrStatus() error

func (*StDfu) Detach

func (dfu *StDfu) Detach() error

func (*StDfu) Dnload

func (dfu *StDfu) Dnload(blockNumber int, buffer []byte) error

func (*StDfu) GetState

func (dfu *StDfu) GetState() (State, error)

func (*StDfu) GetStatus

func (dfu *StDfu) GetStatus() (DfuStatus, error)

func (*StDfu) GetStringDescriptor

func (dfu *StDfu) GetStringDescriptor(index int) (string, error)

func (*StDfu) SelectCurrentConfiguration

func (dfu *StDfu) SelectCurrentConfiguration(configIdx, interfaceIdx, altSetIdx int) error

func (*StDfu) Upload

func (dfu *StDfu) Upload(blockNumber int, buffer []byte) error

type State

type State int
const (
	AppIdle State = iota
	AppDetach
	DfuIdle
	DfuWriteSync
	DfuWriteBusy
	DfuWriteIdle
	DfuManifestSync
	DfuManifest
	DfuManifestWaitReset
	DfuReadIdle
	DfuError
)

func (State) String

func (s State) String() string

type Status

type Status int
const (
	StatusOk Status = iota
	ErrTarget
	ErrFile
	ErrWrite
	ErrErase
	ErrCheckErased
	ErrProgram
	ErrVerify
	ErrAddress
	ErrNotDone
	ErrFirmware
	ErrVendor
	ErrUsbR
	ErrPOR
	ErrUnknown
	ErrStalledPkt
)

func (Status) String

func (s Status) String() string

type UUID

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

Jump to

Keyboard shortcuts

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