Documentation
¶
Index ¶
- func GenerateSDKIdentityCertificate(ctx context.Context, sign SignFunc, sdkDeviceID string) (tls.Certificate, []*x509.Certificate, error)
- func GenerateSDKManufacturerCertificate(ctx context.Context, sign SignFunc, ID string) (tls.Certificate, []*x509.Certificate, error)
- func NewDeviceOwnershipBackendFromConfig(app ApplicationCallback, dialTLS core.DialTLS, dialDTLS core.DialDTLS, ...) (*deviceOwnershipBackend, error)
- func NewDeviceOwnershipNone() *deviceOwnershipNone
- func NewDeviceOwnershipSDK(app ApplicationCallback, sdkDeviceID string, dialTLS core.DialTLS, ...) (*deviceOwnershipSDK, error)
- func NewDeviceOwnershipSDKFromConfig(app ApplicationCallback, dialTLS core.DialTLS, dialDLTS core.DialDTLS, ...) (*deviceOwnershipSDK, error)
- func NewRefDeviceCache(cacheExpiration time.Duration, errors func(error)) *refDeviceCache
- func TokenFromOutgoingMD(ctx context.Context) (string, error)
- type ApplicationCallback
- type Client
- func (c *Client) Close(ctx context.Context) error
- func (c *Client) CoreClient() *core.Client
- func (c *Client) CreateResource(ctx context.Context, deviceID string, href string, request interface{}, ...) error
- func (c *Client) DeleteResource(ctx context.Context, deviceID string, href string, response interface{}, ...) error
- func (c *Client) DisownDevice(ctx context.Context, deviceID string) error
- func (c *Client) FactoryReset(ctx context.Context, deviceID string) error
- func (c *Client) GetDeviceByIP(ctx context.Context, ip string, opts ...GetDeviceByIPOption) (DeviceDetails, error)
- func (c *Client) GetDeviceByMulticast(ctx context.Context, deviceID string, opts ...GetDeviceOption) (DeviceDetails, error)
- func (c *Client) GetDevices(ctx context.Context, opts ...GetDevicesOption) (map[string]DeviceDetails, error)
- func (c *Client) GetDevicesWithHandler(ctx context.Context, handler core.DeviceHandlerV2, ...) error
- func (c *Client) GetIdentityCACerts() ([]*x509.Certificate, error)
- func (c *Client) GetIdentityCertificate() (tls.Certificate, error)
- func (c *Client) GetRefDevice(ctx context.Context, deviceID string, opts ...GetDeviceOption) (*RefDevice, schema.ResourceLinks, error)
- func (c *Client) GetRefDeviceByIP(ctx context.Context, ip string) (*RefDevice, schema.ResourceLinks, error)
- func (c *Client) GetResource(ctx context.Context, deviceID string, href string, response interface{}, ...) error
- func (c *Client) Initialization(ctx context.Context) (err error)
- func (c *Client) ObserveDeviceResources(ctx context.Context, deviceID string, ...) (string, error)
- func (c *Client) ObserveDevices(ctx context.Context, handler DevicesObservationHandler, ...) (string, error)
- func (c *Client) ObserveResource(ctx context.Context, deviceID string, href string, ...) (observationID string, _ error)
- func (c *Client) OffboardDevice(ctx context.Context, deviceID string) error
- func (c *Client) OnboardDevice(ctx context.Context, ...) error
- func (c *Client) OwnDevice(ctx context.Context, deviceID string, opts ...OwnOption) (string, error)
- func (c *Client) Reboot(ctx context.Context, deviceID string) error
- func (c *Client) StopObservingDeviceResources(ctx context.Context, observationID string) error
- func (c *Client) StopObservingDevices(ctx context.Context, observationID string) error
- func (c *Client) StopObservingResource(ctx context.Context, observationID string) error
- func (c *Client) UpdateResource(ctx context.Context, deviceID string, href string, request interface{}, ...) error
- type CodecOption
- type Config
- type CreateOption
- type DeleteOption
- type DeviceDetails
- type DeviceOwner
- type DeviceOwnershipBackendConfig
- type DeviceOwnershipSDKConfig
- type DeviceResourcesObservationEvent
- type DeviceResourcesObservationEvent_type
- type DeviceResourcesObservationHandler
- type DevicesObservationEvent
- type DevicesObservationEvent_type
- type DevicesObservationHandler
- type DiscoveryConfigrationOption
- type ErrorOption
- type GetDetailsFunc
- type GetDetailsOption
- type GetDeviceByIPOption
- type GetDeviceOption
- type GetDevicesOption
- type GetDevicesWithHandlerOption
- type GetOption
- type OTMType
- type ObserveDevicesOption
- type ObserveOption
- type OwnOption
- type OwnershipStatus
- type RefDevice
- func (d *RefDevice) Acquire()
- func (d *RefDevice) DeleteResourceWithCodec(ctx context.Context, link schema.ResourceLink, codec coap.Codec, ...) error
- func (d *RefDevice) Device() *core.Device
- func (d *RefDevice) DeviceID() string
- func (d *RefDevice) Disown(ctx context.Context, links schema.ResourceLinks) error
- func (d *RefDevice) FactoryReset(ctx context.Context, links schema.ResourceLinks) error
- func (d *RefDevice) GetDeviceDetails(ctx context.Context, links schema.ResourceLinks, getDetails GetDetailsFunc) (out DeviceDetails, _ error)
- func (d *RefDevice) GetEndpoints() []schema.Endpoint
- func (d *RefDevice) GetOwnership(ctx context.Context, links schema.ResourceLinks) (doxm.Doxm, error)
- func (d *RefDevice) GetResourceLinks(ctx context.Context, endpoints []schema.Endpoint, options ...coap.OptionFunc) (schema.ResourceLinks, error)
- func (d *RefDevice) GetResourceWithCodec(ctx context.Context, link schema.ResourceLink, codec coap.Codec, ...) error
- func (d *RefDevice) IsSecured() bool
- func (d *RefDevice) ObserveResource(ctx context.Context, link schema.ResourceLink, handler core.ObservationHandler, ...) (observationID string, _ error)
- func (d *RefDevice) ObserveResourceWithCodec(ctx context.Context, link schema.ResourceLink, codec coap.Codec, ...) (observationID string, _ error)
- func (d *RefDevice) Own(ctx context.Context, links schema.ResourceLinks, otmClient otm.Client, ...) error
- func (d *RefDevice) Provision(ctx context.Context, links schema.ResourceLinks) (*core.ProvisioningClient, error)
- func (d *RefDevice) Reboot(ctx context.Context, links schema.ResourceLinks) error
- func (d *RefDevice) Release(ctx context.Context) error
- func (d *RefDevice) StopObservingResource(ctx context.Context, observationID string) error
- func (d *RefDevice) UpdateResource(ctx context.Context, link schema.ResourceLink, request interface{}, ...) error
- func (d *RefDevice) UpdateResourceWithCodec(ctx context.Context, link schema.ResourceLink, codec coap.Codec, ...) error
- type ResourceInterfaceOption
- type ResourceTypesOption
- type SignFunc
- type Signer
- type UpdateOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateSDKIdentityCertificate ¶
func GenerateSDKIdentityCertificate(ctx context.Context, sign SignFunc, sdkDeviceID string) (tls.Certificate, []*x509.Certificate, error)
func GenerateSDKManufacturerCertificate ¶
func GenerateSDKManufacturerCertificate(ctx context.Context, sign SignFunc, ID string) (tls.Certificate, []*x509.Certificate, error)
func NewDeviceOwnershipBackendFromConfig ¶
func NewDeviceOwnershipBackendFromConfig(app ApplicationCallback, dialTLS core.DialTLS, dialDTLS core.DialDTLS, cfg *DeviceOwnershipBackendConfig, errorsFunc func(err error)) (*deviceOwnershipBackend, error)
func NewDeviceOwnershipNone ¶
func NewDeviceOwnershipNone() *deviceOwnershipNone
func NewDeviceOwnershipSDK ¶
func NewDeviceOwnershipSDK(app ApplicationCallback, sdkDeviceID string, dialTLS core.DialTLS, dialDTLS core.DialDTLS, signerCert *tls.Certificate, validFrom string, certExpiry time.Duration, createSigner func(caCert []*x509.Certificate, caKey crypto.PrivateKey, validNotBefore time.Time, validNotAfter time.Time) core.CertificateSigner) (*deviceOwnershipSDK, error)
func NewDeviceOwnershipSDKFromConfig ¶
func NewDeviceOwnershipSDKFromConfig(app ApplicationCallback, dialTLS core.DialTLS, dialDLTS core.DialDTLS, cfg *DeviceOwnershipSDKConfig, createSigner func(caCert []*x509.Certificate, caKey crypto.PrivateKey, validNotBefore time.Time, validNotAfter time.Time) core.CertificateSigner) (*deviceOwnershipSDK, error)
func NewRefDeviceCache ¶
Types ¶
type ApplicationCallback ¶
type ApplicationCallback = interface {
GetRootCertificateAuthorities() ([]*x509.Certificate, error)
GetManufacturerCertificateAuthorities() ([]*x509.Certificate, error)
GetManufacturerCertificate() (tls.Certificate, error)
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client uses the underlying OCF local client.
func NewClient ¶
func NewClient( app ApplicationCallback, deviceOwner DeviceOwner, cacheExpiration time.Duration, observerPollingInterval time.Duration, errors func(error), opt ...core.OptionFunc, ) (*Client, error)
NewClient constructs a new local client.
func NewClientFromConfig ¶
func NewClientFromConfig(cfg *Config, app ApplicationCallback, createSigner func(caCert []*x509.Certificate, caKey crypto.PrivateKey, validNotBefore time.Time, validNotAfter time.Time) core.CertificateSigner, errors func(error)) (*Client, error)
NewClientFromConfig constructs a new local client from the proto configuration.
func (*Client) CoreClient ¶
func (*Client) CreateResource ¶
func (*Client) DeleteResource ¶
func (*Client) DisownDevice ¶
DisownDevice disowns a device. For unsecure device it calls factory reset. For secure device it disowns.
func (*Client) FactoryReset ¶
func (*Client) GetDeviceByIP ¶
func (c *Client) GetDeviceByIP(ctx context.Context, ip string, opts ...GetDeviceByIPOption) (DeviceDetails, error)
GetDeviceByIP gets the device directly via IP address and multicast listen port 5683.
func (*Client) GetDeviceByMulticast ¶
func (c *Client) GetDeviceByMulticast(ctx context.Context, deviceID string, opts ...GetDeviceOption) (DeviceDetails, error)
func (*Client) GetDevices ¶
func (c *Client) GetDevices( ctx context.Context, opts ...GetDevicesOption, ) (map[string]DeviceDetails, error)
GetDevices discovers devices in the local mode. The deviceResourceType is applied on the client side, because len(deviceResourceType) > 1 does not work with Iotivity 1.3.
func (*Client) GetDevicesWithHandler ¶
func (c *Client) GetDevicesWithHandler(ctx context.Context, handler core.DeviceHandlerV2, opts ...GetDevicesWithHandlerOption) error
GetDevicesWithHandler discovers devices using a CoAP multicast request via UDP. Device resources can be queried in DeviceHandler using device.Client,
func (*Client) GetIdentityCACerts ¶
func (c *Client) GetIdentityCACerts() ([]*x509.Certificate, error)
func (*Client) GetIdentityCertificate ¶
func (c *Client) GetIdentityCertificate() (tls.Certificate, error)
GetIdentityCertificate returns certificate for connection
func (*Client) GetRefDevice ¶
func (c *Client) GetRefDevice( ctx context.Context, deviceID string, opts ...GetDeviceOption, ) (*RefDevice, schema.ResourceLinks, error)
GetRefDevice returns device, after using call device.Release to free resources.
func (*Client) GetRefDeviceByIP ¶
func (c *Client) GetRefDeviceByIP( ctx context.Context, ip string, ) (*RefDevice, schema.ResourceLinks, error)
GetRefDeviceByIP gets the device directly via IP address and multicast listen port 5683. After using it, call device.Release to free resources.
func (*Client) GetResource ¶
func (*Client) ObserveDeviceResources ¶
func (*Client) ObserveDevices ¶
func (c *Client) ObserveDevices(ctx context.Context, handler DevicesObservationHandler, opts ...ObserveDevicesOption) (string, error)
func (*Client) ObserveResource ¶
func (c *Client) ObserveResource( ctx context.Context, deviceID string, href string, handler core.ObservationHandler, opts ...ObserveOption, ) (observationID string, _ error)
func (*Client) OffboardDevice ¶
func (*Client) OnboardDevice ¶
func (*Client) StopObservingDeviceResources ¶
func (*Client) StopObservingDevices ¶
func (*Client) StopObservingResource ¶
func (*Client) UpdateResource ¶
type CodecOption ¶
type CodecOption struct {
// contains filtered or unexported fields
}
func WithCodec ¶
func WithCodec(codec kitNetCoap.Codec) CodecOption
type Config ¶
type Config struct {
DeviceCacheExpirationSeconds int64
ObserverPollingIntervalSeconds uint64 // 0 means 3 seconds
KeepAliveConnectionTimeoutSeconds uint64 // 0 means keepalive is disabled
MaxMessageSize uint32
DisablePeerTCPSignalMessageCSMs bool
DefaultTransferDurationSeconds uint64 // 0 means 15 seconds
// specify one of:
DeviceOwnershipSDK *DeviceOwnershipSDKConfig `yaml:",omitempty"`
DeviceOwnershipBackend *DeviceOwnershipBackendConfig `yaml:",omitempty"`
}
type CreateOption ¶
type CreateOption = interface {
// contains filtered or unexported methods
}
CreateOption option definition.
type DeleteOption ¶
type DeleteOption = interface {
// contains filtered or unexported methods
}
UpdateOption option definition.
type DeviceDetails ¶
type DeviceDetails struct {
// ID of the device
ID string
// Details result of function which can be set via option WithGetDetails(), by default it is nil.
Details interface{}
// IsSecured is secured.
IsSecured bool
// Ownership describes ownership of the device, for unsecure device it is nil.
Ownership *doxm.Doxm
// Resources list of the device resources.
Resources []schema.ResourceLink
// Resources list of the device endpoints.
Endpoints []schema.Endpoint
// Ownership status
OwnershipStatus OwnershipStatus
}
DeviceDetails describes a device.
type DeviceOwner ¶
type DeviceOwner interface {
Initialization(ctx context.Context) error
OwnDevice(ctx context.Context, deviceID string, otmType OTMType, own ownFunc, opts ...core.OwnOption) (string, error)
GetIdentityCertificate() (tls.Certificate, error)
GetIdentityCACerts() ([]*x509.Certificate, error)
}
func NewDeviceOwnerFromConfig ¶
func NewDeviceOwnerFromConfig(cfg *Config, dialTLS core.DialTLS, dialDTLS core.DialDTLS, app ApplicationCallback, createSigner func(caCert []*x509.Certificate, caKey crypto.PrivateKey, validNotBefore time.Time, validNotAfter time.Time) core.CertificateSigner, errors func(error)) (DeviceOwner, error)
type DeviceResourcesObservationEvent ¶
type DeviceResourcesObservationEvent struct {
Link schema.ResourceLink
Event DeviceResourcesObservationEvent_type
}
type DeviceResourcesObservationEvent_type ¶
type DeviceResourcesObservationEvent_type uint8
const DeviceResourcesObservationEvent_ADDED DeviceResourcesObservationEvent_type = 0
const DeviceResourcesObservationEvent_REMOVED DeviceResourcesObservationEvent_type = 1
type DeviceResourcesObservationHandler ¶
type DeviceResourcesObservationHandler = interface {
Handle(ctx context.Context, event DeviceResourcesObservationEvent) error
OnClose()
Error(err error)
}
type DevicesObservationEvent ¶
type DevicesObservationEvent struct {
DeviceID string
Event DevicesObservationEvent_type
}
type DevicesObservationEvent_type ¶
type DevicesObservationEvent_type uint8
const DevicesObservationEvent_OFFLINE DevicesObservationEvent_type = 1
const DevicesObservationEvent_ONLINE DevicesObservationEvent_type = 0
type DevicesObservationHandler ¶
type DevicesObservationHandler = interface {
Handle(ctx context.Context, event DevicesObservationEvent) error
OnClose()
Error(err error)
}
type DiscoveryConfigrationOption ¶
type DiscoveryConfigrationOption struct {
// contains filtered or unexported fields
}
func WithDiscoveryConfigration ¶
func WithDiscoveryConfigration(cfg core.DiscoveryConfiguration) DiscoveryConfigrationOption
WithDiscoveryConfigration allows to setup multicast request. By defualt it is send to ipv4 and ipv6.
type ErrorOption ¶
type ErrorOption struct {
// contains filtered or unexported fields
}
func WithError ¶
func WithError(err func(error)) ErrorOption
type GetDetailsFunc ¶
type GetDetailsOption ¶
type GetDetailsOption struct {
// contains filtered or unexported fields
}
func WithGetDetails ¶
func WithGetDetails(getDetails func(ctx context.Context, d *core.Device, links schema.ResourceLinks) (interface{}, error)) GetDetailsOption
type GetDeviceByIPOption ¶
type GetDeviceByIPOption = interface {
// contains filtered or unexported methods
}
GetDeviceByIPOption option definition.
type GetDeviceOption ¶
type GetDeviceOption = interface {
// contains filtered or unexported methods
}
GetDeviceOption option definition.
type GetDevicesOption ¶
type GetDevicesOption = interface {
// contains filtered or unexported methods
}
GetDevicesOption option definition.
type GetDevicesWithHandlerOption ¶
type GetDevicesWithHandlerOption = interface {
// contains filtered or unexported methods
}
type GetOption ¶
type GetOption = interface {
// contains filtered or unexported methods
}
GetOption option definition.
type ObserveDevicesOption ¶
type ObserveDevicesOption = interface {
// contains filtered or unexported methods
}
type ObserveOption ¶
type ObserveOption = interface {
// contains filtered or unexported methods
}
ObserveOption option definition.
type OwnOption ¶
type OwnOption = interface {
// contains filtered or unexported methods
}
OwnOption option definition.
func WithActionDuringOwn ¶
func WithActionDuringOwn(actionDuringOwn func(ctx context.Context, client *kitNetCoap.ClientCloseHandler) (string, error)) OwnOption
WithActionDuringOwn allows to set deviceID of owned device and other staffo over owner TLS.
type OwnershipStatus ¶
type OwnershipStatus string
OwnershipStatus describes ownership status of the device
const ( // OwnershipStatus_ReadyToBeOwned the device is ready to be owned. OwnershipStatus_ReadyToBeOwned OwnershipStatus = "readytobeowned" // OwnershipStatus_Owned the device is owned. OwnershipStatus_Owned OwnershipStatus = "owned" // OwnershipStatus_OwnedByOther the device is owned by another user. OwnershipStatus_OwnedByOther OwnershipStatus = "ownedbyother" // OwnershipStatus_Unknown the device is unsecure or cannot obtain his status. OwnershipStatus_Unknown OwnershipStatus = "unknown" )
type RefDevice ¶
type RefDevice struct {
// contains filtered or unexported fields
}
func NewRefDevice ¶
func (*RefDevice) DeleteResourceWithCodec ¶
func (d *RefDevice) DeleteResourceWithCodec( ctx context.Context, link schema.ResourceLink, codec coap.Codec, response interface{}, options ...coap.OptionFunc, ) error
func (*RefDevice) FactoryReset ¶
func (*RefDevice) GetDeviceDetails ¶
func (d *RefDevice) GetDeviceDetails(ctx context.Context, links schema.ResourceLinks, getDetails GetDetailsFunc) (out DeviceDetails, _ error)
func (*RefDevice) GetEndpoints ¶
func (*RefDevice) GetOwnership ¶
func (*RefDevice) GetResourceLinks ¶
func (d *RefDevice) GetResourceLinks(ctx context.Context, endpoints []schema.Endpoint, options ...coap.OptionFunc) (schema.ResourceLinks, error)
func (*RefDevice) GetResourceWithCodec ¶
func (d *RefDevice) GetResourceWithCodec( ctx context.Context, link schema.ResourceLink, codec coap.Codec, response interface{}, options ...coap.OptionFunc) error
func (*RefDevice) ObserveResource ¶
func (d *RefDevice) ObserveResource( ctx context.Context, link schema.ResourceLink, handler core.ObservationHandler, options ...coap.OptionFunc, ) (observationID string, _ error)
func (*RefDevice) ObserveResourceWithCodec ¶
func (d *RefDevice) ObserveResourceWithCodec( ctx context.Context, link schema.ResourceLink, codec coap.Codec, handler core.ObservationHandler, options ...coap.OptionFunc, ) (observationID string, _ error)
func (*RefDevice) Provision ¶
func (d *RefDevice) Provision(ctx context.Context, links schema.ResourceLinks) (*core.ProvisioningClient, error)
func (*RefDevice) StopObservingResource ¶
func (*RefDevice) UpdateResource ¶
func (d *RefDevice) UpdateResource( ctx context.Context, link schema.ResourceLink, request interface{}, response interface{}, options ...coap.OptionFunc, ) error
func (*RefDevice) UpdateResourceWithCodec ¶
func (d *RefDevice) UpdateResourceWithCodec( ctx context.Context, link schema.ResourceLink, codec coap.Codec, request interface{}, response interface{}, options ...coap.OptionFunc, ) error
type ResourceInterfaceOption ¶
type ResourceInterfaceOption struct {
// contains filtered or unexported fields
}
func WithInterface ¶
func WithInterface(resourceInterface string) ResourceInterfaceOption
WithInterface updates/gets resource with interface directly from a device.
type ResourceTypesOption ¶
type ResourceTypesOption struct {
// contains filtered or unexported fields
}
func WithResourceTypes ¶
func WithResourceTypes(resourceTypes ...string) ResourceTypesOption
type UpdateOption ¶
type UpdateOption = interface {
// contains filtered or unexported methods
}
UpdateOption option definition.
Source Files
¶
- client.go
- createResource.go
- deleteResource.go
- deviceOwnershipBackend.go
- deviceOwnershipNone.go
- deviceOwnershipSDK.go
- disownDevice.go
- getDevice.go
- getDevices.go
- getResource.go
- initialization.go
- maitenance.go
- observeDeviceResources.go
- observeDevices.go
- observeResource.go
- offboardDevice.go
- onboardDevice.go
- options.go
- ownDevice.go
- patchResourceLinksEndpoints.go
- refDevice.go
- refDeviceCache.go
- updateResource.go