示例#1
0
        public ItemDetailPage()
        {
            InitializeComponent();

            var item = new BLEDev(null);

            viewModel      = new ItemDetailViewModel(item);
            BindingContext = viewModel;
        }
示例#2
0
        public NewItemPage()
        {
            InitializeComponent();

            Item = new BLEDev
            {
                Name        = "Item name",
                Description = "This is an item description."
            };

            BindingContext = this;
        }
示例#3
0
        async private Task updateDev(BLEDev dev)
        {
            var old = Items.FirstOrDefault((x) => x.Id == dev.Id);

            if (old == null)
            {
                switch (Device.RuntimePlatform)
                {
                case Device.iOS:
                    break;

                default:
                    if (dev.iBeacon.valid)
                    {
                        if (dev.iBeacon.uuid == "{494E4743-4849-5053-4F46-46494345424A}")
                        {
                            await View.DisplayAlert("INGCHIPS", "Welcome to INGChips' Beijing Office!",
                                                    "Got It");
                        }
                    }
                    break;
                }

                Items.Add(dev);
            }
            else
            {
                if (dev.BLEAdvSimpleInfos.Count < 1)
                {
                    return;
                }
                var i = Items.IndexOf(old);
                Items[i] = dev;
                //Items.RemoveAt(i);
                // Items.Insert(i, dev);
            }
        }
示例#4
0
        public async Task ExecuteScan()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Items.Clear();
                var adapter = CrossBluetoothLE.Current.Adapter;
                adapter.ScanTimeout = 0x7fffffff;
                switch (Device.RuntimePlatform)
                {
                case Device.UWP:
                    adapter.ScanMode = Plugin.BLE.Abstractions.Contracts.ScanMode.Passive;
                    break;
                }

                adapter.DeviceAdvertised += (s, a) =>
                {
                    var Item = new BLEDev(a.Device);
                    MessagingCenter.Send(this, "ScanResult", Item);
                };
                await adapter.StartScanningForDevicesAsync();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
示例#5
0
 public ItemDetailViewModel(BLEDev item = null)
 {
     Item  = item;
     Title = item?.Name;
 }