Ejemplo n.º 1
0
 public void MeadowMesageHandler(object sender, MeadowMessageEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.Message))
     {
         OutputMessageAsync(e.Message);
     }
 }
        void MeadowData(object sender, MeadowMessageEventArgs args)
        {
            if (!String.IsNullOrEmpty(args.Message))
            {
                switch (args.MessageType)
                {
                case MeadowMessageType.Data:
                    if (MeadowDataOutputAction.Active)
                    {
                        WriteToConsole($"{args.Message}\n", tagBlueDark);
                    }
                    break;

                case MeadowMessageType.AppOutput:
                    if (MeadowAppOutputAction.Active)
                    {
                        WriteToConsole($"{args.Message}", tagBlue);
                    }
                    break;

                case MeadowMessageType.MeadowTrace:
                    if (MeadowTraceOutputAction.Active)
                    {
                        WriteToConsole($"{args.Message}\n", tagGrey);
                    }
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        void DataReceived(object sender, MeadowMessageEventArgs args)
        {
            OnMeadowMessage?.Invoke(this, args);

            switch (args.MessageType)
            {
            case MeadowMessageType.Data:
                ConsoleOutIf(LocalEcho, "Data: " + args.Message);
                break;

            case MeadowMessageType.MeadowTrace:
                ConsoleOut("Trace: " + args.Message);
                break;

            case MeadowMessageType.FileListTitle:
                ConsoleOut("File List: ");
                break;

            case MeadowMessageType.FileListMember:
                ConsoleOut(args.Message);
                break;

            case MeadowMessageType.FileListCrcMember:
                ConsoleOut(args.Message);
                break;

            case MeadowMessageType.DeviceInfo:
                //ToDo move this
                SetDeviceIdFromMessage(args.Message);
                ConsoleOut("ID: " + args.Message);
                break;

            case MeadowMessageType.SerialReconnect:
                AttemptToReconnectToMeadow();
                break;

            // The last 2 types received text straight from mono' stdout / stderr
            // via hcom and may not be packetized at the end of a lines.
            case MeadowMessageType.ErrOutput:
                ParseAndOutputStdioText(args.Message, "Err: ");
                break;

            case MeadowMessageType.AppOutput:
                ParseAndOutputStdioText(args.Message, "App: ");
                break;
            }
        }
Ejemplo n.º 4
0
        void DataReceived(object sender, MeadowMessageEventArgs args)
        {
            OnMeadowMessage?.Invoke(this, args);

            if (args.MessageType != MeadowMessageType.AppOutput)
            {
                addAppOnNextOutput = false;
            }

            switch (args.MessageType)
            {
            case MeadowMessageType.Data:
                ConsoleOut("Data: " + args.Message);
                break;

            case MeadowMessageType.AppOutput:
                // The received text is straight from mono via hcom and may not be
                // correctly packetized.
                // Previous this code assumed that each received block of text should
                // begin with 'App :' and end with a new line. This was wrong.
                // When the App sends a lot of text quickly the received boundaries
                // can have no relation to the original App.exe author intended when
                // using Console.Write or Console.WriteLine.
                // This code creates new lines much more closly to the intent of the
                // original App.exe author.
                string[] oneLine = args.Message.Split('\n');
                for (int i = 0; i < oneLine.Length; i++)
                {
                    // The last array entry is a special case. If it's null or
                    // empty then the last character was  a single '\n' and
                    // we ignore it
                    if (i == oneLine.Length - 1)
                    {
                        if (!string.IsNullOrEmpty(oneLine[i]))
                        {
                            ConsoleOutNoEol("App: ");
                            ConsoleOutNoEol(oneLine[i]);
                        }
                    }
                    else
                    {
                        // Most typical line
                        ConsoleOutNoEol("App: ");
                        ConsoleOut(oneLine[i]);
                    }
                }
                break;

            case MeadowMessageType.MeadowTrace:
                ConsoleOut("Trace: " + args.Message);
                break;

            case MeadowMessageType.FileListTitle:
                ConsoleOut("File List: ");
                break;

            case MeadowMessageType.FileListMember:
                ConsoleOut(args.Message);
                break;

            case MeadowMessageType.FileListCrcMember:
                ConsoleOut(args.Message);
                break;

            case MeadowMessageType.DeviceInfo:
                //ToDo move this
                SetDeviceIdFromMessage(args.Message);
                ConsoleOut("ID: " + args.Message);
                break;

            case MeadowMessageType.SerialReconnect:
                if (AttemptToReconnectToMeadow())
                {
                    ConsoleOut("Successfully reconnected");
                }
                else
                {
                    ConsoleOut("Failed to reconnect");
                }
                break;
            }
        }