ts-send.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/ioctl.h>
  4. #include <fcntl.h>
  5. #include <errno.h>
  6. #include <linux/input.h>
  7. #if 0
  8. int main( void )
  9. {
  10. int fd;
  11. fd_set rds;
  12. int ret;
  13. struct input_event event;
  14. struct timeval time;
  15. int version;
  16. fd = open( "/dev/input/event2", O_RDWR);
  17. if ( fd < 0 )
  18. {
  19. perror( "/dev/input/event2" );
  20. return(-1);
  21. }
  22. ioctl(fd, EVIOCGVERSION, &version);
  23. printf("the event version is 0x%x\n", version);
  24. memset(&event, 0, sizeof(event));
  25. event.type = atoi("1");
  26. event.code = atoi("158");
  27. event.value = atoi("1");
  28. gettimeofday(&event.time,0);
  29. ret = write(fd, &event, sizeof(struct input_event));
  30. if(ret < 0 ) {
  31. printf("write the event2 fail, ret = %d\n", ret);
  32. perror("write the event2 fail");
  33. }
  34. printf("write the event2, ret = %d\n", ret);
  35. close( fd );
  36. return(0);
  37. }
  38. #endif
  39. int main(int argc, char *argv[])
  40. {
  41. int fd;
  42. ssize_t ret;
  43. int version;
  44. struct input_event event;
  45. if(argc != 5) {
  46. fprintf(stderr, "use: %s device type code value\n", argv[0]);
  47. return 1;
  48. }
  49. fd = open(argv[1], O_RDWR);
  50. if(fd < 0) {
  51. fprintf(stderr, "could not open %s, %s\n", argv[optind], strerror(errno));
  52. return 1;
  53. }
  54. if (ioctl(fd, EVIOCGVERSION, &version)) {
  55. fprintf(stderr, "could not get driver version for %s, %s\n", argv[optind], strerror(errno));
  56. return 1;
  57. }
  58. memset(&event, 0, sizeof(event));
  59. event.type = atoi(argv[2]);
  60. event.code = atoi(argv[3]);
  61. event.value = atoi(argv[4]);
  62. ret = write(fd, &event, sizeof(event));
  63. if(ret < (ssize_t) sizeof(event)) {
  64. fprintf(stderr, "write event failed, %s\n", strerror(errno));
  65. return -1;
  66. }
  67. return 0;
  68. }