private void connection()
        {
            //var logsVm = new LogsViewModel();
            //SystemLog.Instance.AddSink(logsVm);

            var bleAssembly = bleAdapterSaved.GetType().GetTypeInfo().Assembly.GetName();

            Log.Info(bleAssembly.Name + "@" + bleAssembly.Version);

            var bleGattServerViewModel = new BleGattServerViewModel(dialogsSaved, bleAdapterSaved);

            bleScanViewModel = new BleDeviceScannerViewModel(
                bleAdapter: bleAdapterSaved,
                dialogs: dialogsSaved,
                onSelectDevice:



                async p =>
            {
                await bleGattServerViewModel.Update(p);

                background_scan_page_detail.IsVisible = true;



                background_scan_page.IsVisible = false;


                BindingContext = bleGattServerViewModel;

                bleScanViewModel.StopScan();


                macAddress.Text = p.Address;
                deviceID.Text   = p.Name;
                rssiLevel.Text  = p.Rssi.ToString() + " db";



                await Task.Run(async() =>
                {
                    await Task.Delay(500); Device.BeginInvokeOnMainThread(async() =>
                    {
                        await bleGattServerViewModel.OpenConnection();

                        navigationDrawerList.IsEnabled = true;

                        navigationDrawerList.Opacity = 1;

                        bleGattServerViewModel.returnConnect();

                        savedServer = bleGattServerViewModel;
                    });
                });
            }


                );

            BindingContext = bleScanViewModel;



            NavigationPage.SetHasNavigationBar(this, false); //Turn off the Navigation bar

            Task.Run(async() =>
            {
                await Task.Delay(500); Device.BeginInvokeOnMainThread(() =>
                {
                    bleScanViewModel.ScanForDevicesCommand.Execute(true);
                });
            });
        }
        // Event for Menu Item selection, here we are going to handle navigation based
        // on user selection in menu ListView
        private async Task OnMenuItemSelectedAsync(object sender, SelectedItemChangedEventArgs e)
        {
            // if (Settings.IsConnectedBLE)
            //  {
            var    item = (PageItem)e.SelectedItem;
            String page = item.TargetType;

            switch (page)
            {
            case "ReadMTU":



                await Task.Run(async() =>
                {
                    await Task.Delay(1000); Device.BeginInvokeOnMainThread(() =>
                    {
                        Guid value = new Guid("2cf42000-7992-4d24-b05d-1effd0381208");
                        BleGattServiceViewModel account = new BleGattServiceViewModel(value, savedServer.returnConnect(), dialogsSaved);
                        Application.Current.MainPage.Navigation.PushAsync(new BleGattServicePage(account, savedServer.returnConnect(), dialogsSaved));
                        //    ReadMtuMethod(account, savedServer, dialogsSaved);


                        background_scan_page.Opacity        = 1;
                        background_scan_page_detail.Opacity = 1;
                        ContentNav.Opacity = 0;


                        ContentNav.IsVisible = false;


                        navigationDrawerList.SelectedItem = null;
                        navigationDrawerList.BeginRefresh();
                        navigationDrawerList.SelectedItem = null;
                        navigationDrawerList.EndRefresh();
                    });
                });

                //  Application.Current.MainPage.Navigation.PushAsync(new BleGattServicePage(account, bleGattServerViewModel.returnConnect(), dialogsSaved));

                break;
            }


            background_scan_page.Opacity = 1;

            ContentNav.Opacity = 0;


            ContentNav.IsVisible = false;



            // }
        }