Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Use case: I need to be able to write an edge device application that uses both the Edgent APIs/programming model for analytics and the IBM Watson IoT Platform "Managed Device" APIs for other capabilities (e.g., to support the WIoTP "reboot the device" protocol).
I don't need the Edgent IoT connector to support WIoTP defined "Managed Device" capabilities – e.g., I don't need my Edgent application to be able to create a TStream of subscribed "WIoTP device management" commands using IotDevice.commands(...).
Today the IotpDevice connector precludes this use case. It hides the WIoTP API objects used to connect to WIoTP. The WIoTP DeviceClient API is for a simple device (used by today's connector); ManagedDevice is for a "managed device" – ManagedDevice extends DeviceClient.
I think the best way to enable this use case, and generally add more flexibility in configuring an underlying WIoTP connection, would be to add a IotpDevice(DeviceClient) constructor, allowing the application to create and use the ManagedDevice object for WIoTP managed device capabilities and intialize the IotpDevice connector with it.