Ejemplo n.º 1
0
        public BluetoothDataLayer()
        {
            timer = new Timer
            {
                Interval = 15000
            };
            timer.Elapsed += OnTimerTick;
            timer.Start();

            ble        = CrossBluetoothLE.Current;
            adapter    = ble.Adapter;
            deviceList = new List <MyDeviceView>();

            MinRssi = -100;

            adapter.DeviceDiscovered += (s, a) =>
            {
                Console.WriteLine("DeviceFound");
                if (a.Device.Rssi >= MinRssi)
                {
                    if (deviceList.Exists(d => d.id == a.Device.Id))
                    {
                        var dev = deviceList.Find(d => d.id == a.Device.Id);
                        dev.UpdateCountdown();
                        dev.RSSI = a.Device.Rssi;
                    }
                    else
                    {
                        deviceList.Add(new MyDeviceView(a.Device));
                    }
                }
            };
        }
Ejemplo n.º 2
0
        public BluetoothDataLayer()
        {
            timer = new Timer
            {
                Interval = 15000
            };
            timer.Elapsed += OnTimerTick;
            timer.Start();

            ble        = CrossBluetoothLE.Current;
            adapter    = ble.Adapter;
            deviceList = new List <MyDeviceView>();

            adapter.DeviceDiscovered += (s, a) =>
            {
                if (a.Device.Name != null && a.Device.Name.Contains("Beacon"))
                {
                    if (deviceList.Exists(d => d.id == a.Device.Id))
                    {
                        var dev = deviceList.Find(d => d.id == a.Device.Id);
                        dev.UpdateCountdown();
                    }
                    else
                    {
                        deviceList.Add(new MyDeviceView(a.Device));
                    }
                }
            };
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
            fab.Click += FabOnClick;

            if (Android.Support.V4.Content.ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) == (int)Android.Content.PM.Permission.Granted)
            {
                Android.Util.Log.Debug("BLE", "PERMIT OF LOCATION ALEADY SUTISFIED");
            }
            else
            {
                ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.AccessFineLocation }, 1);
            }

            var ble = CrossBluetoothLE.Current;
            adapter = CrossBluetoothLE.Current.Adapter;
            var state = ble.State;
            Android.Util.Log.Debug("BLE", state.ToString());
            bleScan();

        }
        public HeartRateAndroidBLE(string deviceName)
        {
            _deviceName = deviceName;

            _adapter = CrossBluetoothLE.Current.Adapter;
            _ble     = CrossBluetoothLE.Current;

            _adapter.DeviceDiscovered     += _adapter_DeviceDiscovered;
            _adapter.ScanTimeoutElapsed   += _adapter_ScanTimeoutElapsed;
            _adapter.DeviceConnectionLost += _adapter_DeviceConnectionLost;

            _status = Status.STATUS_DEAD;
        }
Ejemplo n.º 5
0
        public DeviceManager()
        {
            bluetoothLe = CrossBluetoothLE.Current;
            adapter     = CrossBluetoothLE.Current.Adapter;

            devices = new List <DeviceListViewItem>();

            userDialogs = UserDialogs.Instance;
            bluetoothLe.StateChanged     += OnStateChanged;
            Adapter.DeviceDiscovered     += OnDeviceDiscovered;
            Adapter.ScanTimeoutElapsed   += Adapter_ScanTimeoutElapsed;
            Adapter.DeviceDisconnected   += OnDeviceDisconnected;
            Adapter.DeviceConnectionLost += OnDeviceConnectionLost;
            permissions = CrossPermissions.Current;
        }
Ejemplo n.º 6
0
        public BluetoothService()
        {
            Bluetooth = CrossBluetoothLE.Current;
            Adapter   = CrossBluetoothLE.Current.Adapter;

            Adapter.DeviceDiscovered += (s, e) =>
            {
                OnDeviceLoaded?.Invoke(this, new BluetoothEventArgs(e.Device));
            };

            Bluetooth.StateChanged += (s, e) =>
            {
                OnStatusChanged?.Invoke(this, new StatusBluetoothEventArgs(e.NewState));
            };
        }
Ejemplo n.º 7
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);

            _bluetooth              = CrossBluetoothLE.Current;
            _bleAdapter             = CrossBluetoothLE.Current.Adapter;
            _bleAdapter.ScanTimeout = 10000;

            InitializeButtons();

            _bleAdapter.DeviceDiscovered += _bleAdapter_DeviceDiscovered;

            _heartService    = new Intent(this, typeof(HeartService));
            _acceleroService = new Intent(this, typeof(AcceleroService));
        }
Ejemplo n.º 8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.layoutble);

            ble                = CrossBluetoothLE.Current;
            adapter            = CrossBluetoothLE.Current.Adapter;
            deviseList         = new ObservableCollection <IDevice>();
            deviseHashCodeList = new ObservableCollection <string>();

            if (Build.VERSION.SdkInt >= Build.VERSION_CODES.M)
            {
                RequestPermissions(new System.String[] { Manifest.Permission.AccessCoarseLocation }, PERMISSION_REQUEST_COARSE_LOCATION);
            }

            btnStatus_Clicked        = (Button)FindViewById(Resource.Id.btnStatus_Clicked);
            btnStatus_Clicked.Click += BtnStatusClicked;

            btnScan_Clicked        = (Button)FindViewById(Resource.Id.btnScan_Clicked);
            btnScan_Clicked.Click += BtnScanClicked;

            btnConnect_Clicked        = (Button)FindViewById(Resource.Id.btnConnect_Clicked);
            btnConnect_Clicked.Click += BtnConnectClicked;



            btnGetServices_Clicked        = (Button)FindViewById(Resource.Id.btnGetServices_Clicked);
            btnGetServices_Clicked.Click += BtnGetServicesClicked;

            btnGetcharacters_Clicked        = (Button)FindViewById(Resource.Id.btnGetcharacters_Clicked);
            btnGetcharacters_Clicked.Click += BtnGetCharactersClicked;



            btnGetRW_Clicked        = (Button)FindViewById(Resource.Id.btnGetRW_Clicked);
            btnGetRW_Clicked.Click += BtnGetRWClicked;



            lv         = (ListView)FindViewById(Resource.Id.lv);
            adapter_lv = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, deviseHashCodeList);

            lv.ItemClick += OnDeviceClicked;
        }
