嵌入式爱好者

查看: 328|回复: 15

[Linux] 模拟鼠标怎么实现?

[复制链接]

1

主题

8

帖子

11

积分

扫一扫,手机访问本帖
发表于 2020-3-24 14:24:41 | 显示全部楼层 |阅读模式
QT做的界面,用USB鼠标能操作,但是公司不允许用鼠标操作,改用GPIO接口的键盘(上下左右键控制鼠标的移动,OK键=鼠标的左键),程序里读到GPIO信号后,怎么控制鼠标?
回复

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-24 15:10:19 | 显示全部楼层
您可以试试坐标定位,我们没做过相关内容,您可以试试

点评

你们的系统里,怎么没有/dev/uinput(用户输入设备)  详情 回复 发表于 2020-3-24 16:51
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-24 16:51:03 | 显示全部楼层
zhichao 发表于 2020-3-24 15:10
您可以试试坐标定位,我们没做过相关内容,您可以试试

你们的系统里,怎么没有/dev/uinput(用户输入设备)
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-24 16:55:09 | 显示全部楼层
这段代码可以控制鼠标移动,但是必须要插入鼠标,否则没有/dev/input/event2  
网上的资料说,有一个用户输入设备 /dev/uinput,可是你们的系统里没有,ubuntu虚拟机里有,如何再嵌入式里增加uinput?
  int fd_mouse = open("/dev/input/event2", O_RDWR);
    if(fd_mouse <= 0)
    {
        printf("---------------error open mouse\n");
    }
    struct input_event event;
    while(1)
    {
        memset(&event, 0, sizeof(event));
        gettimeofday(&event.time, NULL);
        event.type = EV_REL;
        event.code = REL_X;
        event.value = 10;
        write(fd_mouse, &event, sizeof(event));
        event.type = EV_REL;
        event.code = REL_Y;
        event.value = 10;
        write(fd_mouse, &event, sizeof(event));
//        if(read(fd_mouse,&event,sizeof(input_event))<1) break;
        printf("%d,%d,%d,%d\n",event.time.tv_sec,event.type,event.code,event.value);
        event.type = EV_SYN;
        event.code = 0;
        event.value = 0;
        write(fd_mouse, &event, sizeof(event));
        sleep(1);
    }
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-24 17:28:44 | 显示全部楼层
您说的设备是什么设备,程序还是硬件,我们这没有用过,您可以自己移植试试,
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-24 19:00:20 来自手机 | 显示全部楼层
你们提供的虚拟机里,有内核源码吗?
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-25 08:27:02 | 显示全部楼层
我们提供的用户资料里有源码,您可按照用户手册编译章节的说明操作

点评

你好,请问fcu201的AT指令口是哪一个?  详情 回复 发表于 2020-3-25 10:12
点评回复 支持 反对

使用道具 举报

0

主题

14

帖子

31

积分

发表于 2020-3-25 10:12:13 | 显示全部楼层

4G模块测试

zhichao 发表于 2020-3-25 08:27
我们提供的用户资料里有源码,您可按照用户手册编译章节的说明操作

你好,请问fcu201的AT指令口是哪一个?
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-25 10:59:26 | 显示全部楼层
您指的是终端吗,可参考用户手册2.3章节
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-25 12:41:40 | 显示全部楼层
能否提供一个驱动的例子程序,能编译成ko文件,能insmod即可?
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-25 12:58:56 | 显示全部楼层
源码drivers目录下都是驱动,您可参考,网上也有许多驱动相关资料,您可以查一下
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-25 13:11:04 | 显示全部楼层
从网上找了一个hello的驱动
#include <linux/init.h>
#include <linux/module.h>

int __init hello_init(void)
{
        printk("Hello World enter ++\n");
        return 0;
}

void __exit hello_exit(void)
{
        printk("Hello world exit --\n");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_AUTHOR("https://blog.csdn.net/qq_30155503");
MODULE_LICENSE("GPL v2");


Makefile内容如下:
obj-m := hello.o

KERNELDIR := /usr/src/linux-headers-3.2.0-23-generic-pae/

default:   
        make -C $(KERNELDIR) M=$(shell pwd) modules   
install:   
        insmod hello.ko  
uninstall:   
        rmmod hello.ko   
clean:   
        make -C $(KERNELDIR) M=$(shell pwd) clean   

执行make后,也生成了hello.ko
把hello.ko放到板子上后,执行insmod hello.ko失败
root@freescale /opt/QT4.8.6/apps$ insmod hello.ko
[16981.708507] hello: disagrees about version of symbol module_layout
insmod: can't insert 'hello.ko': invalid module format

这是什么问题?
点评回复 支持 反对

使用道具 举报

1

主题

8

帖子

11

积分

 楼主| 发表于 2020-3-25 13:24:26 | 显示全部楼层
root@freescale /opt/QT4.8.6/apps$ uname -r
3.14.38-6UL_ga-00063-g6a08c48

是不是内核版本的问题?3.14.38?3.2.0?
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-25 13:33:37 | 显示全部楼层
您可以从网上搜一下,比如http://lagignition.blog.163.com/ ... 002320109135292479/
点评回复 支持 反对

使用道具 举报

0

主题

14

帖子

31

积分

发表于 2020-3-25 15:09:49 | 显示全部楼层
fcu1201设备 的4G模块,怎么实现发短信的功能?
点评回复 支持 反对

使用道具 举报

0

主题

451

帖子

486

积分

发表于 2020-3-25 15:53:07 | 显示全部楼层
这个我们没做过,不清楚怎么实现发短信功能,您自己探索一下吧
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|飞凌嵌入式 ( 冀ICP备12004394号-1

GMT+8, 2020-4-6 11:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表