Esempio n. 1
0
        /// <summary>
        /// Testing method for DisplayNHVN module
        /// </summary>
        private static void TestGlide()
        {
            var lcd = new DisplayNHVN(GHIElectronics.TinyCLR.Pins.FEZRaptor.I2cBus.Socket13, FEZRaptor.Socket16.Pin9, FEZRaptor.Socket13.Pin3,
                                      DisplayNHVN.DisplayTypes.Display7inch);

            Glide.SetupGlide(800, 480, 96, 0, lcd.displayController);
            string GlideXML = @"<Glide Version=""1.0.7""><Window Name=""instance115"" Width=""800"" Height=""480"" BackColor=""dce3e7""><Button Name=""btn"" X=""40"" Y=""60"" Width=""120"" Height=""40"" Alpha=""255"" Text=""Click Me"" Font=""4"" FontColor=""000000"" DisabledFontColor=""808080"" TintColor=""000000"" TintAmount=""0""/><TextBlock Name=""TxtTest"" X=""42"" Y=""120"" Width=""650"" Height=""32"" Alpha=""255"" Text=""TextBlock"" TextAlign=""Left"" TextVerticalAlign=""Top"" Font=""6"" FontColor=""0"" BackColor=""000000"" ShowBackColor=""False""/></Window></Glide>";

            //Resources.GetString(Resources.StringResources.Window)
            Window window = GlideLoader.LoadWindow(GlideXML);

            GlideTouch.Initialize();

            GHI.Glide.UI.Button    btn = (GHI.Glide.UI.Button)window.GetChildByName("btn");
            GHI.Glide.UI.TextBlock txt = (GHI.Glide.UI.TextBlock)window.GetChildByName("TxtTest");
            btn.TapEvent += (object sender) =>
            {
                txt.Text = "Welcome to Glide for TinyCLR - Cheers from Mif ;)";
                Debug.WriteLine("Button tapped.");

                window.Invalidate();
                txt.Invalidate();
            };

            Glide.MainWindow = window;

            lcd.CapacitiveScreenReleased += Lcd_CapacitiveScreenReleased;
            lcd.CapacitiveScreenPressed  += Lcd_CapacitiveScreenPressed;

            //Thread.Sleep(Timeout.Infinite);
        }
Esempio n. 2
0
        private void InitializeDisplay()
        {
            _window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.Window));

            GlideTouch.Initialize();

            _buttons = new UIButton[5];

            _forwardButton           = (UIButton)_window.GetChildByName("forwardButton");
            _forwardButton.TapEvent += s => Move(Action.Forward);
            _buttons[0]              = _forwardButton;

            _backwardButton           = (UIButton)_window.GetChildByName("backwardButton");
            _backwardButton.TapEvent += s => Move(Action.Backward);
            _buttons[1] = _backwardButton;

            _leftButton           = (UIButton)_window.GetChildByName("leftButton");
            _leftButton.TapEvent += s => Move(Action.Left);
            _buttons[2]           = _leftButton;

            _rightButton           = (UIButton)_window.GetChildByName("rightButton");
            _rightButton.TapEvent += s => Move(Action.Right);
            _buttons[3]            = _rightButton;

            _stopButton           = (UIButton)_window.GetChildByName("stopButton");
            _stopButton.TapEvent += s => Move(Action.Stop);
            _buttons[4]           = _stopButton;

            _logTextBlock = (UITextBlock)_window.GetChildByName("logTextBlock");

            Glide.FitToScreen = true;

            Glide.MainWindow = _window;
        }
