private void OnBLEDeviceDisconnected(object sender)
        {
            // Device is disconnected, Get the device details.
            if (sender != null && sender is BTLESerial)
            {
                _loraSerialDevice.Send(String.Format("Remote device disconnected from node. Remote device id - {0}", (sender as BTLESerial).ConnectedDevice));
            }

            _pulseData.Clear();
            _criticalRate.Clear();
        }
        public MainPage()
        {
            InitializeComponent();
            serialPort           = DependencyService.Get <ISerialPort>();
            serialPort.Received += (s, data) =>
            {
                recvCount += data.Length;
            };
            serialPort.Open("/dev/ttyS3", 115200);

            Task.Run(() =>
            {
                var sendBuffer = new byte[234];
                for (byte i = 0; i < sendBuffer.Length; i++)
                {
                    sendBuffer[i] = i;
                }

                while (true)
                {
                    //System.Diagnostics.Debug.WriteLine($"Count:{sendCount} {recvCount}");
                    //Device.BeginInvokeOnMainThread(() =>
                    //{
                    //    labSend.Text = $"Send:{sendCount}";
                    //    labRecv.Text = $"Recv:{recvCount}";
                    //});

                    serialPort.Send(sendBuffer);
                    sendCount += sendBuffer.Length;
                    Thread.Sleep(200);
                }
            });

            Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
            {
                labSend.Text = $"Send:{sendCount}";
                labRecv.Text = $"Recv:{recvCount}";
                // do something every 60 seconds
                return(true); // runs again, or false to stop
            });
        }