Exemple #1
0
 private void AuthBLE()
 {
     // 기기 인증
     device = new MiBand(_deviceManager);
     device.Authenticate(OnAuth);
     button3.Enabled = false;
 }
Exemple #2
0
        // delegate 처리 함수
        void OnHeartrateChange(MiBand d, UInt16 v)
        {
            if (InvokeRequired)
            {
                OnHeartrateChangeHandler c = new OnHeartrateChangeHandler(OnHeartrateChange);
                Invoke(c, new object[] { d, v });
            }
            else
            {
                listBox3.Items.Add(String.Format("{0} bpm", v));
                nowBPM         = v;
                nowTime        = 17;
                timer1.Enabled = true;
                timer2.Enabled = true;

                ServerBPMData serverPostData = new ServerBPMData();
                serverPostData.nowBPM      = (int)v;
                serverPostData.packet_Type = (int)ServerPacketType.BPMData;
                AsynchronousSocketServer.Send(asyncServer.getSocket(), Packet.Serialize(serverPostData));

                //asyncServer.SendPacket(v, asyncServer.GetSocket);
            }
        }
Exemple #3
0
 // delegate 처리 함수
 void OnAuth(MiBand d, bool s)
 {
     if (InvokeRequired)
     {
         OnAuthHandler c = new OnAuthHandler(OnAuth);
         Invoke(c, new object[] { d, s });
     }
     else
     {
         if (s)
         {
             // 연결에 성공 했을시
             button4.Enabled = true;
             publicPostData serverPostData = new publicPostData();
             serverPostData.data        = (int)ServerStatus.BLEAuthComplete;
             serverPostData.packet_Type = (int)ServerPacketType.SendPacket;
             AsynchronousSocketServer.Send(asyncServer.getSocket(), Packet.Serialize(serverPostData));
         }
         else
         {
             MessageBox.Show("Auth failed !", "Device error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
Exemple #4
0
        private async void initialSetup()
        {
            var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

            // guardo la pulsera en un singleton global
            MiBand.Band = await MiBand.FirstMatch();

            // pero la asigno localmente para que no de tanto por culo
            band = MiBand.Band;

            if (band != null)
            {
                ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

                if (localSettings.Containers.ContainsKey("MiBand"))
                {
                    var    miBandSettings = localSettings.Containers["MiBand"];
                    string savedMAC       = (string)miBandSettings.Values["MAC"];
                    string currentMAC     = await band.getAddress();

                    if (savedMAC.Equals(currentMAC))
                    {
                        // misma pulsera
                        Debug.WriteLine("[mainpage] misma pulsera");
                        band.Settings = miBandSettings;
                    }
                    else
                    {
                        // diferente pulsera
                        Debug.WriteLine("[mainpage] diferente pulsera");
                        properties.MACAddress = currentMAC;
                        bool ret = await band.ConfigureAsSettings();

                        if (ret)
                        {
                            Debug.WriteLine("[mainpage] error al configurar como en los ajustes");
                        }
                    }
                }
                else
                {
                    MessageDialog dialog = new MessageDialog(loader.GetString("GreetingText"), loader.GetString("GreetingTitle"));
                    await dialog.ShowAsync();

                    // la aplicacion esta recien instalada?
                    // ir a pagina de configuracion inicial
                    Debug.WriteLine("[mainpage] no hay datos de pulsera");
                    if (await band.CreateSettings())
                    {
                        string currentMAC = await band.getAddress();

                        properties.MACAddress = currentMAC;
                        properties.LoadingV   = Visibility.Collapsed;
                        properties.Loading    = false;
                        this.Frame.Navigate(typeof(Pages.SetUserInfo), "InitialSetup");
                        return;
                    }
                }
                updateInfoFromSettings();
                properties.LoadingV = Visibility.Collapsed;
                properties.Loading  = false;
                Task.Factory.StartNew(() => { finishSetup(); });
            }
            else
            {
                // si no detectamos la pulsera se cierra la aplicacion y fuera
                MessageDialog dialog = new MessageDialog(loader.GetString("MiBandNotFoundText"), loader.GetString("MiBandNotFoundTitle"));
                await dialog.ShowAsync();

                updateInfoFromSettings();
                properties.LoadingV = Visibility.Collapsed;
                properties.Loading  = false;
                //Application.Current.Exit();
            }
        }
 internal HeartRateService(MiBand band)
 {
     this.band = band;
 }
        private async void OnConnectClicked(object sender, RoutedEventArgs e)
        {
            //var serviceUIID = new Guid("F000AA20-0451-4000-B000-000000000000");

            //Find the devices that expose the service
            try
            {
                DeviceInformationCollection devices = await DeviceInformation.FindAllAsync();

                DeviceInformation device = devices.FirstOrDefault(x => x.Name == "MI1S");

                if (device == null)
                {
                    return;
                }

                Output(device);

                GattDeviceService service = await GattDeviceService.FromIdAsync(device.Id);

                if (service == null)
                {
                    return;
                }

                /*
                 * IReadOnlyList<GattCharacteristic> features = service.GetAllCharacteristics();
                 * Output(features);
                 * IReadOnlyList<GattDeviceService> includedServices = service.GetAllIncludedServices();
                 * Output(includedServices);
                 * // */

                BluetoothLEDevice bleDevice = service.Device;

                _band = new MiBand(bleDevice);
                //await band.PairAsync();

                //string name = await band.ReadNameAsync();
                //Debug.WriteLine("Got a name ! : " + name);

                /*
                 *  GattDeviceService batteryService = bleDevice.GetGattService(new Guid("0000fee0-0000-1000-8000-00805f9b34fb"));
                 *  Debug.WriteLine("Battery service");
                 *  Output(batteryService);
                 */
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Exception : {ex.Message}");
                Debug.WriteLine($"Trace : {ex.StackTrace}");
            }

            /*
             *  var device = devices.FirstOrDefault(d => d.Name == "TI BLE Sensor Tag");
             *
             *  if (device != null)
             *  {
             *          //Connect to the service
             *          var service = await GattDeviceService.FromIdAsync(device.Id);
             *  }
             */
        }
Exemple #7
0
 internal VibrationService(MiBand band)
 {
     this.band = band;
 }
 internal ActivityService(MiBand band)
 {
     this.band = band;
 }