Esempio n. 3
0
        // This method is run when the mainboard is powered up or reset.
        void ProgramStarted()
        {
            multicolorLED.BlinkOnce(GT.Color.Red);
            //7" Displays
            Display.Width  = 800;
            Display.Height = 480;
            Display.OutputEnableIsFixed      = false;
            Display.OutputEnablePolarity     = true;
            Display.PixelPolarity            = false;
            Display.PixelClockRateKHz        = 30000;
            Display.HorizontalSyncPolarity   = false;
            Display.HorizontalSyncPulseWidth = 48;
            Display.HorizontalBackPorch      = 88;
            Display.HorizontalFrontPorch     = 40;
            Display.VerticalSyncPolarity     = false;
            Display.VerticalSyncPulseWidth   = 3;
            Display.VerticalBackPorch        = 32;
            Display.VerticalFrontPorch       = 13;
            Display.Type = Display.DisplayType.Lcd;
            if (Display.Save())      // Reboot required?
            {
                PowerState.RebootDevice(false);
            }
            //set up touch screen
            CapacitiveTouchController.Initialize(GHI.Pins.FEZRaptor.Socket14.Pin3);

            window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyForm));
            //glide init
            GlideTouch.Initialize();

            GHI.Glide.UI.Button btn = (GHI.Glide.UI.Button)window.GetChildByName("btnTest");
            img          = (GHI.Glide.UI.Image)window.GetChildByName("img1");
            txtLora      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtLora");
            txtStatus    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtStatus");
            txtSPO2      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSPO2");
            txtSignal    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSignal");
            txtPulseRate = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtPulseRate");
            txtDesc      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtDesc");
            img.Visible  = false;

            btn.TapEvent += btn_TapEvent;

            Glide.MainWindow = window;
            JoinWifi();
            Thread.Sleep(500);
            if (client == null)
            {
                // create client instance
                MQTT_BROKER_ADDRESS = "cloud.makestro.com";
                client = new MqttClient(MQTT_BROKER_ADDRESS);
                string clientId = Guid.NewGuid().ToString();
                client.Connect(clientId, "mifmasterz", "123qweasd");
                SubscribeMessage();
            }
            Thread th1 = new Thread(new ThreadStart(Loop));

            th1.Start();
        }
Esempio n. 4
0
        // Show result for each row in the rectangles
        private bool populateVisualResult(int fc, int hc)
        {
            bool result    = false;
            int  fullWrong = 4 - (fc + hc);

            GHI.Glide.UI.Canvas canvas = new GHI.Glide.UI.Canvas();
            int xPosition = 100;

            masterMind.AddChild(canvas);
            for (int i = 0; i < fc; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Green, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Green, 0, 0, GHI.Glide.Colors.Green, 0, 0, 100);
            }

            for (int i = 0; i < hc; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Gray, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Gray, 0, 0, GHI.Glide.Colors.Gray, 0, 0, 100);
            }

            for (int i = 0; i < fullWrong; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Red, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Red, 0, 0, GHI.Glide.Colors.Red, 0, 0, 100);
            }


            if (fc == 4 | round == 10)
            {
                showResultCode(canvas);
                txtResult = (GHI.Glide.UI.TextBlock)masterMind.GetChildByName("txtResult");
                if (fc == 4)
                {
                    txtResult.Text      = "You Win!  ";
                    txtResult.FontColor = GHI.Glide.Colors.Green;
                }
                else
                {
                    txtResult.Text      = "You Lost ! Code is :  ";
                    txtResult.FontColor = GHI.Glide.Colors.Red;
                }
                result = true;
            }

            return(result);
        }
