主题 : 我的第一个QT程序:LED控制实验,及其中的疑问。 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 10356
精华: 1
发帖: 59
金钱: 355 两
威望: 74 点
综合积分: 138 分
注册时间: 2009-11-01
最后登录: 2014-03-28
楼主  发表于: 2010-04-18 13:16

 我的第一个QT程序:LED控制实验,及其中的疑问。

描述:LED控制界面图
图片:
在此,首先感谢Eddylau,再次感谢他,一下把我带进了QT的应用编程世界,强烈的感到学习ARM嵌入式linux的乐趣。但学习的过程中也遇到了很多烦恼的事情,希望在此分享我的想法和源码,与感兴趣的同学一起讨论讨论,学习学习,我想这也是我对自由软件,开源软件的一点理解。还望高手指正指点我源码中不足的地方。


本程序要实现的功能就是网络控制LED+QT的LED例程的结合,实现流水灯和计数器的切换,以及速度的改变。友善提供的led-player是应用有名管道编写的一个运行在后台的服务器程序,它运行时创建了有名管道/tmp/led-control,在led.cgi程序中使用:/bin/echo $type $period > /tmp/led-control向管道写入参数$type $period ,这两个参数是led.html页面发送过来的。如果用QT进行编程,创建些管道进程,向管道写入$type $period 这两个参数该怎么实现呢?以下是我写的一个向有名管道/tmp/led-control写两个参数的程序,可是结果并没有写进到到管道,还是什么的原因?并没有实现所需的功能。
main(int argc,char** argv)
{
    int fd;
    char write_type_buf[10],write_period_buf[20];
                      char* buf;
    int nwrite;

     fd=open("/tmp/led-control",O_WRONLY|O_NONBLOCK);

    if(argc<3)

        printf("Please send something,Usage:write_to_led_pipe type period;type:0,1,2 period:0.25,0.125,0.0625 \n");


    strcpy(write_type_buf,argv[1]);
   strcpy(write_period_buf,argv[2]);
buf=strcat(argv[1],argv[2]);

if((nwrite=write(fd,buf,30))==-1)

    {
        if(errno==EAGAIN)
            printf("The FIFO has not been read yet.Please try later\n");

    }

    else
        printf("write %s to the FIFO\n",buf);
}
级别: 侠客
UID: 12186
精华: 0
发帖: 96
金钱: 480 两
威望: 96 点
综合积分: 192 分
注册时间: 2009-12-31
最后登录: 2013-11-25
1楼  发表于: 2010-04-20 09:40
我也有心想学这个东西,特别是网络传输数据,可是现在还不会。
级别: 侠客
UID: 10356
精华: 1
发帖: 59
金钱: 355 两
威望: 74 点
综合积分: 138 分
注册时间: 2009-11-01
最后登录: 2014-03-28
2楼  发表于: 2010-04-21 22:25
哎,这么久没人顶下,自己顶下,给自己加油,坚持,再坚持。。。。。。
级别: 新手上路
UID: 11199
精华: 0
发帖: 9
金钱: 50 两
威望: 13 点
综合积分: 18 分
注册时间: 2009-11-30
最后登录: 2017-09-13
3楼  发表于: 2010-05-19 18:45
支持一下!哈哈。十分想学习QT编程,希望楼主指点一二
级别: 侠客
UID: 12186
精华: 0
发帖: 96
金钱: 480 两
威望: 96 点
综合积分: 192 分
注册时间: 2009-12-31
最后登录: 2013-11-25
4楼  发表于: 2010-05-20 14:50
应该是写管道函数用错了吧。你把管道那块好好看看。应该不难。呵呵!