数字量产工具:输入系统-触摸屏单元测试

软件总框图

触摸屏单元测试

 

编写一个main函数,使用下面结构体进行测试

static InputDevice g_tTouchscreenDev = {

    .name = "touchscreen",
    .GetInputEvent = TouchscreenGetInputEvent,
    .DeviceInit = TouchscreenDeviceInit,
    .DeviceExit = TouchscreenDeviceExit,

};

main函数部分测试代码:

int main(int argc, char **argv)
{
    InputEvent event;
    int ret;
    g_tTouchscreenDev.DeviceInit();
    while (1)
    {
        ret = g_tTouchscreenDev.GetInputEvent(&event);
        if (ret)
        {
            printf("GetInputEvent err\r\n");
            return -1;
        }
        else
        {
            printf("iType       =%d\r\n", event.iType);
            printf("iX          =%d\r\n", event.iX);
            printf("iY          =%d\r\n", event.iY);
            printf("iPressure   =%d\r\n", event.iPressure);
        }
    }
    return 0;
}

touchscreen.c

#include "input_manager.h"
#include <tslib.h>
#include <stdio.h>

struct tsdev *g_ts;

static int TouchscreenGetInputEvent(PInputEvent ptInputEvent)
{
    struct ts_sample samp;
    int ret;

    ret = ts_read(g_ts, &samp, 1);

    if (ret != 1)
        return -1;

    ptInputEvent->iType = INPUT_TYPE_TOUCH;
    ptInputEvent->iX = samp.x;
    ptInputEvent->iY = samp.y;
    ptInputEvent->iPressure = samp.pressure;
    ptInputEvent->tTime = samp.tv;

    return 0;
}

static int TouchscreenDeviceInit(void)
{
    /* 打开并配置触摸屏设备 */
    g_ts = ts_setup(NULL, 0);
    if (!g_ts)
    {
        printf("ts_setup err\n");
        return -1;
    }
    return 0;
}
static int TouchscreenDeviceExit(void)
{
    ts_close(g_ts);
    return 0;
}

static InputDevice g_tTouchscreenDev = {

    .name = "touchscreen",
    .GetInputEvent = TouchscreenGetInputEvent,
    .DeviceInit = TouchscreenDeviceInit,
    .DeviceExit = TouchscreenDeviceExit,

};

#if 1

int main(int argc, char **argv)
{
    InputEvent event;
    int ret;
    g_tTouchscreenDev.DeviceInit();
    while (1)
    {
        ret = g_tTouchscreenDev.GetInputEvent(&event);
        if (ret)
        {
            printf("GetInputEvent err\r\n");
            return -1;
        }
        else
        {
            printf("iType       =%d\r\n", event.iType);
            printf("iX          =%d\r\n", event.iX);
            printf("iY          =%d\r\n", event.iY);
            printf("iPressure   =%d\r\n", event.iPressure);
        }
    }
    return 0;
}

#endif

编译测试:

总结:

增加main.c 内容

  1. 使用g_tTouchscreenDev.DeviceInit()实现触摸屏设备的初始化。
  2. 使用g_tTouchscreenDev.GetInputEvent(&event)获取触摸屏输入事件的数据,并打印出坐标、压力和输入事件的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值