"Control plane" considerations

"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