Re: iotivity lite bridge - oc_remove_device


Just finished reading and playing with the ocfbridging branch.
So far, it seems to have all I need.
Still, I have some questions. After playing with the dummy bridge example and using Device Spy to read /bridge/vodlist, I have an empty list (even if I try to select 1 in the menu to simulate light 1 or 7 to start the virtual discovery.)
So I must have missed something. What client (if any) are you using for testing the bridge?
I know it is a work in progress, but if I can help, let me know.

Other question: If my Bluetooth device requires a PIN code for pairing, how do I do that with OCF to transfer the pin code request and return the user's pin code? Do I have to do something myself using a dedicated resource?


Le lundi 4 mai 2020 à 15:56:20 UTC+2, Maloor, Kishen <kishen.maloor@...> a écrit :



Please take a look inside the "ocfbridging" branch.


There's some in-progress work over there that should directly address your need. Specifically, it adds infrastructure that allows an application to

dynamically attach and detach virtual OCF Devices based on the presence of related entities in any 3rd party technology. The states of those virtual Devices

are persisted over the duration of their use. Further, this framework incorporates the specified semantics with respect to discoverability (on the OCF side) of

virtual Devices to fulfill some security requirements outlined in the OCF bridging specification.


You should be able to build an application that interacts with Bluetooth devices (your code), and map those to virtual OCF Devices using the said infrastructure.






Kishen Maloor

Intel Corporation


From: <> on behalf of "fariouche via" <fariouche@...>
Reply-To: "fariouche@..." <fariouche@...>
Date: Saturday, May 2, 2020 at 11:50 AM
To: "" <>
Subject: [dev] iotivity lite bridge - oc_remove_device



I've finished to read the OCF specification, and as far as I understand for the bridge, each discovered device is associated to a virtual OCF device.
I would like to bridge some bluetooth devices.
So I discover them, pair them (here I think I missed something. How do we pair a bluetooth device that requires a pin?), and then I create a device using oc_add_device() with its associated resources.
So far so good.
But I need to know the "index" of this new virtual device. (currently I have a counter incremented each time I add a device)
However, if the bluetooth device is removed, there is no oc_remove_device() function.... and this will also need the oc_add_device function  to return the index too.

Looking at the code, I see that the oc_add_device() just add a device struct to an array (static or dynamically allocated).
The index is then used everywhere to reference this device.

Maybe a simple solution is to:
1- change the implementation to have to look into the array for a free slot, and associate the index.
2- return this index
3- add oc_remove_device(int index), taking care of de-registering properly the associated resources (or return an error and let the user remove the resources first before calling this function)

I have the feeling that it will not be that easy, so here I am asking you what you think?

Thank you for you help!

Join to automatically receive all group messages.