Esempio n. 5
0
        // This method is run when the mainboard is powered up or reset.
        void ProgramStarted()
        {
            //set display
            this.videoOut.SetDisplayConfiguration(VideoOut.Resolution.Vga800x600);
            //set glide
            window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyForm));

            txtLora          = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtLora");
            txtStatus        = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtStatus");
            txtSPO2          = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSPO2");
            txtSignal        = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSignal");
            txtPulseRate     = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtPulseRate");
            Glide.MainWindow = window;

            //LORA init
            _loraSerial = new SimpleSerial(GHI.Pins.FEZSpiderII.Socket11.SerialPortName, 57600);
            _loraSerial.Open();
            _loraSerial.DataReceived += _loraSerial_DataReceived;
            //reset lora
            _restPort.Write(false);
            Thread.Sleep(1000);
            _restPort.Write(true);
            Thread.Sleep(1000);
            //setup lora for point to point
            //get lora version
            _loraSerial.WriteLine("sys get ver");
            Thread.Sleep(1000);
            //pause join
            _loraSerial.WriteLine("mac pause");
            Thread.Sleep(1000);
            //set antena power
            _loraSerial.WriteLine("radio set pwr 14");
            Thread.Sleep(1000);

            //var DT = new DateTime(2016, 6, 19, 12, 43, 0); // This will set the clock to 9:30:00 on 9/15/2014
            //RealTimeClock.SetDateTime(DT); //This will set the hardware Real-time Clock to what is in DT
            //Debug.Print("New Real-time Clock " + RealTimeClock.GetDateTime().ToString());

            new Thread(SendData).Start();
            //connect wifi
            SetupNetwork();

            //sync time
            var result = Waktu.UpdateTimeFromNtpServer("time.nist.gov", 7);  // Eastern Daylight Time

            Debug.Print(result ? "Time successfully updated" : "Time not updated");
        }
Esempio n. 6
0
        // This method is run when the mainboard is powered up or reset.
        void ProgramStarted()
        {
            multicolorLED.BlinkOnce(GT.Color.Red);
            //7" Displays
            Display.Width  = 800;
            Display.Height = 480;
            Display.OutputEnableIsFixed      = false;
            Display.OutputEnablePolarity     = true;
            Display.PixelPolarity            = false;
            Display.PixelClockRateKHz        = 30000;
            Display.HorizontalSyncPolarity   = false;
            Display.HorizontalSyncPulseWidth = 48;
            Display.HorizontalBackPorch      = 88;
            Display.HorizontalFrontPorch     = 40;
            Display.VerticalSyncPolarity     = false;
            Display.VerticalSyncPulseWidth   = 3;
            Display.VerticalBackPorch        = 32;
            Display.VerticalFrontPorch       = 13;
            Display.Type = Display.DisplayType.Lcd;
            if (Display.Save())      // Reboot required?
            {
                PowerState.RebootDevice(false);
            }
            //set up touch screen
            CapacitiveTouchController.Initialize(GHI.Pins.FEZRaptor.Socket14.Pin3);

            window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyForm));
            //glide init
            GlideTouch.Initialize();

            GHI.Glide.UI.Button btn = (GHI.Glide.UI.Button)window.GetChildByName("btnTest");
            img          = (GHI.Glide.UI.Image)window.GetChildByName("img1");
            txtLora      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtLora");
            txtStatus    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtStatus");
            txtSPO2      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSPO2");
            txtSignal    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSignal");
            txtPulseRate = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtPulseRate");
            txtDesc      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtDesc");
            img.Visible  = false;

            btn.TapEvent += btn_TapEvent;

            Glide.MainWindow = window;
            Thread th1 = new Thread(new ThreadStart(Loop));

            th1.Start();
        }
