model

package
v0.0.0-...-a3eb7df Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArrayInfo

type ArrayInfo interface {
	fmt.Stringer
	GetSize() uint32
	GetLowerBound() uint32
	GetUpperBound() uint32
}

type PlcBrowseItem

type PlcBrowseItem interface {
	fmt.Stringer
	GetTag() PlcTag

	GetName() string
	IsReadable() bool
	IsWritable() bool
	IsSubscribable() bool
	GetChildren() map[string]PlcBrowseItem
	GetOptions() map[string]values.PlcValue
}

type PlcBrowseRequest

type PlcBrowseRequest interface {
	PlcRequest
	// Execute Will not return until a potential scan is finished and will return all results in one block
	Execute() <-chan PlcBrowseRequestResult
	// ExecuteWithContext is the same as Execute but handles the Context if implemented for Driver
	ExecuteWithContext(ctx context.Context) <-chan PlcBrowseRequestResult
	// ExecuteWithInterceptor Will call the given callback for every found resource
	ExecuteWithInterceptor(interceptor func(result PlcBrowseItem) bool) <-chan PlcBrowseRequestResult
	// ExecuteWithInterceptorWithContext Will call the given callback for every found resource
	ExecuteWithInterceptorWithContext(ctx context.Context, interceptor func(result PlcBrowseItem) bool) <-chan PlcBrowseRequestResult

	GetQueryNames() []string
	GetQuery(queryName string) PlcQuery
}

type PlcBrowseRequestBuilder

type PlcBrowseRequestBuilder interface {
	fmt.Stringer
	AddQuery(name string, query string) PlcBrowseRequestBuilder
	Build() (PlcBrowseRequest, error)
}

type PlcBrowseRequestResult

type PlcBrowseRequestResult interface {
	fmt.Stringer
	GetRequest() PlcBrowseRequest
	GetResponse() PlcBrowseResponse
	GetErr() error
}

type PlcBrowseResponse

type PlcBrowseResponse interface {
	PlcResponse
	GetRequest() PlcBrowseRequest
	GetQueryNames() []string
	GetResponseCode(name string) PlcResponseCode
	GetQueryResults(name string) []PlcBrowseItem
}

type PlcConnectionMetadata

type PlcConnectionMetadata interface {
	fmt.Stringer
	// GetConnectionAttributes Gives access to a map of additional information the driver might be able to provide.
	GetConnectionAttributes() map[string]string
	// CanRead Indicates that the connection supports reading.
	CanRead() bool
	// CanWrite Indicates that the connection supports writing.
	CanWrite() bool
	// CanSubscribe Indicates that the connection supports subscription.
	CanSubscribe() bool
	// CanBrowse Indicates that the connection supports browsing.
	CanBrowse() bool
}

PlcConnectionMetadata Information about connection capabilities. This includes connection and driver specific metadata.

type PlcConsumerRegistration

type PlcConsumerRegistration interface {
	GetConsumerId() int
	GetSubscriptionHandles() []PlcSubscriptionHandle
	Unregister()
}

type PlcDiscoveryItem

type PlcDiscoveryItem interface {
	fmt.Stringer
	GetProtocolCode() string
	GetTransportCode() string
	GetTransportUrl() url.URL
	GetOptions() map[string][]string
	GetName() string
	GetAttributes() map[string]values.PlcValue
	GetConnectionUrl() string
}

type PlcMessage

type PlcMessage interface {
	fmt.Stringer
	IsAPlcMessage() bool
}

type PlcQuery

type PlcQuery interface {
	GetQueryString() string
}

type PlcReadRequest

type PlcReadRequest interface {
	PlcRequest
	Execute() <-chan PlcReadRequestResult
	ExecuteWithContext(ctx context.Context) <-chan PlcReadRequestResult

	GetTagNames() []string
	GetTag(tagName string) PlcTag
}

type PlcReadRequestBuilder

type PlcReadRequestBuilder interface {
	fmt.Stringer
	AddTagAddress(tagName string, tagAddress string) PlcReadRequestBuilder
	AddTag(tagName string, tag PlcTag) PlcReadRequestBuilder
	Build() (PlcReadRequest, error)
}

