Linux USB HID Device 测试代码
来源:互联网 发布:怎么看淘宝店 编辑:程序博客网 时间:2024/05/21 09:40
//测试平台:linux 3.2, am335x
/****************************************************************** Author:DriverMonkey* Mail:bookworepeng@Hotmail.com* Phone:18575593141* QQ:196568501* Blog:http://blog.csdn.net/drivermonkey* Date:02/07/2015 *****************************************************************/#include <pthread.h>#include <string.h>#include <stdio.h>#include <ctype.h>#include <fcntl.h>#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#define HID_MAX_PACKET_SIZE 64#define HID_BUFFER_SIZE (10*1024*1024)// 10M bytestypedef struct {char null_array[HID_MAX_PACKET_SIZE];}buffer_offset_size_t;static char hid_read_buffer[HID_BUFFER_SIZE];static char hid_write_buffer[HID_BUFFER_SIZE];static int hid_file_handle = 0;static const char* hid_file_name = "/dev/hidg0";static int hid_init(void);static int hid_read(void* buffer, int buffer_size);static int hid_write(void* buffer, int buffer_size);/***************************************************************** * Function name: main * Author:DriverMonkey * Function Description: main function just for hid temp testing * Input argv: * Output argv: * Return: * Be careful: *****************************************************************/int main(void){int read_size = 0;int test_count = 100;hid_init();while(test_count--){memset(hid_read_buffer, 0x00, HID_BUFFER_SIZE);read_size = hid_read(hid_read_buffer, HID_BUFFER_SIZE);//printf("getting report::%s \n", hid_read_buffer);memset(hid_write_buffer, 0x00, HID_BUFFER_SIZE);strcpy(hid_write_buffer, hid_read_buffer);hid_write(hid_write_buffer, read_size);}return 0;}/***************************************************************** * Function name: hid_init * Author:DriverMonkey * Function Description: init HID * Input argv: * Output argv: * Return:>= 0 - no error < 0 - reading error * Be careful: Must be called befoore HID be used! *****************************************************************/static int hid_init(void){if ((hid_file_handle = open(hid_file_name, O_RDWR, 0666)) < 0){perror(hid_file_name);return hid_file_handle;}else{return hid_file_handle;}}/***************************************************************** * Function name: hid_read * Author:DriverMonkey * Function Description: Read data form hid driver * Input argv:buffer_size - buffer size * Output argv:buffer - buffer to save reading out data * Return:>= 0 - read size < 0 - reading error * Be careful: *****************************************************************/static int hid_read(void* buffer, int buffer_size){if(buffer == NULL){perror("hid_read::pointer error!");return -1;}return read(hid_file_handle, buffer, buffer_size);}/***************************************************************** * Function name: hid_read * Author:DriverMonkey * Function Description: Read data form hid driver * Input argv:buffer_size - buffer size * Output argv:buffer - buffer to save reading out data * Return:>= 0 - no error < 0 - reading error * Be careful: *****************************************************************/static int hid_write(void* buffer, int buffer_size){int return_v = 0;int writting_count = buffer_size / HID_MAX_PACKET_SIZE;int remainding_size = buffer_size % HID_MAX_PACKET_SIZE;buffer_offset_size_t* buffer_offset = (buffer_offset_size_t*)buffer;if(buffer == NULL){perror("hid_write::pointer error!");return -1;}while(writting_count--){return_v = write(hid_file_handle, buffer_offset,HID_MAX_PACKET_SIZE);if(return_v < 0){perror("hid_write::writting error!");return return_v;}buffer_offset++;}return_v = write(hid_file_handle, buffer_offset, remainding_size);return return_v;}
1 0
- Linux USB HID Device 测试代码
- Linux下USB HID device driver研究
- Linux下 USB HID device driver研究(三)--probe
- Linux下USB HID device driver研究(三)--probe
- Linux下USB HID device driver研究(二)
- Linux下USB HID device driver研究(一)
- Linux下USB HID device driver研究(一)
- Linux下USB HID device driver研究(二)
- Linux下USB HID device driver研究(二)
- Usb Audio Device Descriptor(10) Hid Device
- USB Human Interface Device (HID) Configuration
- USB Composite Device with HID Interface
- Usb Composite Device (audio+hid) Descriptor
- HID-USB设备读写开发测试
- USB HID设备读写代码实现c++
- linux mount usb device
- Linux Device Driver ---USB
- LINUX USB device驱动
- POJ 2976 Dropping tests(初遇0,1分数规化)
- Lintcode - Majority Number II
- Java异常机制Throwable
- 二进制文件 ascii码文件
- Android - Monkey测试
- Linux USB HID Device 测试代码
- 10763 - Foreign Exchange
- hdu1520 树形DP
- name 'patterns' is not defined 错误解决方法
- 游戏开发之橙子引擎尚韬:蓝海破冰 重新定义TV游戏
- 线程
- Nebula: level05
- OpenWRT开发链接收藏(不定时更新)
- 《鸟哥的Linux私房菜》读书笔记1