Documentation
¶
Index ¶
- func GenerateSDKIdentityCertificate(ctx context.Context, signer core.CertificateSigner, sdkDeviceID string) (tls.Certificate, []*x509.Certificate, error)
- func GenerateSDKManufacturerCertificate(ctx context.Context, signer core.CertificateSigner, 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
- type ApplicationCallback
- type Client
- func (c *Client) Close(ctx context.Context) error
- func (c *Client) CoreClient() *core.Client
- func (c *Client) DisownDevice(ctx context.Context, deviceID string, opts ...CommonCommandOption) error
- func (c *Client) FactoryReset(ctx context.Context, deviceID string, opts ...CommonCommandOption) error
- func (c *Client) GetAccessTokenURL(ctx context.Context) (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) GetOnboardAuthorizationCodeURL(ctx context.Context, deviceID string) (string, 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, opts ...CommonCommandOption) 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 CommonCommandOption
- type Config
- type DeviceDetails
- type DeviceOwner
- type DeviceOwnershipBackendConfig
- type DeviceOwnershipSDKConfig
- type DeviceResourcesObservationEvent
- type DeviceResourcesObservationEvent_type
- type DeviceResourcesObservationHandler
- type DevicesObservationEvent
- type DevicesObservationEvent_type
- type DevicesObservationHandler
- type DiscoveryConfigurationOption
- 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) 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) (schema.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 core.OTMClient, ...) 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 UpdateOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateSDKIdentityCertificate ¶
func GenerateSDKIdentityCertificate(ctx context.Context, signer core.CertificateSigner, sdkDeviceID string) (tls.Certificate, []*x509.Certificate, error)
func GenerateSDKManufacturerCertificate ¶
func GenerateSDKManufacturerCertificate(ctx context.Context, signer core.CertificateSigner, 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 NewDeviceOwnershipSDKFromConfig ¶
func NewDeviceOwnershipSDKFromConfig(app ApplicationCallback, dialTLS core.DialTLS, dialDLTS core.DialDTLS, cfg *DeviceOwnershipSDKConfig) (*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, errors func(error)) (*Client, error)
NewClientFromConfig constructs a new local client from the proto configuration.
func (*Client) CoreClient ¶
func (*Client) DisownDevice ¶
func (c *Client) DisownDevice(ctx context.Context, deviceID string, opts ...CommonCommandOption) error
DisownDevice disowns a device. For unsecure device it calls factory reset. For secure device it disowns.
func (*Client) FactoryReset ¶
func (*Client) GetAccessTokenURL ¶
GetAccessTokenURL returns access token url.
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) GetOnboardAuthorizationCodeURL ¶
func (c *Client) GetOnboardAuthorizationCodeURL(ctx context.Context, deviceID string) (string, error)
GetOnboardAuthorizationCodeURL returns access auth code url.
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 (c *Client) ObserveDeviceResources(ctx context.Context, deviceID string, handler DeviceResourcesObservationHandler, opts ...CommonCommandOption) (string, error)
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 ¶
OffboardDevice is not supported by OCF spec(https://openconnectivity.org/specs/OCF_Device_To_Cloud_Services_Specification_v2.2.0.pdf)
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 CommonCommandOption ¶
type CommonCommandOption = interface {
// contains filtered or unexported methods
}
CommonCommandOption option definition.
type Config ¶
type Config struct { DeviceCacheExpirationSeconds int64 ObserverPollingIntervalSeconds uint64 // 0 means 3 seconds KeepAliveConnectionTimeoutSeconds uint64 // 0 means keepalive is disabled MaxMessageSize int DisablePeerTCPSignalMessageCSMs bool HeartBeatSeconds uint64 // specify one of: DeviceOwnershipSDK *DeviceOwnershipSDKConfig `yaml:",omitempty"` DeviceOwnershipBackend *DeviceOwnershipBackendConfig `yaml:",omitempty"` }
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 *schema.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, discoveryConfiguration core.DiscoveryConfiguration, own ownFunc, opts ...core.OwnOption) (string, error) GetAccessTokenURL(ctx context.Context) (string, error) GetOnboardAuthorizationCodeURL(ctx context.Context, deviceID string) (string, error) GetIdentityCertificate() (tls.Certificate, error) GetIdentityCACerts() ([]*x509.Certificate, error) Close(ctx context.Context) error }
func NewDeviceOwnerFromConfig ¶
func NewDeviceOwnerFromConfig(cfg *Config, dialTLS core.DialTLS, dialDTLS core.DialDTLS, app ApplicationCallback, 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 DiscoveryConfigurationOption ¶
type DiscoveryConfigurationOption struct {
// contains filtered or unexported fields
}
func WithDiscoveryConfiguration ¶
func WithDiscoveryConfiguration(cfg core.DiscoveryConfiguration) DiscoveryConfigurationOption
WithDiscoveryConfiguration allows to setup multicast request. By default 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) 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
- 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