Exemplo n.º 1
0
        async Task OnConnectDeviceCommand(ConnectDeviceCommand arg)
        {
            var device = await _deviceManager.ConnectDevice(arg.Mac, SdkConfig.ConnectDeviceTimeout);

            if (device == null)
            {
                device = await _deviceManager.ConnectDevice(arg.Mac, SdkConfig.ConnectDeviceTimeout / 2);
            }

            if (device != null)
            {
                await device.WaitInitialization(SdkConfig.DeviceInitializationTimeout, default);
            }

            await _hub.Publish(new ConnectDeviceResponse(device, arg.Mac));
        }
        private async void OnConnectDeviceCommand()
        {
            if (!Connecting)
            {
                if (SelectedDevice != null)
                {
                    if (CrossBleAdapter.Current.Status == AdapterStatus.PoweredOn || CrossBleAdapter.Current.Status == AdapterStatus.Unsupported)
                    {
                        try
                        {
                            Connecting = true;
                            ConnectDeviceCommand.RaiseCanExecuteChanged();

                            bleService.Connect();
                            var timeOut = 0;
                            while (SelectedDevice.ConnectState != DeviceState.Connected && timeOut < 30)
                            {
                                await Task.Delay(TimeSpan.FromSeconds(1));

                                timeOut++;
                            }
                            Connecting = false;
                            ConnectDeviceCommand.RaiseCanExecuteChanged();
                            if (SelectedDevice.ConnectState != DeviceState.Connected)
                            {
                                await dialogService.DisplayAlertAsync("Bluetooth", "Device failed to connect, please check if the device is On", "Ok");
                            }
                            else
                            {
                                RaisePropertyChanged(nameof(SelectedDevice));
                                //try
                                //{
                                //    BatteryToken = new CancellationTokenSource();
                                //    DeterminingBatteryLevel = true;
                                //    CheckBatteryLevelCommand.RaiseCanExecuteChanged();
                                //    BatteryLevel = double.NaN;
                                //    bleService.SendCommand(new GetProgramCommand(GetProgramCommand.BatteryVoltageLevel), BatteryToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string blevel)
                                //        {
                                //            if (int.TryParse(blevel, out var r))
                                //            {
                                //                var percentage = bleService.ResolveBatteryLevel(r);
                                //                BatteryLevel = percentage;

                                //            }
                                //        }
                                //        DeterminingBatteryLevel = false;
                                //        CheckBatteryLevelCommand.RaiseCanExecuteChanged();

                                //    }, () =>
                                //    {
                                //        BatteryLevel = double.NaN;
                                //        DeterminingBatteryLevel = false;
                                //        CheckBatteryLevelCommand.RaiseCanExecuteChanged();
                                //    });

                                //}
                                //catch (Exception e)
                                //{
                                //    Crashes.TrackError(e);
                                //}
                                ////DeterminingSystemInfo = true;
                                //try
                                //{
                                //    SystemToken = new CancellationTokenSource();
                                //    DeviceSerialNumber = "";
                                //    bleService.SendCommand(new GetSystemCommand(GetSystemCommand.SystemSerialNumber), SystemToken.Token, 3, (a) =>
                                //      {
                                //          if (a is string serialNumber)
                                //          {
                                //              DeviceSerialNumber = serialNumber;
                                //          }

                                //      }, () =>
                                //     {
                                //         DeviceSerialNumber = "Failed To Fetch";
                                //     });
                                //    LoadCellSerialNumber = "";
                                //    bleService.SendCommand(new GetSystemCommand(GetSystemCommand.LoadCellSerialNumber), SystemToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string serialNumber)
                                //        {
                                //            LoadCellSerialNumber = serialNumber;
                                //        }

                                //    }, () =>
                                //    {
                                //        LoadCellSerialNumber = "Failed To Fetch";
                                //    });
                                //    GeophoneOneSerialNumber = "";
                                //    bleService.SendCommand(new GetSystemCommand(GetSystemCommand.GeophoneOneSerialNumber), SystemToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string serialNumber)
                                //        {
                                //            GeophoneOneSerialNumber = serialNumber;
                                //        }

                                //    }, () =>
                                //    {
                                //        GeophoneOneSerialNumber = "Failed To Fetch";
                                //    });
                                //    GeophoneTwoSerialNumber = "";
                                //    bleService.SendCommand(new GetSystemCommand(GetSystemCommand.GeophoneTwoSerialNumber), SystemToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string serialNumber)
                                //        {
                                //            GeophoneTwoSerialNumber = serialNumber;
                                //        }

                                //    }, () =>
                                //    {
                                //        GeophoneTwoSerialNumber = "Failed To Fetch";
                                //    });
                                //    GeophoneThreeSerialNumber = "";
                                //    bleService.SendCommand(new GetSystemCommand(GetSystemCommand.GeophoneThreeSerialNumber), SystemToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string serialNumber)
                                //        {
                                //            GeophoneThreeSerialNumber = serialNumber;
                                //        }

                                //    }, () =>
                                //    {
                                //        GeophoneThreeSerialNumber = "Failed To Fetch";
                                //    });

                                //}
                                //catch (Exception e)
                                //{
                                //    Crashes.TrackError(e);
                                //}

                                //try
                                //{
                                //    ProgramDate = "";
                                //    ProgramToken = new CancellationTokenSource();
                                //    bleService.SendCommand(new GetProgramCommand(GetProgramCommand.UpdateDate), ProgramToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string date)
                                //        {
                                //            ProgramDate = date;
                                //        }

                                //    }, () =>
                                //    {
                                //        ProgramDate = "Failed To Fetch";
                                //    });
                                //    Version = "";
                                //    bleService.SendCommand(new GetProgramCommand(GetProgramCommand.Version), ProgramToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string vs)
                                //        {
                                //            Version = vs;
                                //        }

                                //    }, () =>
                                //    {
                                //        Version = "Failed To Fetch";
                                //    });
                                //    DropCount = "";
                                //    bleService.SendCommand(new GetProgramCommand(GetProgramCommand.DropCount), ProgramToken.Token, 3, (a) =>
                                //    {
                                //        if (a is string dc)
                                //        {
                                //            DropCount = dc;
                                //        }

                                //    }, () =>
                                //    {
                                //        DropCount = "Failed To Fetch";
                                //    });
                                //}
                                //catch (Exception e)
                                //{
                                //    Crashes.TrackError(e);
                                //}
                            }
                        }
                        catch (Exception e)
                        {
                            // Crashes.TrackError(e);
                            Connecting = false;
                            ConnectDeviceCommand.RaiseCanExecuteChanged();
                        }
                    }
                    else
                    {
                        await dialogService.DisplayAlertAsync("Bluetooth", "Please check your Bluetooth Settings", "Ok");
                    }
                }
            }
        }