Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: [UCR] Device functions #1288

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs_src/design/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@

| Name/Link | Short Description |
|-------------------------------------------------------------------------------------|---------------------------------------------------------------------|
| [Bring Your Own Vault](./ucr/Bring-Your-Own-Vault.md) | Use Case for bringing your own Vault |
| [Bring Your Own Vault](./ucr/Bring-Your-Own-Vault.md) | Use Case for bringing your own Vault |
| [Common Configuration](./ucr/Common Configuration.md) | Use Case for having Common configuration used by all EdgeX services |
| [Core Data Retention and Persistent Cap](./ucr/Core-Data-Retention.md) | Use Case for capping readings in Core Data |
| [Device Functions](./ucr/Device-Functions.md) | Use Case for Device Functions |
| [Device Parent-Child Relationships](./ucr/Device-Parent-Child-Relationships.md) | Use Case for Device Parent-Child Relationships |
| [Extending Device Data](./ucr/Extending-Device-Data.md) | Use Case for Extending of Device Data by Application Services |
| [Provision Watch via Device Metadata](./ucr/Provision-Watch-via-Device-Metadata.md) | Use Case for Provision Watching via Additional Device Metadata |
Expand Down
29 changes: 29 additions & 0 deletions docs_src/design/ucr/Device-Functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Use Case Title
Device Functions

## Submitters
Darryl Mocek (Oracle)

## Changelog

## Market Segments
Any segments using EdgeX with device services with devices that support device functions.

## Motivation
Many devices contain functions that can be called, like the ability to reboot a device. EdgeX currently does not support the ability to invoke device functions, making parts of devices inaccessible.

## Target Users
Any users using EdgeX with device services with devices that support device functions.

## Description
Some devices support functions, invoking some action on a device, similar to a function in software. These functions unlock important functionality on the device.

## Existing solutions
EdgeX supports setting attributes on a device. The workaround for calling device functions currently in EdgeX is to configure a device to call a function when setting at attribute, which isn't always feasible. For example, to call a 'reboot' device function on a device, a 'reboot' attribute would have to be created and it would have to be set to a value to invoke the reboot function on the device.

## Requirements
Each Device should have a function resource and its parameters defined to support calling the device function with appropriate parameters.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Each Device should have a function resource and its parameters defined to support calling the device function with appropriate parameters.
- Device Profiles shall have function resources which includes parameters defined to support calling the device function(s) with appropriate parameters.
- A new `Call` Command type shall be created to support calling the new function resources.


## Related Issues

## References