Esempio n. 7
0
        void setup()
        {
            /*
             * //7" Displays
             * Display.Width = 800;
             * Display.Height = 480;
             * Display.OutputEnableIsFixed = false;
             * Display.OutputEnablePolarity = true;
             * Display.PixelPolarity = false;
             * Display.PixelClockRateKHz = 30000;
             * Display.HorizontalSyncPolarity = false;
             * Display.HorizontalSyncPulseWidth = 48;
             * Display.HorizontalBackPorch = 88;
             * Display.HorizontalFrontPorch = 40;
             * Display.VerticalSyncPolarity = false;
             * Display.VerticalSyncPulseWidth = 3;
             * Display.VerticalBackPorch = 32;
             * Display.VerticalFrontPorch = 13;
             * Display.Type = Display.DisplayType.Lcd;
             * if (Display.Save())      // Reboot required?
             * {
             *  PowerState.RebootDevice(false);
             * }*/
            Display.Width = 800;

            Display.Height = 480;

            Display.HorizontalSyncPulseWidth = 1;

            Display.HorizontalBackPorch = 88;

            Display.HorizontalFrontPorch = 40;

            Display.VerticalSyncPulseWidth = 3;

            Display.VerticalBackPorch = 32;

            Display.VerticalFrontPorch = 13;

            Display.PixelClockRateKHz = 25000;

            Display.OutputEnableIsFixed = true;

            Display.OutputEnablePolarity = true;

            Display.HorizontalSyncPolarity = false;

            Display.VerticalSyncPolarity = false;

            Display.PixelPolarity = true;

            Display.Type = Display.DisplayType.Lcd;



            if (Display.Save())      // Reboot required?
            {
                PowerState.RebootDevice(false);
            }

            //init touch

            i2cDevice = new I2CDevice(new I2CDevice.Configuration(0x38, 400));

            CapDriver = new CapTouchDriver(i2cDevice);

            CapDriver.SetBacklightTime(0);

            CapDriver.ResetBacklight();



            //CapacitiveTouchController.Initialize(GHI.Pins.G120.P2_21);

            //CapacitiveTouchController.Initialize(GHI.Pins.FEZCobraII.Socket4.Pin3);
            GlideTouch.Initialize();

            MainWindow = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.Form1));
            img        = (GHI.Glide.UI.Image)MainWindow.GetChildByName("img");
            btn        = (GHI.Glide.UI.Button)MainWindow.GetChildByName("BtnChange");
            txt        = (GHI.Glide.UI.TextBlock)MainWindow.GetChildByName("txtStatus");
            GT.Picture pic = new GT.Picture(Resources.GetBytes(Resources.BinaryResources.empty), GT.Picture.PictureEncoding.JPEG);
            img.Bitmap        = pic.MakeBitmap();
            Glide.MainWindow  = MainWindow;
            btn.ReleaseEvent += btn_ReleaseEvent;
            Glide.FitToScreen = true;
            //Thread th1 = new Thread(new ThreadStart(LoopButton));
            //th1.Start();
        }
Esempio n. 8
0
        // This method is run when the mainboard is powered up or reset.
        void ProgramStarted()
        {
            multicolorLED.BlinkOnce(GT.Color.Red);
            //7" Displays
            Display.Width  = 800;
            Display.Height = 480;
            Display.OutputEnableIsFixed      = false;
            Display.OutputEnablePolarity     = true;
            Display.PixelPolarity            = false;
            Display.PixelClockRateKHz        = 30000;
            Display.HorizontalSyncPolarity   = false;
            Display.HorizontalSyncPulseWidth = 48;
            Display.HorizontalBackPorch      = 88;
            Display.HorizontalFrontPorch     = 40;
            Display.VerticalSyncPolarity     = false;
            Display.VerticalSyncPulseWidth   = 3;
            Display.VerticalBackPorch        = 32;
            Display.VerticalFrontPorch       = 13;
            Display.Type = Display.DisplayType.Lcd;
            if (Display.Save())      // Reboot required?
            {
                PowerState.RebootDevice(false);
            }
            //set up touch screen
            CapacitiveTouchController.Initialize(GHI.Pins.FEZRaptor.Socket13.Pin3);

            window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyForm));
            //glide init
            GlideTouch.Initialize();

            GHI.Glide.UI.Button btn = (GHI.Glide.UI.Button)window.GetChildByName("btnTest");
            img          = (GHI.Glide.UI.Image)window.GetChildByName("img1");
            txtLora      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtLora");
            txtStatus    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtStatus");
            txtSPO2      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSPO2");
            txtSignal    = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSignal");
            txtPulseRate = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtPulseRate");
            txtDesc      = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtDesc");
            img.Visible  = false;

            btn.TapEvent += btn_TapEvent;

            Glide.MainWindow = window;
            //reset lora
            _restPort.Write(false);
            Thread.Sleep(1000);
            _restPort.Write(true);
            Thread.Sleep(1000);

            _loraSerial = new SimpleSerial(GHI.Pins.FEZRaptor.Socket10.SerialPortName, 57600);
            _loraSerial.Open();
            _loraSerial.DataReceived += _loraSerial_DataReceived;
            //get version
            _loraSerial.WriteLine("sys get ver");
            Thread.Sleep(1000);
            //pause join
            _loraSerial.WriteLine("mac pause");
            Thread.Sleep(1000);
            //antena power
            _loraSerial.WriteLine("radio set pwr 14");
            Thread.Sleep(1000);
            //set device to receive
            _loraSerial.WriteLine("radio rx 0"); //set module to RX
        }
