Поиск и выбор механизмов в C#
Я использую Xamarin в C# для создания кросс-платформенного приложения BLE. Он основан на этом примере приложения с использованием Обезьяна.Робототехника плагин. Во всех примерах используется a
ObservableCollection<IDevice> devices;строка, чтобы заполнить ListView всеми отсканированными результатами, которые пользователь затем может выбрать вручную, установив переменную равной этому значению. т. е.
var device = e.SelectedItem as IDevice;Я подключаюсь к известному типу устройства, поэтому после выбора этого устройства я хочу автоматически установить служебные и характеристические переменные. Структура "IDevices" кажется немного сложной, поэтому я подумал, что будет проще всего перечислить службы, а затем автоматически выбрать ту, которая соответствует идентификатору, который я ищу. подобный этому:
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 (); };
Это то, как вы это сделаете, или вы соберете все результаты, а затем проверите их? В таком случае, как бы вы это структурировали?
Я также мог бы иметь функцию " SearchFor(x)`, настроить вездесущую `ObservableCollection` и просто бросить в нее x? Не уверен, что он может иметь дело как с "IService", так и с "ICharacteristic", если только у меня нет 2 операторов if и для каждого из них определено разное поведение. Тем не менее, было бы хорошо увидеть некоторые предложения для лучшего способа двигаться вперед.
Любые мысли / предложения будут очень признательны. Спасибо.