type PlcReadRequestResult

type PlcReadRequestResult interface {
	fmt.Stringer
	GetRequest() PlcReadRequest
	GetResponse() PlcReadResponse
	GetErr() error
}

type PlcReadResponse

type PlcReadResponse interface {
	PlcResponse
	GetRequest() PlcReadRequest
	GetTagNames() []string
	GetResponseCode(tagName string) PlcResponseCode
	GetValue(tagName string) values.PlcValue
}

type PlcRequest

type PlcRequest interface {
	PlcMessage
}

type PlcResponse

type PlcResponse interface {
	PlcMessage
}

type PlcResponseCode

type PlcResponseCode uint8
const (
	PlcResponseCode_OK               PlcResponseCode = 0x01
	PlcResponseCode_NOT_FOUND        PlcResponseCode = 0x02
	PlcResponseCode_ACCESS_DENIED    PlcResponseCode = 0x03
	PlcResponseCode_INVALID_ADDRESS  PlcResponseCode = 0x04
	PlcResponseCode_INVALID_DATATYPE PlcResponseCode = 0x05
	PlcResponseCode_INVALID_DATA     PlcResponseCode = 0x06
	PlcResponseCode_INTERNAL_ERROR   PlcResponseCode = 0x07
	PlcResponseCode_REMOTE_BUSY      PlcResponseCode = 0x08
	PlcResponseCode_REMOTE_ERROR     PlcResponseCode = 0x09
	PlcResponseCode_UNSUPPORTED      PlcResponseCode = 0x10
	PlcResponseCode_RESPONSE_PENDING PlcResponseCode = 0x11
	PlcResponseCode_REQUEST_TIMEOUT  PlcResponseCode = 0x12
)

func (PlcResponseCode) GetName

func (m PlcResponseCode) GetName() string

func (PlcResponseCode) Serialize

func (m PlcResponseCode) Serialize() ([]byte, error)

func (PlcResponseCode) SerializeWithWriteBuffer

func (m PlcResponseCode) SerializeWithWriteBuffer(_ context.Context, writeBuffer utils.WriteBuffer) error

func (PlcResponseCode) String

func (m PlcResponseCode) String() string

type PlcSubscriptionEvent

type PlcSubscriptionEvent interface {
	PlcResponse
	// GetTagNames returns all tag names which can be found in this event
	GetTagNames() []string
	// GetResponseCode returns the PlcResponseCode for a tag
	GetResponseCode(tagName string) PlcResponseCode
	// GetAddress returns the address for an event. This is meant to for reading or writing one item.
	// Sometimes there are tags which can't be directly addressed (e.g. only through a broadcast).
	// In that case (if applicable) the GetSource contains the source information about the sending device.
	GetAddress(tagName string) string
	// GetSource returns usually the same as GetAddress in case when the address contains information about the source.
	// If we have a tag which is not directly addressable (see doc for GetAddress) the source is useful to identify the device.
	GetSource(tagName string) string
	// GetValue returns the tag value for a named tag.
	GetValue(tagName string) values.PlcValue
}

type PlcSubscriptionEventConsumer

type PlcSubscriptionEventConsumer func(event PlcSubscriptionEvent)

type PlcSubscriptionHandle

type PlcSubscriptionHandle interface {
	fmt.Stringer
	Register(consumer PlcSubscriptionEventConsumer) PlcConsumerRegistration
}

type PlcSubscriptionRequest

type PlcSubscriptionRequest interface {
	PlcRequest
	Execute() <-chan PlcSubscriptionRequestResult
	ExecuteWithContext(ctx context.Context) <-chan PlcSubscriptionRequestResult

	GetTagNames() []string
	GetTag(tagName string) PlcSubscriptionTag
}

type PlcSubscriptionRequestBuilder

