wangyongjun 发表于 2020-3-24 14:24:41

模拟鼠标怎么实现?

QT做的界面,用USB鼠标能操作,但是公司不允许用鼠标操作,改用GPIO接口的键盘(上下左右键控制鼠标的移动,OK键=鼠标的左键),程序里读到GPIO信号后,怎么控制鼠标?

zhichao 发表于 2020-3-24 15:10:19

您可以试试坐标定位,我们没做过相关内容,您可以试试

wangyongjun 发表于 2020-3-24 16:51:03

zhichao 发表于 2020-3-24 15:10
您可以试试坐标定位,我们没做过相关内容,您可以试试

你们的系统里,怎么没有/dev/uinput(用户输入设备)

wangyongjun 发表于 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);
    }

zhichao 发表于 2020-3-24 17:28:44

您说的设备是什么设备,程序还是硬件,我们这没有用过,您可以自己移植试试,

wangyongjun 发表于 2020-3-24 19:00:20

你们提供的虚拟机里,有内核源码吗?

zhichao 发表于 2020-3-25 08:27:02

我们提供的用户资料里有源码,您可按照用户手册编译章节的说明操作

xuyi 发表于 2020-3-25 10:12:13

4G模块测试

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

你好,请问fcu201的AT指令口是哪一个?

zhichao 发表于 2020-3-25 10:59:26

您指的是终端吗,可参考用户手册2.3章节

wangyongjun 发表于 2020-3-25 12:41:40

能否提供一个驱动的例子程序,能编译成ko文件,能insmod即可?

zhichao 发表于 2020-3-25 12:58:56

源码drivers目录下都是驱动,您可参考,网上也有许多驱动相关资料,您可以查一下

wangyongjun 发表于 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
hello: disagrees about version of symbol module_layout
insmod: can't insert 'hello.ko': invalid module format

这是什么问题?

wangyongjun 发表于 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?

zhichao 发表于 2020-3-25 13:33:37

您可以从网上搜一下,比如http://lagignition.blog.163.com/blog/static/12873002320109135292479/

xuyi 发表于 2020-3-25 15:09:49

fcu1201设备 的4G模块,怎么实现发短信的功能?

zhichao 发表于 2020-3-25 15:53:07

这个我们没做过,不清楚怎么实现发短信功能,您自己探索一下吧
页: [1]
查看完整版本: 模拟鼠标怎么实现?