public void LogData(Message completedMessage)
        {
            String message;

            MessageFormat format = GetMessageFormat(completedMessage.IdHigh, completedMessage.IdLow);

            if (format == null)
            {
                message = completedMessage.ToString();
            }
            else
            {
                message = completedMessage.GetTimestamp() + format.Name;
                if (completedMessage.Data == null || completedMessage.Data.Length == format.Length)
                {
                    String formattedString = FormatParser.Parse(format.FormatString, completedMessage.Data);      // if data length == 0, this can still return string via external program

                    if (formattedString != null && formattedString.Length != 0)
                    {
                        message += ":  " + formattedString;
                    }
                }
                else
                {
                    message += ":  Message Format Does Not Match Data Length";
                }
            }

            recordedMessages.Add(message);

            if (cmbViews.SelectedItem.ToString().Equals(ALL_MESSAGES) || message.Contains(cmbViews.SelectedItem.ToString()))
            {
                if (listBoxOneSelected)
                {
                    lstDisplayWindowOne.Items.Add(message);
                    lstDisplayWindowOne.SelectedIndex = lstDisplayWindowOne.Items.Count - 1;
                }
                else
                {
                    lstDisplayWindowTwo.Items.Add(message);
                    lstDisplayWindowTwo.SelectedIndex = lstDisplayWindowTwo.Items.Count - 1;
                }
            }
        }