924 views
in System Integration by

Dear Sir,

In the process of embedded device development, it is difficult to obtain the serial debugging messgages of prototype device without fixture. Is there any way to redirect the serial port information to the UI and scroll the serial port information like the serial port assistant of the computer?
It will be the best if time stamp can be added into the head of each serial message.smiley

From my view, if only one message is displayed, it is easy to implement. But If want to display several messages whatever scrolling or not, I have no idea on that.

So is there any good way to achieve this display requirement?

Thanks.

 

1 Answer

0 votes
by

Hello,

typically the serial interface is used to print debug and error messages from the GUI application to a connected terminal application on the PC.

In principle it would be possible to show these messages as a list within the GUI application (e.g, you can make a list of messages by using the VerticalList) - but then the list of debug messages is part of your GUI application. This means, in some cases (e.g. your application is out-of-memory or there happens a fatal error) it is not possible to create and show the list of error messages.

In case there is no possibility to spend a serial interface for the debug messages, let me recommend to print the messages in a reserved memory area and download it with your debugger.

Best regards,

Manfred.

by

Hi Manfred,

Thanks for your reply.

I have read the Wrap text section before and knew the ~ and ^ characters.

What I expect is that EW LCD can display the original text which copied from serial port. Remove these automatically added line breaks instead of adding them.

These debug messages are output to the serial port and also displayed on the LCD, only for the purpose of seeing these information under special circumstances, which is an auxiliary way.

For these messages, I don't know the content ( no any special format ) of these messages, also can't specify what the content should be.

 Any way, if there is no better way, it will have to stay the way it is.That's ok for debug log.

In addition, for the display of long text, I implemented in this way below. Just a reference to other questioners.

As you can see from the position of the scroll bar, the example text content is very long (29,724 charactors).

var int32 height = 0;
Outline.ScrollOffset.y = 50;

height = Text_log.GetContentArea().y2; // in my example, the Text content y2 is 13845, 550 lines.

if(height > 430)
{
  Text_log.Bounds.y2 = height; // Expand the text view boundary to 
                               // fit the longer text than one page.
}
else
{
  Text_log.Bounds.y2 = 480;
}

Outline.ScrollOffset.y = 500 - Text_log.Bounds.y2; // scroll display to last line

Thank you very much.

by

Thank you for sharing the results and for thinking of other questioners too! smiley

Maybe I did not fully understand the use-case - I assumed more a sequence of single debug messages rather than an endless stream of characters...

by

Yes,it is only a example to verify whether my design can display long text string.

As your mentioned, for the string "Debug Log 1234567891234556789123456789123456789", EW will add a line break after the "Log" when the entire string does not fit into the first line.  This "line bradk"  is not my expection.

My purpose is that a string "Debug Log 1234567891234556789123456789123456789" will be displayed as :

 

should not be displayed as: ( line break after "Log" is not my expected)

Thanks.

by

In this case you can implement your own line-break algorithm. The method GetTextExtent() of the class Resources::Font can be used to calculate the size of a given string. As soon as a certain part of the string exceeds the desired width, you can insert a line-break and calculate the next chunk of text.

Of course, this requires some text processing but should be possible within a few lines of code...

by
Thanks.

I will try your idea.

Jerry

Embedded Wizard Website | Privacy Policy | Imprint

...