全部文档
OneOS简介 硬件支持 编译构造工具 API参考文档 高级语言 用户编程手册 应用笔记 FAQ

Touch设备

API列表

应用程序通过系统提供的IO设备模型接口来访问Touch设备,接口如下:

接口 说明
os_device_find 根据Touch设备名称查找设备指针
os_device_open 打开Touch设备
os_device_close 关闭Touch设备
os_device_read 读取触点信息
os_device_control 控制Touch设备
os_device_set_rx_indicate 设置数据接收回调函数

os_device_find

该函数用于查找系统中已经注册的Touch设备,函数原型如下:

os_device_t *os_device_find(const char *name);
参数 说明
name Touch设备名字
返回值 说明
设备指针 名字为name的设备指针
OS_NULL 没有找到对应的设备

os_device_open

该函数用于打开Touch设备,函数原型如下:

os_err_t os_device_open(os_device_t *dev, os_uint16_t oflag)
参数 说明
dev 设备指针
oflag 模式标志
返回值 说明
OS_EOK 设备打开成功
OS_EBUSY 设备已经打开,不允许重复操作
其他错误码 设备打开失败

oflag支持下列参数:

#define OS_DEVICE_FLAG_RDONLY       0x001     /* 标准设备的只读模式,对应 Touch 的轮询模式 */
#define OS_DEVICE_FLAG_INT_RX       0x100     /* 中断模式 */

Touch设备支持两种模式:轮询模式和中断模式。默认使用轮询模式打开设备。

os_device_close

该函数用于关闭Touch设备,函数原型如下:

os_err_t os_device_close(os_device_t *dev)
参数 说明
dev 设备指针
返回值 说明
OS_EOK 设备关闭成功
OS_EBUSY 设备已经关闭,不允许重复操作
其他错误码 设备关闭失败

os_device_read

该函数用于获取触点信息,函数原型如下:

os_size_t os_device_read(os_device_t *dev, os_off_t pos, void *buffer, os_size_t size)
参数 说明
dev 设备指针
pos 数据偏移量,Touch设备未使用
buffer 用于存放数据的缓冲区
size 读取数据的个数
返回值 说明
非0值 读取到的数据个数
0 读取失败

触点信息使用下面的结构体来描述:

struct os_touch_data
{
    os_uint8_t          event;                 /* 触摸事件:按下、抬起、移动 */
    os_uint8_t          track_id;              /* 触点所属轨迹的ID */
    os_uint8_t          width;                 /* 触点的宽度 */
    os_uint16_t         x_coordinate;          /* 触点X轴坐标 */
    os_uint16_t         y_coordinate;          /* 触点Y轴坐标 */
    os_tick_t           timestamp;             /* 时间戳 */
};

os_device_control

该函数用于发送控制命令以控制Touch设备,函数原型如下:

os_err_t os_device_control(os_device_t *dev, int cmd, void *arg)
参数 说明
dev 设备指针
cmd 控制命令
arg 控制参数
返回值 说明
OS_EOK 函数执行成功
OS_ENOSYS 函数执行失败,dev为空
其他错误码 函数执行失败

Touch控制命令

/* Touch control cmd types */
#define  OS_TOUCH_CTRL_GET_ID            (0)   /* 获取设备ID */
#define  OS_TOUCH_CTRL_GET_INFO          (1)   /* 获取设备信息 */
#define  OS_TOUCH_CTRL_SET_MODE          (2)   /* 设置工作模式:轮询或中断 */
#define  OS_TOUCH_CTRL_SET_X_RANGE       (3)   /* 设置X轴范围 */
#define  OS_TOUCH_CTRL_SET_Y_RANGE       (4)   /* 设置Y轴范围 */
#define  OS_TOUCH_CTRL_SET_X_TO_Y        (5)   /* 交换X轴和Y轴 */
#define  OS_TOUCH_CTRL_DISABLE_INT       (6)   /* 除能中断 */
#define  OS_TOUCH_CTRL_ENABLE_INT        (7)   /* 使能中断 */

os_device_set_rx_indicate

该函数用于设置回调函数。如果Touch设备工作在中断模式,那么每次中断产生后都会调用回调函数,通知上层有数据到来需要进行处理。函数原型如下:

os_err_t os_device_set_rx_indicate(os_device_t *dev, os_err_t (*rx_ind)(os_device_t *dev, os_size_t size))
参数 说明
dev 设备指针
rx_find 回调函数指针
返回值 说明
OS_EOK 设置成功

results matching ""

    No results matching ""

    返回顶部