handlers

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2024 License: MIT Imports: 9 Imported by: 1

Documentation

Index

Constants

View Source
const (
	FLAG_INF = iota
	FLAG_ERR
)

SeedLink error flags

View Source
const (
	RES_OK  = "OK\r\n"
	RES_ERR = "ERROR\r\n"
)

SeedLink response data

View Source
const CHUNK_SIZE = 100

The Seedlink protocol specifies that the maximum length of a data packet is 512 bytes. which can accommodate approximately 100 samples (int32, 4 bytes each). Samples more than 100 will be sent in chunks of 100.

View Source
const RELEASE = "" /* 212-byte string literal not displayed */

SeedLink handshake constant flags

Variables

This section is empty.

Functions

func SendSeedLinkPacket

func SendSeedLinkPacket(client *SeedLinkClient, data SeedLinkDataPacket, dataType int) error

Types

type CAPABILITIES

type CAPABILITIES struct{}

func (*CAPABILITIES) Callback

func (*CAPABILITIES) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "CAPABILITIES" command, implements handler interface

func (*CAPABILITIES) Fallback

func (*CAPABILITIES) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "CAPABILITIES" command, implements handler interface

type DATA

type DATA struct{}

func (*DATA) Callback

func (*DATA) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "DATA" command, implements handler interface

func (*DATA) Fallback

func (*DATA) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "DATA" command, implements handler interface

type END

type END struct {
	DataType int
}

func (*END) Callback

func (e *END) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "END" command, implements handler interface

func (*END) Fallback

func (*END) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "END" command, implements handler interface

type HELLO

type HELLO struct{}

func (*HELLO) Callback

func (*HELLO) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "HELLO" command, implements handler interface

func (*HELLO) Fallback

func (*HELLO) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "HELLO" command, implements handler interface

type INFO

type INFO struct{}

func (*INFO) Callback

func (i *INFO) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "INFO <...>" command, implements handler interface

func (*INFO) Fallback

func (i *INFO) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "INFO <...>" command, implements handler interface

type SELECT

type SELECT struct{}

func (*SELECT) Callback

func (*SELECT) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "SELECT <...>" command, implements handler interface

func (*SELECT) Fallback

func (*SELECT) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "SELECT <...>" command, implements handler interface

type STATION

type STATION struct{}

func (*STATION) Callback

func (s *STATION) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "STATION <...> <...>" command, implements handler interface

func (*STATION) Fallback

func (*STATION) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "STATION <...> <...>" command, implements handler interface

type SeedLinkCapability

type SeedLinkCapability struct {
	XMLName xml.Name `xml:"capability"`
	Name    string   `xml:"name,attr"`
}

Capability field model of INFO CAPABILITY command

type SeedLinkClient

type SeedLinkClient struct {
	net.Conn
	Streaming bool
	Sequence  int64
	Network   string
	Station   string
	Location  string
	Channels  []string
	StartTime time.Time
	EndTime   time.Time
}

type SeedLinkConsumer

type SeedLinkConsumer interface {
	Subscribe(clientId string, channels []string, eventHandler func(SeedLinkDataPacket)) error
	Unsubscribe(clientId string) error
}

Consumer interface for SeedLink server to stream data

type SeedLinkDataPacket

type SeedLinkDataPacket struct {
	Timestamp  int64
	SampleRate int
	Channel    string
	DataArr    []int32
}

SeedLink data packet model

type SeedLinkHooks

type SeedLinkHooks interface {
	OnConnection(client *SeedLinkClient)
	OnData(client *SeedLinkClient, data []byte)
	OnClose(client *SeedLinkClient)
	OnCommand(client *SeedLinkClient, command []string)
}

SeedLink event hooks interface

type SeedLinkProvider

type SeedLinkProvider interface {
	GetSoftware() string
	GetStartTime() time.Time
	GetCurrentTime() time.Time
	GetOrganization() string
	GetStations() []SeedLinkStation
	GetStreams() []SeedLinkStream
	GetCapabilities() []SeedLinkCapability
	QueryHistory(startTime, endTime time.Time, channels []string) ([]SeedLinkDataPacket, error)
}

Provider interface for SeedLink server to get information

type SeedLinkStation

type SeedLinkStation struct {
	XMLName       xml.Name `xml:"station"`
	BeginSequence string   `xml:"begin_seq,attr"`
	EndSequence   string   `xml:"end_seq,attr"`
	Station       string   `xml:"name,attr"`
	Network       string   `xml:"network,attr"`
	Description   string   `xml:"description,attr"`
}

Station field model of INFO STATIONS command

type SeedLinkStream

type SeedLinkStream struct {
	XMLName   xml.Name `xml:"stream"`
	BeginTime string   `xml:"begin_time,attr"`
	EndTime   string   `xml:"end_time,attr"`
	SeedName  string   `xml:"seedname,attr"`
	Location  string   `xml:"location,attr"`
	Type      string   `xml:"type,attr"`
	// Exclusive attribute to match station
	Station string `xml:"station,attr"`
}

Stream field model of INFO STREAMS command

type TIME

type TIME struct{}

func (*TIME) Callback

func (t *TIME) Callback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string) error

Callback of "TIME <...>" command, implements handler interface

func (*TIME) Fallback

func (*TIME) Fallback(client *SeedLinkClient, provider SeedLinkProvider, consumer SeedLinkConsumer, args ...string)

Fallback of "TIME <...>" command, implements handler interface

Jump to

Keyboard shortcuts

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