描述: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);
}