Esempio n. 9
0
        public override void Init(params string[] Param)
        {
            MainWindow = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyRoomForm));
            ArrayList control = new ArrayList();
            GT.Picture pic = null;

            var imgTemp = (GHI.Glide.UI.Image)MainWindow.GetChildByName("imgTemp");
            pic = new GT.Picture(Resources.GetBytes(Resources.BinaryResources.temperature), GT.Picture.PictureEncoding.JPEG);
            imgTemp.Bitmap = pic.MakeBitmap();
            control.Add(imgTemp);

            var imgLight = (GHI.Glide.UI.Image)MainWindow.GetChildByName("imgLight");
            pic = new GT.Picture(Resources.GetBytes(Resources.BinaryResources.light), GT.Picture.PictureEncoding.JPEG);
            imgLight.Bitmap = pic.MakeBitmap();
            control.Add(imgLight);

            var imgHumid = (GHI.Glide.UI.Image)MainWindow.GetChildByName("imgHumid");
            pic = new GT.Picture(Resources.GetBytes(Resources.BinaryResources.humidity), GT.Picture.PictureEncoding.JPEG);
            imgHumid.Bitmap = pic.MakeBitmap();
            control.Add(imgHumid);
            GT.Timer timer = new GT.Timer(2000);
            var Btn = (GHI.Glide.UI.Button)MainWindow.GetChildByName("btnBack");
            control.Add(Btn);
            Btn.PressEvent += (sender) =>
            {
                timer.Stop();
                CallFormRequestEvent(ScreenTypes.MainMenu);
            };

            txtTemp = (GHI.Glide.UI.TextBlock)MainWindow.GetChildByName("txtTemp");
            txtHumid = (GHI.Glide.UI.TextBlock)MainWindow.GetChildByName("txtHumid");
            txtLight = (GHI.Glide.UI.TextBlock)MainWindow.GetChildByName("txtLight");

            Glide.MainWindow = MainWindow;

            timer.Tick += (a) =>
            {
                var measure = tempHumidSI70.TakeMeasurement();
                txtTemp.Text = Toolbox.NETMF.Tools.Round((float)measure.Temperature, 2);// + "C";
                txtHumid.Text = Toolbox.NETMF.Tools.Round((float)measure.RelativeHumidity);// + "%";
                txtLight.Text = Toolbox.NETMF.Tools.Round((float)lightSense.GetIlluminance());// + "Lux";
                //MainWindow.Graphics.DrawRectangle(txtTemp.Rect, MainWindow.BackColor, 255);
                //MainWindow.Graphics.DrawRectangle(txtHumid.Rect, MainWindow.BackColor, 255);
                //MainWindow.Graphics.DrawRectangle(txtLight.Rect, MainWindow.BackColor, 255);

                txtTemp.Invalidate();
                txtHumid.Invalidate();
                txtLight.Invalidate();
                MainWindow.Invalidate();
            };
            timer.Start();
            //MainWindow.Invalidate();
        }
