发信人: yexunkai(叶云)
整理人: wenbobo(2003-09-19 09:19:39), 站内信件
|
头定义
#ifndef ELO_TOUCH_H
#define ELO_TOUCH_H
/*
***************************************************************************
*
* Default constants.
*
***************************************************************************
*/
#define ELO_MAX_TRIALS 3 /* Number of timeouts waiting for a */
/* pending reply. */
#define ELO_MAX_WAIT 100000 /* Max wait time for a reply (microsec)*/
#define ELO_UNTOUCH_DELAY 5 /* 100 ms */
#define ELO_REPORT_DELAY 1 /* 40 ms or 25 motion reports/s */
#define ELO_LINK_SPEED B9600 /* 9600 Bauds */
#define ELO_PORT "/dev/ttyS3"
#define ELO_DEFAULT_MAX_X 3000
#define ELO_DEFAULT_MIN_X 600
#define ELO_DEFAULT_MAX_Y 3000
#define ELO_DEFAULT_MIN_Y 600
#define ELO_DEVICE_INIT 0
#define ELO_DEVICE_ON 1
#define ELO_DEVICE_OFF 2
#define ELO_DEVICE_CLOSE 3
#define ELO_PACKET_SIZE 10
#define ELO_SYNC_BYTE 'U' /* Sync byte. First of a packet.*/
#define ELO_TOUCH 'T' /* Report of touchs and motions. Not*/
/* used by 2310. */
#define ELO_OWNER 'O' /* Report vendor name. */
#define ELO_ID 'I' /* Report of type and features. */
#define ELO_MODE 'M' /* Set current operating mode. */
#define ELO_PARAMETER 'P' /* Set the serial parameters. */
#define ELO_REPORT 'B' /* Set touch reports timings. */
#define ELO_ACK 'A' /* Acknowledge packet */
#define ELO_INIT_CHECKSUM 0xAA /* Initial value of checksum. */
#define ELO_PRESS 0x01 /* Flags in ELO_TOUCH status byte */
#define ELO_STREAM 0x02
#define ELO_RELEASE 0x04
#define ELO_TOUCH_MODE 0x01 /* Flags in ELO_MODE command */
#define ELO_STREAM_MODE 0x02
#define ELO_UNTOUCH_MODE 0x04
#define ELO_RANGE_CHECK_MODE 0x40
#define ELO_TRIM_MODE 0x02
#define ELO_CALIB_MODE 0x04
#define ELO_SCALING_MODE 0x08
#define ELO_TRACKING_MODE 0x40
#define ELO_SERIAL_SPEED 0x06 /* Flags for high speed serial (19200)*/
#define ELO_SERIAL_MASK 0xF8
#define ELO_SERIAL_IO '0' /*Indicator byte for PARAMETER command*/
/*
***************************************************************************
*
* Device private records.
*
***************************************************************************
*/
typedef struct _EloPrivateRec {
char *input_dev; /* The touchscreen input tty */
int min_x; /* Minimum x reported by calibration */
int max_x; /* Maximum x */
int min_y; /* Minimum y reported by calibration */
int max_y; /* Maximum y */
int untouch_delay; /* Delay before reporting an untouch (in ms) */
int report_delay; /* Delay between touch report packets */
int link_speed; /* Speed of the RS232 link connecting the ts. */
int screen_no; /* Screen associated with the device */
int screen_width; /* Width of the associated X screen */
int screen_height; /* Height of the screen */
int inited; /* The controller has already been configured ? */
int is_a_2310; /* Set if the smartset is a 2310. */
int checksum; /* Current checksum of data in assembly buffer */
int packet_buf_p; /* Assembly buffer pointer */
int swap_axes; /* Swap X an Y axes if != 0 */
unsigned char packet_buf[ELO_PACKET_SIZE]; /* Assembly buffer */
} EloPrivateRec;
/*
***************************************************************************
*
* Prototypes
*
***************************************************************************
*/
void EloInit( EloPrivateRec *priv );
void EloAllocate( EloPrivateRec *priv );
int EloGetPacket( unsigned char *buffer, int *buffer_p, int *checksum, int fd );
void EloReadInput( EloPrivateRec *priv, int fd, int *nX, int *nY, int *nState );
int EloSendPacket( unsigned char *packet, int fd );
int WaitForInput( int fd, int timeout );
int EloWaitReply( unsigned char type, unsigned char *reply, int fd );
int EloWaitAck( int fd );
int EloSendQuery( unsigned char *request, unsigned char *reply, int fd );
int EloSendControl( unsigned char *control, int fd );
int EloControl( EloPrivateRec *priv, int *fd, int mode );
#endif // ELO_TOUCH_H
---- 有兴趣请直接寄信,
在下上线时间不定,
回应帖子也比较慢。
|
|