Hi Alan,
maybe a function "GetRSSI" instead of a property is a more intuitive class design. Or just use a private field that stores the rssi as the return value for the property. When calling the function "refresh" the actual rssi will be stored in the field. That would be great. The connect is not the problem. To query the rssi a connect must be done - thats ok.
But without having a cached rssi-value, I must use this workaround: encapsulate the bluetooth-deviceinfo class in my own class and stored the rssi-Value in my private field, so I can access the rssi-value many times without performance issues. Ok, thats no problem, now my Code must store the rssi but I think the property is the right place for the caching code.
Are there any internal sortings done in the DiscoverDevices function? It seems that the device with the best rssi are the first element in the array, but can I rely on this?