2015-10-04 34 views
1

我想将我的应用程序打印在mini2440屏幕上。
我在Qt的控制台应用程序使用这些命令:如何在控制台应用程序的mini2440屏幕上打印我的应用程序的输出?

#include <QCoreApplication> 
#include <QProcess> 
#include <QDebug> 


int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    qDebug() << "C++ Style Debug Message"; 
    qDebug("C Style Debug Message"); 

    system("echo 'system'"); 
    printf("printf"); 
    // qFatal does not have a C++ style method. 
    qFatal("C Style Fatal Error Message"); 
    return a.exec(); 
} 

但所有这些代码只打印语句我末端不mini2440的屏幕上。我的设备开机后,我看到这些行:

开始联网.....
启动Web服务器....
开始LED的服务....

但我想从屏幕清理它们,并在我的屏幕上显示我的输出,而不是这些行中的 。 like these:
嗨亲爱的用户。

我该怎么做?
我使用mini2440,并写在mini2440的Qt创建者的应用程序。 (我评论Qtopia的运行我的程序)

谢谢:)

回答

2

你应该将你的应用程序的输出重定向到屏幕上,通常它会定期输出(终端)。

首先,验证哪个tty代表了你的屏幕,在OK6410 bard(类似于你的)那里是/ dev/tty0。简单的测试,在控制台上键入:

echo test > /dev/tty0 

并检查文字是否在屏幕上。如果没有,那么尝试用你的主板上的其他tty。

次,当屏幕在TTY知道,然后运行应用程序并重定向输出:

./myTestAppl -qws > /dev/tty0 

凡tty0应由TTY在第一点为你工作所取代。应用程序的输出应显示在屏幕上。

[编辑]

您还可以检查哪些TTY是表示由评审委员会启动脚本屏幕,并检查其TTY是发送文字提到“启动网络.....”等

+0

是的。是工作。真的感谢。它会显示输出。但linux标志不变。我怎样才能清洁我的桌面? –

+1

我从来没有测试过它,但应该可以工作:用零填充framebuffer:'dd if =/dev/zero of =/dev/fb0' – Blueman

0

使用STL:std::cout

qDebug()和其他预定义的Qt I/O流不用于显示任何输出。它们通常用于追踪/记录。

+0

没有奏效。当我在终端主机上运行我的应用程序。它只是告诉我在我的终端上的结果,我的mini2440屏幕不会改变。而不是在mini2440屏幕上输出 –

+0

@hony以及关于输出的文档是什么? –

+0

你说得对,但我想在启动后在mini2440屏幕上显示它。我虽然如果我使用回声命令它显示结果,但我应该使用./myTestAppl -qws>/dev/tty0在屏幕上显示结果。 –

相关问题