type PlcSubscriptionRequestBuilder interface {
	AddCyclicTagAddress(tagName string, tagAddress string, interval time.Duration) PlcSubscriptionRequestBuilder
	AddCyclicTag(tagName string, tag PlcSubscriptionTag, interval time.Duration) PlcSubscriptionRequestBuilder
	AddChangeOfStateTagAddress(tagName string, tagAddress string) PlcSubscriptionRequestBuilder
	AddChangeOfStateTag(tagName string, tag PlcSubscriptionTag) PlcSubscriptionRequestBuilder
	AddEventTagAddress(tagName string, tagAddress string) PlcSubscriptionRequestBuilder
	AddEventTag(tagName string, tag PlcSubscriptionTag) PlcSubscriptionRequestBuilder
	AddPreRegisteredConsumer(tagName string, consumer PlcSubscriptionEventConsumer) PlcSubscriptionRequestBuilder
	Build() (PlcSubscriptionRequest, error)
}

type PlcSubscriptionRequestResult

type PlcSubscriptionRequestResult interface {
	GetRequest() PlcSubscriptionRequest
	GetResponse() PlcSubscriptionResponse
	GetErr() error
}

type PlcSubscriptionResponse

type PlcSubscriptionResponse interface {
	fmt.Stringer
	GetRequest() PlcSubscriptionRequest
	GetTagNames() []string
	GetResponseCode(name string) PlcResponseCode
	GetSubscriptionHandle(name string) (PlcSubscriptionHandle, error)
	GetSubscriptionHandles() []PlcSubscriptionHandle
}

type PlcSubscriptionTag

type PlcSubscriptionTag interface {
	PlcTag
	GetPlcSubscriptionType() PlcSubscriptionType
	GetDuration() time.Duration
}

type PlcSubscriptionType

type PlcSubscriptionType uint8
const (
	SubscriptionCyclic        PlcSubscriptionType = 0x01
	SubscriptionChangeOfState PlcSubscriptionType = 0x02
	SubscriptionEvent         PlcSubscriptionType = 0x03
)

func (PlcSubscriptionType) String

func (i PlcSubscriptionType) String() string

type PlcTag

type PlcTag interface {
	fmt.Stringer
	GetAddressString() string
	GetValueType() values.PlcValueType
	GetArrayInfo() []ArrayInfo
}

type PlcUnsubscriptionRequest

type PlcUnsubscriptionRequest interface {
	PlcRequest
	Execute() <-chan PlcUnsubscriptionRequestResult
	ExecuteWithContext(ctx context.Context) <-chan PlcUnsubscriptionRequestResult
}

type PlcUnsubscriptionRequestBuilder

type PlcUnsubscriptionRequestBuilder interface {
	fmt.Stringer
	AddHandles(handles ...PlcSubscriptionHandle) PlcUnsubscriptionRequestBuilder
	Build() (PlcUnsubscriptionRequest, error)
}

type PlcUnsubscriptionRequestResult

type PlcUnsubscriptionRequestResult interface {
	fmt.Stringer
	GetRequest() PlcUnsubscriptionRequest
	GetResponse() PlcUnsubscriptionResponse
	GetErr() error
}

type PlcUnsubscriptionResponse

type PlcUnsubscriptionResponse interface {
	fmt.Stringer
	GetRequest() PlcUnsubscriptionRequest
}

type PlcWriteRequest

type PlcWriteRequest interface {
	PlcRequest
	Execute() <-chan PlcWriteRequestResult
	ExecuteWithContext(ctx context.Context) <-chan PlcWriteRequestResult

	GetTagNames() []string
	GetTag(tagName string) PlcTag
	GetValue(tagName string) values.PlcValue
}

type PlcWriteRequestBuilder

type PlcWriteRequestBuilder interface {
	fmt.Stringer
	AddTagAddress(tagName string, tagAddress string, value any) PlcWriteRequestBuilder
	AddTag(tagName string, tag PlcTag, value any) PlcWriteRequestBuilder
	Build() (PlcWriteRequest, error)
}

type PlcWriteRequestResult

type PlcWriteRequestResult interface {
	fmt.Stringer
	GetRequest() PlcWriteRequest
	GetResponse() PlcWriteResponse
	GetErr() error
}

type PlcWriteResponse

type PlcWriteResponse interface {
	PlcResponse
	GetRequest() PlcWriteRequest
	GetTagNames() []string
	GetResponseCode(tagName string) PlcResponseCode
}

Jump to

Keyboard shortcuts

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