mt_calibra.c

来自「gpm-1.20.0.tar.gz」· C语言 代码 · 共 88 行

C
88
字号
// copyrights (c) WWO// // Written by Rados砤w Garbacz// 14/06/2000// A simple calibration program for micro touch screen.#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <sys/time.h>#include <unistd.h>#include <fcntl.h>#include <string.h>#include "touchscreen.h"//#include <>int getStatus(int _hFile){  unsigned char buff[20];  int nRet;  //printf("Get status\n");  if((nRet=ioctl(_hFile,TSCRN_CONTROLLER_STATUS ,buff)) < 0)  {    printf("Error ioctl %d\n",nRet);    close(_hFile);    exit(1);  }  //printf("cmd status = %d\n",buff[3]);  return buff[3];};int main(){  int nRet,hFile;  char buff[50];  memset(buff, 0, sizeof(buff));  if((hFile=open("/dev/usb/usbtest",O_RDONLY )) < 0)  {    printf("Error open %d\n",hFile);    return 0;  };  (void)getStatus(hFile);  printf("Soft reset of device\n");  if((nRet=ioctl(hFile,73)) < 0)  {    printf("Error ioctl %d\n",nRet);    return 0;  }  (void)getStatus(hFile);  printf("Calibrate controler extended \n");  *buff = TSCRN_CORNER_CALIBRATION_TYPE;  if((nRet=ioctl(hFile,TSCRN_CALIBRATION,buff)) < 0)  {    printf("Error ioctl %d\n",nRet);    return 0;  }  printf("\n");  //while((nRet = getStatus(hFile)) != 1)  //  printf("wait for staus 1 status=%d\r",nRet);  //printf("\n");  while((nRet=getStatus(hFile)) < 2)  {    printf("wait for lower left corner %d\n",nRet);    sleep(1);  }  printf("\n");  while((nRet=getStatus(hFile)) < 3)  {    printf("lower left corner complited;wait for upper right corner %d\n",nRet);    sleep(1);  }  printf("\n");  if((nRet=getStatus(hFile)) == 3)    printf("upper right corner complited %d\n",nRet);  else    printf("upper right corner error %d\n",nRet);  printf(" koniec kalibracji OK ioctl: %d \n",nRet);  close(hFile);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?