"Control plane" considerations
Discussions around potential new RFID/LLRP device service highlight that it can be inconvenient to control some device interactions via existing EdgeX mechanisms.
Example device profile extract:
deviceResources: - name: "Action" properties: value: { "type": "String", readWrite: "W" } - name: "ROSpecID" description: "Client-generated Reader Operation Specification Identifier" properties: value: { type: "uint32", readWrite: "W", defaultValue: "1" } - name: "AccessSpecID" description: "Client-generated Access Specification Identifier" properties: value: { type: "uint32", readWrite: "W", defaultValue: "1" } deviceCommands: - name: enableROSpec set: - { deviceResource: "ROSpecID", parameter: 0 } - { deviceResource: "Action", parameter: "Enable" } - name: startROSpec set: - { deviceResource: "ROSpecID", parameter: 0 } - { deviceResource: "Action", parameter: "Start" }
Potential areas of improvement for EdgeX:
- Allow for more dynamic device profiles
- We could provide ways of performing "safe" updates to a Device Profile, such as adding new Device Resources
- Implement command chaining
- In the data plane, this provides for hierarchical structure. For control, it allows commands made up of subcommands
- Add new modelling for control-type operations
- Rather than trying to fit such things onto the data model.
- This may help with the common request to be able to write to the device and get results back