sdk

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolRTSP = onvif.TransportProtocol("RTSP")
)
View Source
const (
	StreamTypeDefault = onvif.StreamType("000")
)

Variables

View Source
var (
	// Logger is a zerolog logger, that can be safely used from any part of the application.
	// It gathers the format and the output. The application can replace the default Logger
	// for an alternative that meets its own output.
	Logger = zerolog.
		New(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}).
		With().Timestamp().
		Logger()
)

Functions

This section is empty.

Types

type Appliance added in v0.0.3

type Appliance interface {
	// GetUUID return the unique identifier of the remote appliance.
	// The UUID is Usually known after the discovery.
	// TODO(jfs): determine the UUID for devices that do not requires discovery
	GetUUID() string

	GetDeviceEndpoint() string

	GetEndpoint(name string) string

	GetServices() map[string]string

	FetchStreamURI(ctx context.Context) string

	FetchDeviceDescriptor(ctx context.Context) DeviceDescriptor

	// FetchDeviceNetwork fetches from the Appliance the network configuration from the Device
	FetchDeviceNetwork(ctx context.Context) DeviceNetwork

	// FetchDeviceNetwork fetches from the Appliance the security configuration from the Device
	FetchDeviceSecurity(ctx context.Context) DeviceSecurity

	// FetchDeviceNetwork fetches from the Appliance the core system configuration from the Device
	FetchDeviceSystem(ctx context.Context) DeviceSystem

	// FetchMedia fetches from the Appliance a fully-hydrated Media structure
	FetchMedia(ctx context.Context) Media

	// FetchPTZ fetches from the Appliance a fully-hydrated Ptz structure
	FetchPTZ(ctx context.Context) Ptz

	// FetchEvent fetches from the Appliance a fully-hydrated Event structure
	FetchEvent(ctx context.Context) Event

	// FetchMediaProfiles fetches from the Appliance only the Profile related information,
	// otherwise part from the Media information
	FetchProfiles(ctx context.Context) Profiles
}

func NewDevice

func NewDevice(ctx context.Context, info networking.ClientInfo, auth networking.ClientAuth, httpClient *http.Client) (Appliance, error)

func WrapClient added in v0.0.3

func WrapClient(ctx context.Context, client *networking.Client, auth networking.ClientAuth) (Appliance, error)

type Audio

type Audio struct {
	Sources  []AudioSource
	Encoders []AudioEncoderConfiguration
	Outputs  map[onvif.ReferenceToken]*AudioOutput
}

type AudioEncoderConfiguration

type AudioEncoderConfiguration struct {
	Configuration onvif.AudioEncoderConfiguration
	Options       onvif.AudioEncoderConfigurationOptions
}

type AudioOutput

type AudioOutput struct {
	Output         onvif.AudioOutput
	Configurations []onvif.AudioOutputConfiguration
}

type AudioSource

type AudioSource struct {
	Source         onvif.AudioSource
	Configurations []onvif.AudioSourceConfiguration
}

type CertificateX added in v0.0.3

type CertificateX struct {
	Certificate    onvif.Certificate
	Pkcs10Response onvif.BinaryData
	Information    onvif.CertificateInformation
}

type DeviceDescriptor

type DeviceDescriptor struct {
	Capabilities        *onvif.Capabilities
	ServiceCapabilities *device.DeviceServiceCapabilities
	Information         *device.GetDeviceInformationResponse
	Service             []device.Service
	SystemDateAndTime   *onvif.SystemDateTime
	Scopes              []onvif.Scope
	EndpointReference   string
	WsdlUrl             string
}

type DeviceNetwork added in v0.0.3

type DeviceNetwork struct {
	DPAddress          []onvif.NetworkHost
	NetworkProtocols   []onvif.NetworkProtocol
	RelayOutputs       []onvif.RelayOutput
	NICs               map[onvif.ReferenceToken]*NetworkInterfaceX
	Dot1XConfiguration map[onvif.ReferenceToken]*onvif.Dot1XConfiguration
	NTP                *onvif.NTPInformation
	DNS                *onvif.DNSInformation
	DynDNS             *onvif.DynamicDNSInformation
	NetworkGateway     *onvif.NetworkGateway
	ZeroConfiguration  *onvif.NetworkZeroConfiguration
	IPAddressFilter    *onvif.IPAddressFilter
}

type DeviceSecurity added in v0.0.3

type DeviceSecurity struct {
	RemoteUser            *onvif.RemoteUser
	Users                 []onvif.User
	AccessPolicy          *onvif.BinaryData
	ClientCertificateMode bool
	NvtCertificate        []CertificateX
	CACertificate         []CertificateX
	CertificateStatus     []onvif.CertificateStatus
}

type DeviceSystem added in v0.0.3

type DeviceSystem struct {
	SystemLog             *string
	AccessLog             *string
	SupportInformation    string
	DiscoveryMode         string
	RemoteDiscoveryMode   string
	Location              *onvif.LocationEntity
	Hostname              *onvif.HostnameInformation
	SystemUris            *device.GetSystemUrisResponse
	StorageConfigurations []device.StorageConfiguration
}

type Event added in v0.0.3

type Event struct {
	Capabilities event.Capabilities
	Properties   event.GetEventPropertiesResponse
}

type Media

type Media struct {
	Video        Video
	Audio        Audio
	Capabilities media.Capabilities
}

type NetworkInterfaceX added in v0.0.3

type NetworkInterfaceX struct {
	NetworkInterface   onvif.NetworkInterface
	Dot1XConfiguration onvif.Dot1XConfiguration
	Status             onvif.Dot11Status
}

type ProfileMedia added in v0.0.3

type ProfileMedia struct {
	CompatibleMetadata []onvif.ReferenceToken

	CompatibleVideoSources   []onvif.ReferenceToken
	CompatibleVideoEncoders  []onvif.ReferenceToken
	CompatibleVideoAnalytics []onvif.ReferenceToken

	CompatibleAudioSources  []onvif.ReferenceToken
	CompatibleAudioEncoders []onvif.ReferenceToken

	CompatibleAudioOutputs  []onvif.ReferenceToken
	CompatibleAudioDecoders []onvif.ReferenceToken
}

type ProfilePTZ added in v0.0.3

type ProfilePTZ struct {
	Status        onvif.PTZStatus
	Configuration onvif.PTZConfiguration
	Options       onvif.PTZConfigurationOptions
	Preset        []onvif.PTZPreset
	PresetTour    []onvif.PresetTour
}

type ProfileUris added in v0.0.3

type ProfileUris struct {
	Stream   onvif.MediaUri
	Snapshot onvif.MediaUri
}

type Profiles

type Profiles struct {
	Profiles map[onvif.ReferenceToken]*XProfile
}

type Ptz added in v0.0.3

type Ptz struct {
	Capabilities  ptz.Capabilities
	Nodes         []onvif.PTZNode
	Configuration []onvif.PTZConfiguration
}

type Video

type Video struct {
	Sources                 []VideoSource
	Encoders                []VideoEncoderConfiguration
	AnalyticsConfigurations []onvif.VideoAnalyticsConfiguration
}

type VideoEncoderConfiguration

type VideoEncoderConfiguration struct {
	Configuration onvif.VideoEncoderConfiguration
	Options       onvif.VideoEncoderConfigurationOptions
}

type VideoSource

type VideoSource struct {
	Source         onvif.VideoSource
	Configurations []onvif.VideoSourceConfiguration
}

type XProfile

type XProfile struct {
	Profile onvif.Profile
	Uris    ProfileUris
	Media   ProfileMedia
	PTZ     ProfilePTZ
}

Jump to

Keyboard shortcuts

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