public void StatusDisplay(object sender, MeadowSerialDevice.DeviceStatus status)
        {
            var meadow = (MeadowSerialDevice)sender;

            switch (status)
            {
            case MeadowSerialDevice.DeviceStatus.Disconnected:

                Task.Run(() =>
                {
                    Thread.Sleep(3000);

                    var connection = new Connection()
                    {
                        Mode = MeadowMode.MeadowMono,
                        USB  = new Connection.USB_interface()
                        {
                            DevicePort = meadow.connection.USB.DevicePort,
                        }
                    };
                    meadow.connection = connection;
                });
                break;
            }
        }
Esempio n. 2
0
 public void StatusDisplay(object sender, MeadowSerialDevice.DeviceStatus status)
 {
     if (status == MeadowSerialDevice.DeviceStatus.PortOpenGotInfo)
     {
         SerialNumber = meadowSerialDevice.DeviceInfo.SerialNumber;
     }
     meadowPad.control.SetStatus(status);
 }
        public void SetStatus(MeadowSerialDevice.DeviceStatus status)
        {
            Gtk.Application.Invoke(delegate
            {
                textview1.Buffer.InsertWithTags(ref iter, " STATUS ", tagYellow);

                if (meadowSerialDevice.connection == null)
                {
                    textview1.Buffer.InsertWithTags(ref iter, "No connection\n", tagRedBold);
                    labelState.Markup = $"{spanRed}No connection</span>";
                }
                else if (meadowSerialDevice.connection.Removed)
                {
                    textview1.Buffer.InsertWithTags(ref iter, "Removed\n", tagRedBold);
                    labelState.Markup = $"{spanRed}Removed</span>";
                }
                else
                {
                    var sb = new StringBuilder();
                    if (meadowSerialDevice.connection.USB != null)
                    {
                        sb.Append("USB -> ");
                    }
                    if (meadowSerialDevice.connection.IP != null)
                    {
                        sb.Append("IP -> ");
                    }

                    if (meadowSerialDevice.connection.Mode == MeadowMode.MeadowBoot)
                    {
                        textview1.Buffer.InsertWithTags(ref iter, "BOOT mode\n", tagRedBold);
                        sb.Append($"{spanRed}BOOT mode</span>");
                    }
                    else
                    {
                        switch (status)
                        {
                        case MeadowSerialDevice.DeviceStatus.Disconnected:
                            textview1.Buffer.InsertWithTags(ref iter, "Disconnected\n", tagRedBold);
                            sb.Append($"{spanRed}Disconnected</span>");
                            break;

                        case MeadowSerialDevice.DeviceStatus.USBConnected:
                            textview1.Buffer.InsertWithTags(ref iter, "Port Closed\n", tagRedBold);
                            sb.Append($"{spanRed}Port Closed</span>");
                            break;

                        case MeadowSerialDevice.DeviceStatus.PortOpen:
                            textview1.Buffer.InsertWithTags(ref iter, "Port Open\n", tagBlueBold);
                            sb.Append($"{spanBlue}Port Open</span>");
                            break;

                        case MeadowSerialDevice.DeviceStatus.PortOpenGotInfo:
                            textview1.Buffer.InsertWithTags(ref iter, "Initalized\n", tagGreen);
                            sb.Append($"{spanGreen}Initalized</span>");
                            SetDeviceInfo(meadowSerialDevice.DeviceInfo);
                            break;

                        case MeadowSerialDevice.DeviceStatus.Reboot:
                            textview1.Buffer.InsertWithTags(ref iter, "Rebooting\n", tagRedBold);
                            sb.Append($"{spanRed}Rebooting</span>");
                            break;
                        }
                        labelState.Markup = sb.ToString();
                    }
                }
            });
        }