• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 请教个关于qtopia GUI 界面设计的问题 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
楼主  发表于: 2009-05-24 16:56

 请教个关于qtopia GUI 界面设计的问题

管理提醒: 本帖被 arm9home 从 Linux技术交流专区 移动到本区(2009-09-10)


举个例子:友善在mini2440中提供了LED的驱动程序和LED的测试程序,不过这是在Linux下。如果换成在QT/Embedded开发环境下,对LED设备的操作应该通过什么方式呢?即对设备文件的操作应该怎么做呢?不像在linux 下直接一个open()函数就能打开这个设备了。关于这个功能,友善也实现了,不过没有提供源代码。所以这方面有什么资料可以看呢?或者提供个思路吧??谢谢。。。
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
1楼  发表于: 2009-05-25 12:46
版主 能否帮忙一下呀?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2009-05-25 13:01
不像在linux 下直接一个open()函数就能打开这个设备了

为什么这么说呢?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
3楼  发表于: 2009-05-25 21:21
友善example里面的led示例程序:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>

int main(int argc, char **argv)
{
    int on;
    int led_no;
    int fd;
    if (argc != 3 || sscanf(argv[1], "%d", &led_no) != 1 || sscanf(argv[2],"%d", &on) != 1 ||
        on < 0 || on > 1 || led_no < 0 || led_no > 3) {
        fprintf(stderr, "Usage: leds led_no 0|1\n");
        exit(1);
    }
    fd = open("/dev/leds0", 0);
    if (fd < 0) {
        fd = open("/dev/leds", 0);
    }
    if (fd < 0) {
        perror("open device leds");
        exit(1);
    }
    ioctl(fd, on, led_no);
    close(fd);
    return 0;
}

驱动程序安装好之后, fd = open("/dev/leds0", 0); 就可以打开led设备进行操作。如果在QT/E环境下,应该如何做呢?有没有相关的资料可以参考一下。。
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
4楼  发表于: 2009-05-25 22:33
好像知道这个关联的名字: 是不是叫做 系统调用

也就是我的问题就是: 在QT/E下,如何实现系统调用,比如open()函数的调用。
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
5楼  发表于: 2009-05-26 11:29
友善的图形界面LED实际并非一个简单的程序,开机后LED一直是跑马灯状态,这时LED设备是打开的,当进入图形界面之后要先通过一个按钮停止LED跑马灯,并关闭LED设备,这时才能通过其他按钮单独控制LED,而关闭图形界面程序后,又要自动恢复以前的跑马灯状态,这就需要查询之前LED的状态,并做不同的处理,因此它其实是一个比较复杂些的小程序。

友善提供的最简单的图形界面程序是背光控制。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2009-05-26 11:54
也就是我的问题就是: 在QT/E下,如何实现系统调用,比如open()函数的调用。

你可以认为在Linux上,系统调用是C库封装的,只要你的程序是C/C++写的,就可以用同一种方法使用系统调用。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
7楼  发表于: 2009-05-26 14:36

 回 5楼(26672624) 的帖子

请问 , 图形界面 控制 LED 设备 是如何做的?通过什么类吗?
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
8楼  发表于: 2009-05-26 15:28
标准的系统调用open即可打开led设备,你不能打开的原因我已经解释了。
级别: 侠客
UID: 5706
精华: 0
发帖: 119
金钱: 780 两
威望: 406 点
综合积分: 238 分
注册时间: 2009-05-05
最后登录: 2011-05-22
9楼  发表于: 2009-05-26 15:41
我再慢慢学习 ,谢谢各位~~!
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go