Ejemplo n.º 9
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            // Use this check to determine whether BLE is supported on the device. Then
            // you can selectively disable BLE-related features.
            if (!PackageManager.HasSystemFeature(Android.Content.PM.PackageManager.FeatureBluetoothLe))
            {
                Toast.MakeText(this, "Not supported", ToastLength.Short).Show();
                Finish();
            }

            _bluetoothLE = CrossBluetoothLE.Current;
            _adapter     = CrossBluetoothLE.Current.Adapter;
            _adapter.DeviceDiscovered += DeviceDiscovered;

            var scanBtn = FindViewById <Button>(Resource.Id.buttonScan);

            scanBtn.Click += ScanBtn_Click;

            var connectBtn = FindViewById <Button>(Resource.Id.buttonConnect);

            connectBtn.Click += ConnectBtn_Click;

            var getDataBtn = FindViewById <Button>(Resource.Id.buttonGetData);

            getDataBtn.Click += GetDataBtn_Click;

            Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);

            _listView = FindViewById <RecyclerView>(Resource.Id.listView);
            _listView.HasFixedSize = true;

            var layoutManager = new LinearLayoutManager(this);

            _listView.SetLayoutManager(layoutManager);

            _listViewAdapter = new BleDevicesAdapter();
            _listView.SetAdapter(_listViewAdapter);
        }
        public bool StartDeviceScan()
        {
            _adapter = CrossBluetoothLE.Current.Adapter;
            _devices = new List <IDevice>();
            _cancellationTokenSource = new CancellationTokenSource();

            _adapter.DeviceDiscovered   += _adapter_DeviceDiscovered;
            _adapter.ScanTimeoutElapsed += _adapter_ScanTimeoutElapsed;
            _adapter.ScanTimeout         = 15000; // millisecondi

            foreach (var dev in _adapter.ConnectedDevices)
            {
                _adapter_DeviceDiscovered(dev);
            }

            _adapter.StartScanningForDevicesAsync(serviceUuids: null, deviceFilter: null, cancellationToken: _cancellationTokenSource.Token);
            return(true);
        }
Ejemplo n.º 11
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Main);

            databaseAddress = createAddress();
            connection      = new SqlConnection(databaseAddress.ConnectionString);
            // Create your application here
            TextView scanview = FindViewById <TextView>(Resource.Id.scanview);
            TextView txt      = FindViewById <TextView>(Resource.Id.txtdata);

            listView  = FindViewById <ListView>(Resource.Id.listView1);
            txt.Text += clientId;

            ble        = CrossBluetoothLE.Current;
            adapter    = CrossBluetoothLE.Current.Adapter;
            deviceList = new ObservableCollection <IDevice>();


            Button Test = FindViewById <Button>(Resource.Id.btnTest);

            Test.Click += delegate
            {
                var state = ble.State;
                var info  = ble.State.ToString();
                new AlertDialog.Builder(this)
                .SetMessage(info)
                .SetTitle("Bluetooth State")
                .Show();
            };

            Button button = FindViewById <Button>(Resource.Id.dbbutton);

            button.Click += delegate
            {
                //var db = new SQLiteConnection(dbPath);
                ////set up table
                //db.CreateTable<Contact>();

                ////create new contact obj

                Contact myContact = new Contact(clientId, prevLocation);

                ////store obj into table
                //db.Insert(myContact);
                connection.Open();
                StringBuilder query = new StringBuilder();
                query.Append("INSERT INTO UsersTable(Username, Location)VALUES('" + myContact.Name + "', '" + myContact.Location + "')");
                string     sqlquery = query.ToString();
                SqlCommand command  = new SqlCommand(sqlquery, connection);
                command.ExecuteNonQuery();
                connection.Close();
            };
            Button showbutton = FindViewById <Button>(Resource.Id.showbtn);

            showbutton.Click += delegate
            {   //set up db connection
                var db = new SQLiteConnection(dbPath);

                //connect to table
                var table = db.Table <Contact>();

                foreach (var item in table)
                {
                    Contact myContact = new Contact(item.Name, item.Location);
                    txt.Text += myContact + "\n";
                }
            };


            Button BLEscan = FindViewById <Button>(Resource.Id.scanner);

            BLEscan.Click += async delegate

            {
                scanview.Text = "";

                deviceList.Clear();

                adapter.DeviceDiscovered += (s, a) =>
                {
                    deviceList.Add(a.Device);
                };
                await adapter.StartScanningForDevicesAsync();

                scanview.Text += "Device count:" + deviceList.Count;

                List <IDevice> x = deviceList
                                   .Where(device => device.Name != null) //&& device.Rssi > -30)
                                   .ToList();
                scanview.Text += "Var X:" + x.Count;

                CreateList(x);
                prevLocation = x.ElementAt(0).Name;
            };
        }
 public void CheckMyAdapter(IAdapter adapter)
 {
     adapter.StartScanningForDevicesAsync();
 }
Ejemplo n.º 13
0
 public void CheckMyAdapter(IAdapter adapter)
 {
     adapter.StartScanningForDevicesAsync();
 }