Esempio n. 10
0
        // Show result for each row in the rectangles
        private bool populateVisualResult(int fc, int hc)
        {
            bool result = false;
            int fullWrong = 4 - (fc + hc);
            GHI.Glide.UI.Canvas canvas = new GHI.Glide.UI.Canvas();
            int xPosition = 100;
            masterMind.AddChild(canvas);
            for (int i = 0; i < fc; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Green, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Green, 0, 0, GHI.Glide.Colors.Green, 0, 0, 100);

            }

            for (int i = 0; i < hc; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Gray, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Gray, 0, 0, GHI.Glide.Colors.Gray, 0, 0, 100);

            }

            for (int i = 0; i < fullWrong; i++)
            {
                xPosition += 20;
                canvas.DrawRectangle(GHI.Glide.Colors.Red, 1, xPosition, yPostition, 10, 10, 0, 0, GHI.Glide.Colors.Red, 0, 0, GHI.Glide.Colors.Red, 0, 0, 100);
            }

            if (fc == 4 | round == 10)
            {
                showResultCode(canvas);
                txtResult = (GHI.Glide.UI.TextBlock)masterMind.GetChildByName("txtResult");
                if (fc == 4)
                {
                    txtResult.Text = "You Win!  ";
                    txtResult.FontColor = GHI.Glide.Colors.Green;
                }
                else
                {
                    txtResult.Text = "You Lost ! Code is :  ";
                    txtResult.FontColor = GHI.Glide.Colors.Red;
                }
                result = true;
            }

            return result;
        }
Esempio n. 11
0
        // This method is run when the mainboard is powered up or reset.
        void ProgramStarted()
        {
            multicolorLED.BlinkOnce(GT.Color.Red);
            //7" Displays
            Display.Width = 800;
            Display.Height = 480;
            Display.OutputEnableIsFixed = false;
            Display.OutputEnablePolarity = true;
            Display.PixelPolarity = false;
            Display.PixelClockRateKHz = 30000;
            Display.HorizontalSyncPolarity = false;
            Display.HorizontalSyncPulseWidth = 48;
            Display.HorizontalBackPorch = 88;
            Display.HorizontalFrontPorch = 40;
            Display.VerticalSyncPolarity = false;
            Display.VerticalSyncPulseWidth = 3;
            Display.VerticalBackPorch = 32;
            Display.VerticalFrontPorch = 13;
            Display.Type = Display.DisplayType.Lcd;
            if (Display.Save())      // Reboot required?
            {
                PowerState.RebootDevice(false);
            }
            //set up touch screen
            CapacitiveTouchController.Initialize(GHI.Pins.FEZRaptor.Socket13.Pin3);

            window = GlideLoader.LoadWindow(Resources.GetString(Resources.StringResources.MyForm));
            //glide init
            GlideTouch.Initialize();

            GHI.Glide.UI.Button btn = (GHI.Glide.UI.Button)window.GetChildByName("btnTest");
            img = (GHI.Glide.UI.Image)window.GetChildByName("img1");
            txtLora = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtLora");
            txtStatus = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtStatus");
            txtSPO2 = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSPO2");
            txtSignal = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtSignal");
            txtPulseRate = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtPulseRate");
            txtDesc = (GHI.Glide.UI.TextBlock)window.GetChildByName("txtDesc");
            img.Visible = false;

            btn.TapEvent += btn_TapEvent;

            Glide.MainWindow = window;
            //reset lora
            _restPort.Write(false);
            Thread.Sleep(1000);
            _restPort.Write(true);
            Thread.Sleep(1000);

            _loraSerial = new SimpleSerial(GHI.Pins.FEZRaptor.Socket10.SerialPortName, 57600);
            _loraSerial.Open();
            _loraSerial.DataReceived += _loraSerial_DataReceived;
            //get version
            _loraSerial.WriteLine("sys get ver");
            Thread.Sleep(1000);
            //pause join
            _loraSerial.WriteLine("mac pause");
            Thread.Sleep(1000);
            //antena power
            _loraSerial.WriteLine("radio set pwr 14");
            Thread.Sleep(1000);
            //set device to receive
            _loraSerial.WriteLine("radio rx 0"); //set module to RX
        }