-
September 20th, 2015, 03:56 AM
#1
Using ObservableCollection as a Search Mechanism
I am using Xamarin in C#, to build a cross platform BLE app. It is based on this example app using the Monkey.Robotics plugin. All the examples use an `ObservableCollection<IDevice> devices;` line, to populate a ListView with all the scanned results which the user can then manually select, setting a variable to equal that value. i.e. `var device = e.SelectedItem as IDevice;` I am connecting to a known type of device, so after that device is selected, I want to then automatically set the Service and Characteristic variables. The structure of `IDevices` seems a bit tricky, so I thought it would be easiest to enumerate the Services and then automatically select the one that matches the ID I am looking for. Like This:
Code:
IAdapter adapter;
IDevice device;
IService AppService;
ObservableCollection<IService> services;
adapter.DeviceConnected += (s, e) => {
device = e.Device;
// when services are discovered
device.ServicesDiscovered += (object se, EventArgs ea) => {
if (services.Count == 0)
Device.BeginInvokeOnMainThread (() => {
foreach (var service in device.Services) {
if (service.ID == 0x2A37.UuidFromPartial ()) {
AppService = service as IService;
} else {
services.Add (service);
}
}
} );
} ;
// start looking for services
device.DiscoverServices ();
};
Is this how you would do it, or would you collect all the results and then check through them? In which case, how would you structure that?
I could also have a function, to `SearchFor(x)`, and set up a ubiquitous `ObservableCollection`, and just throw x into it? Not sure if it could deal with both `IService` and `ICharacteristic`, unless I just has 2 if statements and defined different behaviour for each. Still, it would be god to see some suggestions for the best way to move forward.
Any thoughts / suggestions would be much appreciated. Thanks.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|