基于DragonBoard 410c的input设备应用层编程

原创 2018年01月04日 09:49:34

       在http://blog.csdn.net/weixin_40109283/article/details/78915859博客中,我们已经了解到,当有按键按下时,通过adb命令可以看到有事件上报,如图1所示:


图1

当我们用cat命令去查看/dev/input/event2,然后按下按键,也能看到有事件上报,但看不出上报的信息,如图2所示:


图2

       经分析,当有按键按下时,上报的是一个结构体,所以用cat命令无法对该结构体进行解析.该结构体在kernel/include/linux/input.h文件中定义,原型如图3所示:


图3

        所以当我们编写应用程序去读取event的值时,应该将读得的数据存放到与之对应的结构体中.

代码如下:

#include <stdio.h>                                                                                                                                                                                          
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
#include <string.h>
#include <unistd.h>

#define MY_KEY          "/dev/input/event2"

int main(void)
{
    int fd = -1, ret;
    struct input_event ev;
    
    fd = open(MY_KEY, O_RDONLY);
    if (fd < 0) {
        perror("open file failed\n");
        return -1;
    }   
    
    while(1) {   
        ret = read(fd, &ev, sizeof(struct input_event));
        if (ret != sizeof(struct input_event)) {
            perror("read file failed\n");
            close(fd);
            return -1;
        }
    
        printf("=========================\n");
        printf("type: %hd\n", ev.type);
        printf("code: %hd\n", ev.code);
        printf("value: %d\n", ev.value);
        printf("\n");
    }   
    
    close(fd);
    return 0;
}

        将代码编译生成可执行文件,然后push到开发板的system/bin目录下并运行.当按下按键时就可以看到如图4所示:


图4








DragonBoard 410c手把手进行安卓开发之底层移植

耽误了这么久,终于开始写这篇文章了 这篇文章我们主要介绍如何从获取MSM源码,并为内核进行修改与移植的过程必须的前期准备首先我们需要准备如下四个条件: 1. Ubuntu 12.04 Linux ...
  • u010182064
  • u010182064
  • 2016年05月02日 10:14
  • 2156

快速下载和编译Dragonboard410c官网最新Android版本

最近刚入手一块Dragonboard410c开发板,准备用这块开发板自己搞搞几个智能家居类的原型玩玩,需要修改源代码的底层驱动,我比较熟悉Android系统,所以按着官方的开发编译文档一步步去弄,中间...
  • cgx090902
  • cgx090902
  • 2017年06月14日 17:10
  • 1162

手把手教大家编译debian源码以及安装系统---基于dragonboard410c

前言: 这段时间正在用dragonboard410c做个小项目,其中用的就是debian系统,由于涉及到底层需要修改dts以及编译驱动文件,故需要编译源码以及要用到编译好的镜像系统。在96board上...
  • weijory
  • weijory
  • 2016年12月08日 12:01
  • 1734

input子系统基础之按键2——input设备应用层编程实践

以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。 一、input设备应用层编程实践1 1、确定设备文件名 (1)应用层操作驱动有2条路:/dev目录下的设备文件,/sys目录...
  • oqqHuTu12345678
  • oqqHuTu12345678
  • 2017年12月12日 12:07
  • 126

基于开发板DragonBoard 410c的应用开发和部署

基于开发板DragonBoard 410c的应用开发和部署 DragonBoard 410c 旨在支持快速软件开发和原型设计,推动新发明和新产品的商业化,从而将骁龙410处理器的高性能和丰富功能带给...
  • awangqm
  • awangqm
  • 2016年05月27日 17:53
  • 786

应用层读写i2c从设备寄存器

在配置i2c从设备寄存器时往往需要修改驱动中的初始化函数来修改寄存器的值,这样往往需要重新编译内核,其实可以使用i2c驱动提供给应用层的接口函数ioctl来在命令行修改寄存器,只需要编写一个类似i2c...
  • lzh445096
  • lzh445096
  • 2015年09月29日 11:59
  • 1956

Dragonboard 410c 加载swap分区说明

  • 2017年06月18日 11:33
  • 56KB
  • 下载

官方DragonBoard 410c全套文档

  • 2015年12月22日 21:31
  • 19.88MB
  • 下载

应用层读写i2c设备可读写8位,16位设备地址小工具及源码

 #include "standard_i2c.h" #include #include #include #include #include #include #...
  • AS520213211314
  • AS520213211314
  • 2017年06月13日 10:39
  • 767

基于DragonBoard 410c之按键添加

今天给大家介绍一下如何运用Android已有的框架去添加按键.首先我们来看一下按键的现象! 将DragonBoard 410c开发板连接到ubuntu, 输入以下命令: $ adb root $ ad...
  • weixin_40109283
  • weixin_40109283
  • 2018年01月03日 17:47
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于DragonBoard 410c的input设备应用层编程
举报原因:
原因补充:

(最多只允许输入30个字)